* cp-tree.h (PROCESSING_REAL_TEMPLATE_DECL_P): False if
processing_template_parmlist.
From-SVN: r259178
2018-04-06 Jason Merrill <jason@redhat.com>
+ PR c++/85242 - ICE with class definition in template parm.
+ * cp-tree.h (PROCESSING_REAL_TEMPLATE_DECL_P): False if
+ processing_template_parmlist.
+
PR c++/85240 - LTO ICE with using of undeduced auto fn.
* cp-gimplify.c (cp_genericize_r): Discard using of undeduced auto.
entity with its own template parameter list, and which is not a
full specialization. */
#define PROCESSING_REAL_TEMPLATE_DECL_P() \
- (processing_template_decl > template_class_depth (current_scope ()))
+ (!processing_template_parmlist \
+ && processing_template_decl > template_class_depth (current_scope ()))
/* Nonzero if this VAR_DECL or FUNCTION_DECL has already been
instantiated, i.e. its definition has been generated from the
--- /dev/null
+// PR c++/85242
+
+namespace N
+{
+ struct A {};
+}
+
+template<struct N::A {}> void foo(); // { dg-error "" }