annotate gcc/testsuite/g++.dg/cpp1y/pr79937-4.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
1 // PR c++/79937
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
2 // { dg-do run { target c++14 } }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4 struct X {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5 unsigned i;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6 unsigned n = i;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7 };
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9 X
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10 bar (X x)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12 return x;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15 struct Y
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17 static Y bar (Y y) { return y; }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18 unsigned i;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19 unsigned n = bar (Y{2,i}).n;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20 };
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22 int
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
23 main ()
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
24 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
25 X x { 1, bar (X{2}).n };
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
26 if (x.n != 2)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
27 __builtin_abort ();
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
28
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
29 Y y { 1 };
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
30 if (y.n != 1)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
31 __builtin_abort ();
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
32 }