annotate gcc/testsuite/g++.dg/template/show-template-tree.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-options "-fdiagnostics-show-template-tree" }
kono
parents:
diff changeset
2
kono
parents:
diff changeset
3 template<typename> struct vector {};
kono
parents:
diff changeset
4 template<typename, typename> struct map {};
kono
parents:
diff changeset
5 template<int> struct arr {};
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 void fn_1(vector<int>);
kono
parents:
diff changeset
8 void fn_2(map<int, int>);
kono
parents:
diff changeset
9 void fn_3(vector<map<int, float> >);
kono
parents:
diff changeset
10 void takes_arr_10 (arr<10>);
kono
parents:
diff changeset
11
kono
parents:
diff changeset
12 void test ()
kono
parents:
diff changeset
13 {
kono
parents:
diff changeset
14 fn_1 (vector<int> ());
kono
parents:
diff changeset
15 fn_1 (42); // { dg-error "could not convert '42' from 'int' to 'vector<int>'" }
kono
parents:
diff changeset
16 fn_1 (vector<double> ()); // { dg-error "could not convert .* from 'vector<double>' to 'vector<int>'" }
kono
parents:
diff changeset
17 /* { dg-begin-multiline-output "" }
kono
parents:
diff changeset
18 vector<
kono
parents:
diff changeset
19 [double != int]>
kono
parents:
diff changeset
20 { dg-end-multiline-output "" } */
kono
parents:
diff changeset
21 fn_1 (map<int, int> ()); // { dg-error "could not convert .* from 'map<int, int>' to 'vector<int>'" }
kono
parents:
diff changeset
22
kono
parents:
diff changeset
23 fn_2 (map<int, int>());
kono
parents:
diff changeset
24 fn_2 (map<int, double>()); // { dg-error "could not convert .* from 'map<.\\.\\.\\..,double>. to .map<.\\.\\.\\..,int>'" }
kono
parents:
diff changeset
25 /* { dg-begin-multiline-output "" }
kono
parents:
diff changeset
26 map<
kono
parents:
diff changeset
27 [...],
kono
parents:
diff changeset
28 [double != int]>
kono
parents:
diff changeset
29 { dg-end-multiline-output "" } */
kono
parents:
diff changeset
30 fn_2 (map<double, double>()); // { dg-error "could not convert .* from .map<double,double>. to .map<int,int>." }
kono
parents:
diff changeset
31 /* { dg-begin-multiline-output "" }
kono
parents:
diff changeset
32 map<
kono
parents:
diff changeset
33 [double != int],
kono
parents:
diff changeset
34 [double != int]>
kono
parents:
diff changeset
35 { dg-end-multiline-output "" } */
kono
parents:
diff changeset
36
kono
parents:
diff changeset
37 fn_3 (vector<map<int, float> >());
kono
parents:
diff changeset
38 fn_3 (vector<map<int, double> >()); // { dg-error "could not convert .* from 'vector<map<.\\.\\.\\..,double>>' to 'vector<map<.\\.\\.\\..,float>>'" }
kono
parents:
diff changeset
39 /* { dg-begin-multiline-output "" }
kono
parents:
diff changeset
40 vector<
kono
parents:
diff changeset
41 map<
kono
parents:
diff changeset
42 [...],
kono
parents:
diff changeset
43 [double != float]>>
kono
parents:
diff changeset
44 { dg-end-multiline-output "" } */
kono
parents:
diff changeset
45
kono
parents:
diff changeset
46 takes_arr_10 (arr<5>()); // { dg-error "could not convert '.*' from 'arr<5>' to 'arr<10>'" }
kono
parents:
diff changeset
47 /* { dg-begin-multiline-output "" }
kono
parents:
diff changeset
48 arr<
kono
parents:
diff changeset
49 [5 != 10]>
kono
parents:
diff changeset
50 { dg-end-multiline-output "" } */
kono
parents:
diff changeset
51 }