annotate gcc/testsuite/g++.dg/torture/pr46149.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 // { dg-do run }
kono
parents:
diff changeset
2 // { dg-options "-fno-tree-sra" }
kono
parents:
diff changeset
3
kono
parents:
diff changeset
4 struct S
kono
parents:
diff changeset
5 {
kono
parents:
diff changeset
6 S ():p ((char *) __builtin_calloc (1, 1))
kono
parents:
diff changeset
7 {
kono
parents:
diff changeset
8 }
kono
parents:
diff changeset
9 char *p;
kono
parents:
diff changeset
10 };
kono
parents:
diff changeset
11
kono
parents:
diff changeset
12 template < class T > struct A
kono
parents:
diff changeset
13 {
kono
parents:
diff changeset
14 A (const S & __m1, const T & __m2):m1 (__m1), m2 (__m2)
kono
parents:
diff changeset
15 {
kono
parents:
diff changeset
16 }
kono
parents:
diff changeset
17 const S & m1;
kono
parents:
diff changeset
18 const T & m2;
kono
parents:
diff changeset
19 };
kono
parents:
diff changeset
20
kono
parents:
diff changeset
21 struct B:A < S >
kono
parents:
diff changeset
22 {
kono
parents:
diff changeset
23 B (const S & __v):A < S > (__v, __v)
kono
parents:
diff changeset
24 {
kono
parents:
diff changeset
25 }
kono
parents:
diff changeset
26 };
kono
parents:
diff changeset
27
kono
parents:
diff changeset
28 struct C:A < B >
kono
parents:
diff changeset
29 {
kono
parents:
diff changeset
30 C (const S & __e1, const B & __e2):A < B > (__e1, __e2)
kono
parents:
diff changeset
31 {
kono
parents:
diff changeset
32 }
kono
parents:
diff changeset
33 };
kono
parents:
diff changeset
34
kono
parents:
diff changeset
35 struct D
kono
parents:
diff changeset
36 {
kono
parents:
diff changeset
37 D (const C & __c):c (__c)
kono
parents:
diff changeset
38 {
kono
parents:
diff changeset
39 }
kono
parents:
diff changeset
40 const C c;
kono
parents:
diff changeset
41 };
kono
parents:
diff changeset
42
kono
parents:
diff changeset
43 int
kono
parents:
diff changeset
44 main ()
kono
parents:
diff changeset
45 {
kono
parents:
diff changeset
46 S s;
kono
parents:
diff changeset
47 B b (s);
kono
parents:
diff changeset
48 C c (s, b);
kono
parents:
diff changeset
49 D d (c);
kono
parents:
diff changeset
50 return d.c.m2.m2.p[0];
kono
parents:
diff changeset
51 }