Optimeze issue about fpeephole2
Optimeze issue about fpeephole2
Hello,
I found a issue when compiling this code with GCC for Renesas v4.8.4.201701-GNURX .
extern void f(int a, int b, int *p);
typedef struct {
int* p;
} R;extern R* r;
void test(void)
{
f(1, 1, r->p);
}
f() is called with invalid parameter b.
./rx-elf-gcc -O -fpeephole2 test.c -S -o –
.file “test.c”
.section P,”ax”
.global _test
.type _test,@function
_test:
mov.L #_r, r5
mov.L [r5], r5
mov.L r1, r2 ; param b is undefined. <—————-
mov.L [r5], r3 ; param p = r->p
mov.L #1, r1 ; param a = 1
bsr _f
rts
.size _test, .-_test
.ident “GCC: (GNU) 4.8.4.201703-GNURX”
This issue isn’t occur when compiling with -fno-peephole2 nor with gnu original version gcc.
Thanks
×

日本語
Hello,
Thank you for reaching out to us!
Based on the information you provided, we have managed to reproduce the problem.
Our development team is analyzing the issue, after which a fix will be considered for a future release of GCC for Renesas RX Toolchain. Until then, please use -fno-peephole2 as a workaround.
Please let us know if we can be of further assistance.
__
Best regards,
The GNU Tools Team