gcc/cp/
PR c++/51191
* pt.c (primary_template_instantiation_p): Don't forget to
consider alias declarations.
gcc/testsuite/
PR c++/51191
* g++.dg/cpp0x/alias-decl-13.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181475
138bc75d-0d04-0410-961f-
82ee72b054a4
+2011-11-18 Dodji Seketeli <dodji@redhat.com>
+
+ PR c++/51191
+ * pt.c (primary_template_instantiation_p): Don't forget to
+ consider alias declarations.
+
2011-11-17 Jason Merrill <jason@redhat.com>
PR c++/51186
return DECL_LANG_SPECIFIC (t)
&& DECL_TEMPLATE_INSTANTIATION (t)
&& PRIMARY_TEMPLATE_P (DECL_TI_TEMPLATE (t));
- else if (CLASS_TYPE_P (t))
+ else if (CLASS_TYPE_P (t) && !TYPE_DECL_ALIAS_P (TYPE_NAME (t)))
return CLASSTYPE_TEMPLATE_INSTANTIATION (t)
&& PRIMARY_TEMPLATE_P (CLASSTYPE_TI_TEMPLATE (t));
else if (TYPE_P (t)
+2011-11-18 Dodji Seketeli <dodji@redhat.com>
+
+ PR c++/51191
+ * g++.dg/cpp0x/alias-decl-13.C: New test.
+
2011-11-17 Jason Merrill <jason@redhat.com>
PR c++/51186
--- /dev/null
+// Origin PR c++/51191
+// { dg-options "-std=c++0x" }
+
+template< class T >
+class ClassTemplate {};
+
+template< class T >
+struct Metafunction {
+ typedef T type;
+};
+
+template< class T >
+using TemplateAlias = ClassTemplate< typename Metafunction<T>::type >;
+
+using Alias = TemplateAlias<int>;
+
+template< class T >
+void f( TemplateAlias<T> );
+
+int main()
+{
+ Alias x;
+ f( x ); // { dg-error "no matching function for call to|f" }
+}