/* PR tree-optimization/60971 */ | |
/* { dg-do run } */ | |
#ifndef __cplusplus | |
#define bool _Bool | |
#endif | |
volatile unsigned char c; | |
__attribute__((noinline)) unsigned char | |
foo (void) | |
{ | |
return c; | |
} | |
__attribute__((noinline)) bool | |
bar (void) | |
{ | |
return foo () & 1; | |
} | |
int | |
main () | |
{ | |
c = 0x41; | |
c = bar (); | |
if (c != 1) | |
__builtin_abort (); | |
c = 0x20; | |
c = bar (); | |
if (c != 0) | |
__builtin_abort (); | |
return 0; | |
} |