1 // Testcase for printing typename/typedef bindings as well as template args
2 // in diagnostics (PR c++/25185)
6 typename T::type f(); // { dg-message "typename T::type = void*" }
7 void f(int i = 0); // { dg-message "" }
9 typedef typename T::type mytype;
10 mytype g(); // { dg-message "mytype = void*" }
11 void g(int i = 0); // { dg-message "" }
19 // Also make sure that deduced template arguments get canonicalized.
22 void f (T &t); // { dg-message "T = int" }
25 void f (T &t, int = 0); // { dg-message "" }
34 a.f(); // { dg-error "" }
35 // { dg-message "candidate" "candidate note" { target *-*-* } 34 }
36 a.g(); // { dg-error "" }
37 // { dg-message "candidate" "candidate note" { target *-*-* } 36 }
39 f(i); // { dg-error "" }
40 // { dg-message "candidate" "candidate note" { target *-*-* } 39 }
41 f(p); // { dg-error "" }
42 // { dg-message "candidate" "candidate note" { target *-*-* } 41 }