annotate gcc/testsuite/g++.dg/opt/pr64338.C @ 152:2b5abeee2509

update gcc11
author anatofuz
date Mon, 25 May 2020 07:50:57 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 // PR target/64338
kono
parents:
diff changeset
2 // { dg-do compile }
kono
parents:
diff changeset
3 // { dg-options "-O2" }
kono
parents:
diff changeset
4 // { dg-additional-options "-mtune=nehalem -march=i586" { target { { i?86-*-* x86_64-*-* } && ia32 } } }
kono
parents:
diff changeset
5
kono
parents:
diff changeset
6 enum O {};
kono
parents:
diff changeset
7 struct A { A (); };
kono
parents:
diff changeset
8 struct B { int fn1 (); };
kono
parents:
diff changeset
9 struct C { struct D; D *fn2 (); void fn3 (); int fn4 (); };
kono
parents:
diff changeset
10 struct F { void fn5 (const int & = 0); };
kono
parents:
diff changeset
11 struct G { F *fn6 (); };
kono
parents:
diff changeset
12 struct H { int h; };
kono
parents:
diff changeset
13 struct C::D { friend class C; G *fn7 (); };
kono
parents:
diff changeset
14 O a;
kono
parents:
diff changeset
15
kono
parents:
diff changeset
16 void
kono
parents:
diff changeset
17 C::fn3 ()
kono
parents:
diff changeset
18 {
kono
parents:
diff changeset
19 int b = a;
kono
parents:
diff changeset
20 H c;
kono
parents:
diff changeset
21 if (b)
kono
parents:
diff changeset
22 fn2 ()->fn7 ()->fn6 ()->fn5 ();
kono
parents:
diff changeset
23 double d;
kono
parents:
diff changeset
24 if (fn4 ())
kono
parents:
diff changeset
25 d = c.h > 0;
kono
parents:
diff changeset
26 A e (b ? A () : A ());
kono
parents:
diff changeset
27 B f;
kono
parents:
diff changeset
28 f.fn1 () && d && fn2 ();
kono
parents:
diff changeset
29 }