/cp
2018-04-19 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/84611
* pt.c (lookup_template_class_1): Check pushtag return value for
error_mark_node.
/testsuite
2018-04-19 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/84611
* g++.dg/parse/crash68.C: New.
From-SVN: r259505
+2018-04-19 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/84611
+ * pt.c (lookup_template_class_1): Check pushtag return value for
+ error_mark_node.
+
2018-04-19 Alexandre Oliva <aoliva@redhat.com>
PR c++/80290
/* A local class. Make sure the decl gets registered properly. */
if (context == current_function_decl)
- pushtag (DECL_NAME (gen_tmpl), t, /*tag_scope=*/ts_current);
+ if (pushtag (DECL_NAME (gen_tmpl), t, /*tag_scope=*/ts_current)
+ == error_mark_node)
+ return error_mark_node;
if (comp_template_args (CLASSTYPE_TI_ARGS (template_type), arglist))
/* This instantiation is another name for the primary
+2018-04-19 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/84611
+ * g++.dg/parse/crash68.C: New.
+
2018-04-19 H.J. Lu <hongjiu.lu@intel.com>
PR libgcc/85334
--- /dev/null
+// PR c++/84611
+
+template<typename = int>
+struct a {
+ a() {
+ struct c;
+ try {
+ } catch (struct c {}) { // { dg-error "types may not be defined|conflicting" }
+ }
+ }
+};
+
+struct d {
+ d();
+ a<> b;
+};
+
+d::d() {}