| /* { dg-do run } */ | |
| /* { dg-options "-O2" } */ | |
| void link_error (void); | |
| struct A | |
| { | |
| int a; | |
| int b; | |
| }; | |
| struct A a; | |
| const int B = 42; | |
| void foo (int i) | |
| { | |
| if (i > 10) | |
| a.a = 42; | |
| else | |
| { | |
| a.b = 21; | |
| a.a = a.b + 21; | |
| } | |
| /* This should be folded to 'if (0)' as a.a and B are both 42. */ | |
| if (a.a != B) | |
| link_error (); | |
| } | |
| int | |
| main () | |
| { | |
| foo (3); | |
| return 0; | |
| } |