Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/template/error38.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// Testcase for printing typename/typedef bindings as well as template args // in diagnostics (PR c++/25185) template <class T> struct A { typename T::type f(); // { dg-message "typename T::type = void*" } void f(int i = 0); // { dg-message "" } typedef typename T::type mytype; mytype g(); // { dg-message "mytype = void*" } void g(int i = 0); // { dg-message "" } }; struct B { typedef void* type; }; // Also make sure that deduced template arguments get canonicalized. template <class T> void f (T &t); // { dg-message "T = int" } template <class T> void f (T &t, int = 0); // { dg-message "" } typedef int myint; myint i; myint *p; int main() { A<B> a; a.f(); // { dg-error "" } a.g(); // { dg-error "" } f(i); // { dg-error "" } f(p); // { dg-error "" } }