2018-11-07 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / g++.dg / torture / pr80054.C
blob50de24ae8215ede07d14d4da0e96001bd7eed1d6
1 /* { dg-do compile } */
3 /* Used to fail in SLSR because of a dominance violation.  PR80054.  */
5 extern short var_2;
6 extern short var_4;
7 extern const bool var_32;
8 extern short var_36;
9 extern const bool var_37;
10 extern bool var_46;
11 extern unsigned int var_47;
12 extern short var_49;
13 extern unsigned int var_56;
14 extern unsigned int var_62;
15 extern unsigned int var_65;
16 extern bool var_831;
17 extern unsigned int var_843;
18 extern short var_846;
19 extern short var_889;
21 void foo() {
22   if (var_36 * var_37)
23     var_831 = var_56 = 0;
24   else
25     var_65 = 0;
27   if (var_46)
28     var_843 = 0;
30   var_846 = 0;
32   if ((var_4 == 0) >> (var_32 | -(var_37 < var_46 || var_36)) + 8)
33     var_49 = 2032651381 * bool(var_2 * var_37);
34   else {
35     var_62 = 0;
36     var_47 = (var_46 || var_36) * (var_2 * var_37);
37   }
39   var_889 = bool(var_2 * var_37);