PR c++/89913
gcc/cp/
* pt.c (get_underlying_template): Exit loop if the original type
of the alias is null.
gcc/testsuite/
* g++.dg/cpp2a/pr89913.C: New test.
From-SVN: r278451
+2019-11-15 Andrew Sutton <asutton@lock3software.com>
+
+ PR c++/89913
+ * pt.c (get_underlying_template): Exit loop if the original type
+ of the alias is null.
+
+2019-11-19 Andrew Sutton <asutton@lock3software.com>
+
+ PR c++/92078
+ * pt.c (maybe_new_partial_specialization): Apply access to newly
+ created partial specializations. Update comment style.
+
2019-11-19 Andrew Sutton <asutton@lock3software.com>
PR c++/92078
{
/* Determine if the alias is equivalent to an underlying template. */
tree orig_type = DECL_ORIGINAL_TYPE (DECL_TEMPLATE_RESULT (tmpl));
+ /* The underlying type may have been ill-formed. Don't proceed. */
+ if (!orig_type)
+ break;
tree tinfo = TYPE_TEMPLATE_INFO_MAYBE_ALIAS (orig_type);
if (!tinfo)
break;
+2019-11-15 Andrew Sutton <asutton@lock3software.com>
+
+ PR c++/89913
+ * g++.dg/cpp2a/pr89913.C: New test.
+
2019-11-19 Andrew Sutton <asutton@lock3software.com>
PR c++/92078
--- /dev/null
+// { dg-do compile { target c++2a } }
+
+template<typename...> using A = auto; // { dg-error "not allowed" }
+// In pre-20, the error is "invalid use of auto"
+
+template<typename... T> using B = A<T...>;