Be careful about comdat boundary in ICF (PR ipa/82352).
[official-gcc.git] / gcc / testsuite / g++.dg / opt / pr7503-1.C
blobd366a618030d83b611d42532a72b712116e776fa
1 // PR c++/7503
2 // { dg-do run }
3 // { dg-options "-O2" }
5 extern "C" void abort();
7 void test1a()
9   int A = 4;
10   int B = 4;
12   (A > B ? A : B) = 1;
13   if (A != 4 || B != 1)
14     abort ();
17 void test1b()
19   int A = 3;
20   int B = 5;
22   (A > B ? A : B) = 1;
23   if (A != 3 || B != 1)
24     abort ();
27 void test1c()
29   int A = 5;
30   int B = 3;
32   (A > B ? A : B) = 1;
33   if (A != 1 || B != 3)
34     abort ();
37 void test2a()
39   int A = 4;
40   int B = 4;
42   (A >= B ? A : B) = 1;
43   if (A != 1 || B != 4)
44     abort ();
47 void test2b()
49   int A = 3;
50   int B = 5;
52   (A >= B ? A : B) = 1;
53   if (A != 3 || B != 1)
54     abort ();
57 void test2c()
59   int A = 5;
60   int B = 3;
62   (A >= B ? A : B) = 1;
63   if (A != 1 || B != 3)
64     abort ();
67 void test3a()
69   int A = 4;
70   int B = 4;
72   (A < B ? A : B) = 1;
73   if (A != 4 || B != 1)
74     abort ();
77 void test3b()
79   int A = 3;
80   int B = 5;
82   (A < B ? A : B) = 1;
83   if (A != 1 || B != 5)
84     abort ();
87 void test3c()
89   int A = 5;
90   int B = 3;
92   (A < B ? A : B) = 1;
93   if (A != 5 || B != 1)
94     abort ();
97 void test4a()
99   int A = 4;
100   int B = 4;
102   (A <= B ? A : B) = 1;
103   if (A != 1 || B != 4)
104     abort ();
107 void test4b()
109   int A = 3;
110   int B = 5;
112   (A <= B ? A : B) = 1;
113   if (A != 1 || B != 5)
114     abort ();
117 void test4c()
119   int A = 5;
120   int B = 3;
122   (A <= B ? A : B) = 1;
123   if (A != 5 || B != 1)
124     abort ();
128 int main()
130   test1a();
131   test1b();
132   test1c();
134   test2a();
135   test2b();
136   test2c();
138   test3a();
139   test3b();
140   test3c();
142   test4a();
143   test4b();
144   test4c();
146   return 0;