2018-11-07 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / g++.dg / opt / pr80032.C
blob9cdad6838a171729dcd71ed8d594ed0afee9eef9
1 // PR tree-optimization/80032
2 // { dg-do compile { target c++11 } }
3 // { dg-options "-O2" }
4 // If DCE removes too many CLOBBERs then stack usage goes through the
5 // roof as stack slots can no longer be shared.
6 // { dg-additional-options "-Wstack-usage=200" { target x86_64-*-* i?86-*-* } }
8 typedef unsigned a;
9 namespace test {
10     enum b { c };
11     class ADataContainer;
12     class BitMask;
13     namespace api {
14         enum DataStore { candidate };
15     }
16     using d = api::DataStore;
17     namespace db {
18         class e;
19         class f;
20         class g;
21         class ManagedObjectConst {
22         public:
23             ManagedObjectConst(const ManagedObjectConst &);
24             bool isFieldDefault(a, d) const;
25             ADataContainer &getFieldDefault(a, d) const;
26             g *h;
27             e *i;
28             f *j;
29         };
30         struct FieldInfo {
31             FieldInfo(ManagedObjectConst, a, d);
32             ManagedObjectConst k;
33         };
34         b compare(const FieldInfo &, const ADataContainer &);
35         class ManagedObject : public ManagedObjectConst {};
36     }
37     using namespace db;
38     void FN(ManagedObject &k, const BitMask &) {
39         if (!k.isFieldDefault(8, d::candidate) &&
40             !compare(FieldInfo(k, 11, d::candidate),
41                      k.getFieldDefault(11, d::candidate)) == c)
42           return;
43         if (!k.isFieldDefault(8, d::candidate) &&
44             !compare(FieldInfo(k, 11, d::candidate),
45                      k.getFieldDefault(11, d::candidate)) == c)
46           return;
47         if (!k.isFieldDefault(8, d::candidate) &&
48             !compare(FieldInfo(k, 11, d::candidate),
49                      k.getFieldDefault(11, d::candidate)) == c)
50           return;
51         if (!k.isFieldDefault(8, d::candidate) &&
52             !compare(FieldInfo(k, 11, d::candidate),
53                      k.getFieldDefault(11, d::candidate)) == c)
54           return;
55         if (!k.isFieldDefault(8, d::candidate) &&
56             !compare(FieldInfo(k, 11, d::candidate),
57                      k.getFieldDefault(11, d::candidate)) == c)
58           return;
59         if (!k.isFieldDefault(8, d::candidate) &&
60             !compare(FieldInfo(k, 11, d::candidate),
61                      k.getFieldDefault(11, d::candidate)) == c)
62           return;
63         if (!k.isFieldDefault(8, d::candidate) &&
64             !compare(FieldInfo(k, 11, d::candidate),
65                      k.getFieldDefault(11, d::candidate)) == c)
66           return;
67         if (!k.isFieldDefault(8, d::candidate) &&
68             !compare(FieldInfo(k, 11, d::candidate),
69                      k.getFieldDefault(11, d::candidate)) == c)
70           return;
71         if (!k.isFieldDefault(8, d::candidate) &&
72             !compare(FieldInfo(k, 11, d::candidate),
73                      k.getFieldDefault(11, d::candidate)) == c)
74           return;
75         if (!k.isFieldDefault(8, d::candidate) &&
76             !compare(FieldInfo(k, 11, d::candidate),
77                      k.getFieldDefault(11, d::candidate)) == c)
78           return;
79         if (!k.isFieldDefault(8, d::candidate) &&
80             !compare(FieldInfo(k, 11, d::candidate),
81                      k.getFieldDefault(11, d::candidate)) == c)
82           return;
83         if (!k.isFieldDefault(8, d::candidate) &&
84             !compare(FieldInfo(k, 11, d::candidate),
85                      k.getFieldDefault(11, d::candidate)) == c)
86           return;
87         if (!k.isFieldDefault(8, d::candidate) &&
88             !compare(FieldInfo(k, 11, d::candidate),
89                      k.getFieldDefault(11, d::candidate)) == c)
90           return;
91         if (!k.isFieldDefault(8, d::candidate) &&
92             !compare(FieldInfo(k, 11, d::candidate),
93                      k.getFieldDefault(11, d::candidate)) == c)
94           return;
95         if (!k.isFieldDefault(8, d::candidate) &&
96             !compare(FieldInfo(k, 11, d::candidate),
97                      k.getFieldDefault(11, d::candidate)) == c)
98           return;
99         if (!k.isFieldDefault(8, d::candidate) &&
100             !compare(FieldInfo(k, 11, d::candidate),
101                      k.getFieldDefault(11, d::candidate)) == c)
102           return;
103         if (!k.isFieldDefault(8, d::candidate) &&
104             !compare(FieldInfo(k, 11, d::candidate),
105                      k.getFieldDefault(11, d::candidate)) == c)
106           return;
107         if (!k.isFieldDefault(8, d::candidate) &&
108             !compare(FieldInfo(k, 11, d::candidate),
109                      k.getFieldDefault(11, d::candidate)) == c)
110           return;
111         if (!k.isFieldDefault(8, d::candidate) &&
112             !compare(FieldInfo(k, 11, d::candidate),
113                      k.getFieldDefault(11, d::candidate)) == c)
114           return;
115         if (!k.isFieldDefault(8, d::candidate) &&
116             !compare(FieldInfo(k, 11, d::candidate),
117                      k.getFieldDefault(11, d::candidate)) == c)
118           return;
119     }