annotate gcc/testsuite/g++.dg/opt/inline1.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 c++/6316
kono
parents:
diff changeset
2 // This testcase ICEd because when deferred bar()::F::F() was being
kono
parents:
diff changeset
3 // expanded, containing bar() was still deferred and had DECL_EXTERNAL set
kono
parents:
diff changeset
4 // (and DECL_NOT_REALLY_EXTERN too).
kono
parents:
diff changeset
5 // { dg-do compile }
kono
parents:
diff changeset
6 // { dg-options "-O3" }
kono
parents:
diff changeset
7
kono
parents:
diff changeset
8 struct A { ~A() throw() {} };
kono
parents:
diff changeset
9 template<typename T, typename U> struct B { U a; B(const T *); };
kono
parents:
diff changeset
10 typedef B<char, A> C;
kono
parents:
diff changeset
11 struct D { D(); };
kono
parents:
diff changeset
12 struct E { virtual ~E(); };
kono
parents:
diff changeset
13
kono
parents:
diff changeset
14 E *bar ();
kono
parents:
diff changeset
15
kono
parents:
diff changeset
16 void
kono
parents:
diff changeset
17 foo ()
kono
parents:
diff changeset
18 {
kono
parents:
diff changeset
19 E *a = bar ();
kono
parents:
diff changeset
20 }
kono
parents:
diff changeset
21
kono
parents:
diff changeset
22 extern char *z [];
kono
parents:
diff changeset
23
kono
parents:
diff changeset
24 E *
kono
parents:
diff changeset
25 bar ()
kono
parents:
diff changeset
26 {
kono
parents:
diff changeset
27 struct F : public E
kono
parents:
diff changeset
28 {
kono
parents:
diff changeset
29 F ()
kono
parents:
diff changeset
30 {
kono
parents:
diff changeset
31 for (int i = 0; i < 2; i++)
kono
parents:
diff changeset
32 C e = z[i];
kono
parents:
diff changeset
33 }
kono
parents:
diff changeset
34 D x, y;
kono
parents:
diff changeset
35 };
kono
parents:
diff changeset
36 return new F ();
kono
parents:
diff changeset
37 }
kono
parents:
diff changeset
38
kono
parents:
diff changeset
39 int
kono
parents:
diff changeset
40 main ()
kono
parents:
diff changeset
41 {
kono
parents:
diff changeset
42 foo ();
kono
parents:
diff changeset
43 }