annotate gcc/testsuite/g++.dg/opt/cfg2.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 // PR optimization/12215
kono
parents:
diff changeset
2 // Origin: <nick@ilm.com>
kono
parents:
diff changeset
3 // Reduced testcase by Wolfgang Bangerth <bangerth@ticam.utexas.edu>
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 // This used to fail because the CSE pass destroyed the CFG in presence
kono
parents:
diff changeset
6 // of trapping loads, which led to the deletion of basic blocks.
kono
parents:
diff changeset
7
kono
parents:
diff changeset
8 // { dg-do compile }
kono
parents:
diff changeset
9 // { dg-options "-O2 -fno-gcse -fnon-call-exceptions" }
kono
parents:
diff changeset
10
kono
parents:
diff changeset
11
kono
parents:
diff changeset
12 struct B {
kono
parents:
diff changeset
13 ~B() throw() {}
kono
parents:
diff changeset
14 };
kono
parents:
diff changeset
15
kono
parents:
diff changeset
16 struct X {
kono
parents:
diff changeset
17 X(const char*, const B&);
kono
parents:
diff changeset
18 ~X() {}
kono
parents:
diff changeset
19 };
kono
parents:
diff changeset
20
kono
parents:
diff changeset
21 bool m();
kono
parents:
diff changeset
22 void f(int &i, float &arg0);
kono
parents:
diff changeset
23
kono
parents:
diff changeset
24 void g (const char **argv) {
kono
parents:
diff changeset
25 float val;
kono
parents:
diff changeset
26 int i = 1;
kono
parents:
diff changeset
27
kono
parents:
diff changeset
28 try {
kono
parents:
diff changeset
29 while ( i < 1 )
kono
parents:
diff changeset
30 {
kono
parents:
diff changeset
31 X arg(argv[i], B());
kono
parents:
diff changeset
32 if (m())
kono
parents:
diff changeset
33 throw(0);
kono
parents:
diff changeset
34
kono
parents:
diff changeset
35 f(i, val);
kono
parents:
diff changeset
36 }
kono
parents:
diff changeset
37 } catch (...) {}
kono
parents:
diff changeset
38 }