/cp
2015-08-22 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/63693
* pt.c (resolve_typename_type): Use CLASSTYPE_PRIMARY_TEMPLATE_TYPE
only on class types.
/testsuite
2015-08-22 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/63693
* g++.dg/cpp0x/decltype63.C: New.
From-SVN: r227098
+2015-08-22 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/63693
+ * pt.c (resolve_typename_type): Use CLASSTYPE_PRIMARY_TEMPLATE_TYPE
+ only on class types.
+
2015-08-21 Jason Merrill <jason@redhat.com>
PR c++/67240
return type;
/* If SCOPE isn't the template itself, it will not have a valid
TYPE_FIELDS list. */
- if (same_type_p (scope, CLASSTYPE_PRIMARY_TEMPLATE_TYPE (scope)))
+ if (CLASS_TYPE_P (scope)
+ && same_type_p (scope, CLASSTYPE_PRIMARY_TEMPLATE_TYPE (scope)))
/* scope is either the template itself or a compatible instantiation
like X<T>, so look up the name in the original template. */
scope = CLASSTYPE_PRIMARY_TEMPLATE_TYPE (scope);
+2015-08-22 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/63693
+ * g++.dg/cpp0x/decltype63.C: New.
+
2015-08-22 Nathan Sidwell <nathan@acm.org>
* c-c++-common/Wsizeof-pointer-memaccess1.c: Require alloca.
--- /dev/null
+// PR c++/63693
+// { dg-do compile { target c++11 } }
+
+template<typename T>
+class C{
+ T t;
+ decltype(t)::a:: // { dg-error "expected" }