/* PR tree-optimization/102622 */ | |
/* Wrong code introduced due to phi-opt | |
introducing undefined signed interger overflow | |
with one bit signed integer negation. */ | |
struct f{signed t:1;}; | |
int g(struct f *a, int t) __attribute__((noipa)); | |
int g(struct f *a, int t) | |
{ | |
if (t) | |
a->t = -1; | |
else | |
a->t = 0; | |
int t1 = a->t; | |
if (t1) return 1; | |
return t1; | |
} | |
int main(void) | |
{ | |
struct f a; | |
if (!g(&a, 1)) __builtin_abort(); | |
return 0; | |
} |