2009-04-16 Andrew Pinski <pinskia@gmail.com>
authorpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 16 Apr 2009 17:15:59 +0000 (17:15 +0000)
committerpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 16 Apr 2009 17:15:59 +0000 (17:15 +0000)
        PR C++/17570
        * g++.dg/template/defarg11.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146206 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/template/defarg11.C [new file with mode: 0644]

index fcc05cb..9b1853c 100644 (file)
@@ -1,5 +1,10 @@
 2009-04-16  Andrew Pinski  <pinskia@gmail.com>
 
+       PR C++/17570
+       * g++.dg/template/defarg11.C: New test.
+
+2009-04-16  Andrew Pinski  <pinskia@gmail.com>
+
        PR C++/28766
        * g++.dg/ext/complit11.C: New testcase.
 
diff --git a/gcc/testsuite/g++.dg/template/defarg11.C b/gcc/testsuite/g++.dg/template/defarg11.C
new file mode 100644 (file)
index 0000000..00c4e65
--- /dev/null
@@ -0,0 +1,18 @@
+// { dg-do compile }
+
+// We used to reject this code as the extension
+// for default arguments being accepted as less the
+// needed template arguments.
+
+
+template<typename> struct match { }; 
+template<template<typename> class t,typename T>  
+struct match<t<T> > { typedef int type; }; 
+template<template<typename,typename> class t,typename T0,typename T1> 
+struct match<t<T0,T1> > { typedef int type; }; 
+template<typename,typename =void> struct other { }; 
+typedef match<other<void,void> >::type type;