annotate gcc/testsuite/g++.dg/warn/Wuninitialized-2.C @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +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 compile } */
kono
parents:
diff changeset
2 /* { dg-options "-O -Wuninitialized" } */
kono
parents:
diff changeset
3
kono
parents:
diff changeset
4 struct S8 { template<typename T> S8(T) { } };
kono
parents:
diff changeset
5
kono
parents:
diff changeset
6 template<typename T> struct S10;
kono
parents:
diff changeset
7 template<typename T> struct S10<T()> { typedef T S12; typedef S8 S1(); };
kono
parents:
diff changeset
8
kono
parents:
diff changeset
9 template<typename T> struct S3 { };
kono
parents:
diff changeset
10 template<typename T> struct S11 { S11(S3<T>); };
kono
parents:
diff changeset
11
kono
parents:
diff changeset
12 struct S2
kono
parents:
diff changeset
13 {
kono
parents:
diff changeset
14 template<typename T> operator S11<T>() { return S11<T>(S5<T>()); }
kono
parents:
diff changeset
15 template<typename T> struct S5:public S3<T>
kono
parents:
diff changeset
16 {
kono
parents:
diff changeset
17 virtual typename S10<T>::S12 S13() {
kono
parents:
diff changeset
18 return 0;
kono
parents:
diff changeset
19 }
kono
parents:
diff changeset
20 };
kono
parents:
diff changeset
21 };
kono
parents:
diff changeset
22
kono
parents:
diff changeset
23 template<typename T> S11<T> S6(S3<T>) { return S11<T>(S3<T>()); }
kono
parents:
diff changeset
24 template<typename S12> struct S7 { typedef S12 S15(); };
kono
parents:
diff changeset
25
kono
parents:
diff changeset
26 struct S4
kono
parents:
diff changeset
27 {
kono
parents:
diff changeset
28 template<typename T> operator S11<T>()
kono
parents:
diff changeset
29 {
kono
parents:
diff changeset
30 struct S14:public S3<T>
kono
parents:
diff changeset
31 {
kono
parents:
diff changeset
32 S14(S2 x):S11_(x) { }
kono
parents:
diff changeset
33 S11<typename S7<typename S10<T>::S12>::S15> S11_;
kono
parents:
diff changeset
34 };
kono
parents:
diff changeset
35 return S6(S14(S11_));
kono
parents:
diff changeset
36 }
kono
parents:
diff changeset
37 S2 S11_;
kono
parents:
diff changeset
38 };
kono
parents:
diff changeset
39
kono
parents:
diff changeset
40 struct S9
kono
parents:
diff changeset
41 {
kono
parents:
diff changeset
42 template<typename F> operator S11<F>() { return S11<F>(S14<F>(S11_)); }
kono
parents:
diff changeset
43 template<typename F> struct S14:public S3<F>
kono
parents:
diff changeset
44 {
kono
parents:
diff changeset
45 S14(S4 x):S11_(x) { }
kono
parents:
diff changeset
46 S11<typename S10<F>::S1> S11_;
kono
parents:
diff changeset
47 };
kono
parents:
diff changeset
48 S4 S11_;
kono
parents:
diff changeset
49 };
kono
parents:
diff changeset
50
kono
parents:
diff changeset
51 void S15(S11<void()>);
kono
parents:
diff changeset
52 void S16() { S9 x; S15(x); }
kono
parents:
diff changeset
53