1 /* PR target/92140 */ 2 3 char c; 4 int v; 5 f1(void)6__attribute__((noipa)) void f1 (void) { v += c != 0; } f2(void)7__attribute__((noipa)) void f2 (void) { v -= c != 0; } f3(void)8__attribute__((noipa)) void f3 (void) { v += c == 0; } f4(void)9__attribute__((noipa)) void f4 (void) { v -= c == 0; } f5(void)10__attribute__((noipa)) void f5 (void) { v += (c != 0) - 26; } f6(void)11__attribute__((noipa)) void f6 (void) { v -= (c != 0) - 26; } f7(void)12__attribute__((noipa)) void f7 (void) { v += (c == 0) - 26; } f8(void)13__attribute__((noipa)) void f8 (void) { v -= (c == 0) - 26; } f9(void)14__attribute__((noipa)) void f9 (void) { v += (c != 0) + 42; } f10(void)15__attribute__((noipa)) void f10 (void) { v -= (c != 0) + 42; } f11(void)16__attribute__((noipa)) void f11 (void) { v += (c == 0) + 42; } f12(void)17__attribute__((noipa)) void f12 (void) { v -= (c == 0) + 42; } f13(int z)18__attribute__((noipa)) void f13 (int z) { v += (c == 0) + z; } f14(int z)19__attribute__((noipa)) void f14 (int z) { v -= (c == 0) + z; } f15(unsigned int n)20__attribute__((noipa)) unsigned int f15 (unsigned int n) { return n ? 2 : 1; } 21 22 int main()23main () 24 { 25 int i; 26 for (i = 0; i < 2; i++) 27 { 28 v = 15; 29 if (i == 1) 30 c = 37; 31 f1 (); 32 if (v != 15 + i) 33 __builtin_abort (); 34 f2 (); 35 if (v != 15) 36 __builtin_abort (); 37 f3 (); 38 if (v != 16 - i) 39 __builtin_abort (); 40 f4 (); 41 if (v != 15) 42 __builtin_abort (); 43 f5 (); 44 if (v != 15 + i - 26) 45 __builtin_abort (); 46 f6 (); 47 if (v != 15) 48 __builtin_abort (); 49 f7 (); 50 if (v != 16 - i - 26) 51 __builtin_abort (); 52 f8 (); 53 if (v != 15) 54 __builtin_abort (); 55 f9 (); 56 if (v != 15 + i + 42) 57 __builtin_abort (); 58 f10 (); 59 if (v != 15) 60 __builtin_abort (); 61 f11 (); 62 if (v != 16 - i + 42) 63 __builtin_abort (); 64 f12 (); 65 if (v != 15) 66 __builtin_abort (); 67 f13 (173); 68 if (v != 16 - i + 173) 69 __builtin_abort (); 70 f14 (173); 71 if (v != 15) 72 __builtin_abort (); 73 f13 (-35); 74 if (v != 16 - i - 35) 75 __builtin_abort (); 76 f14 (-35); 77 if (v != 15) 78 __builtin_abort (); 79 } 80 if (f15 (0) != 1 || f15 (1) != 2 || f15 (371) != 2) 81 __builtin_abort (); 82 return 0; 83 } 84