+2020-01-17 Jason Merrill <jason@redhat.com>
+
+ PR c++/92531 - ICE with noexcept(lambda).
+ * pt.c (uses_template_parms): Don't try to enumerate all the
+ expression cases.
+
2020-01-17 Jakub Jelinek <jakub@redhat.com>
PR c++/93228
|| uses_template_parms (TREE_CHAIN (t)));
else if (TREE_CODE (t) == TYPE_DECL)
dependent_p = dependent_type_p (TREE_TYPE (t));
- else if (DECL_P (t)
- || EXPR_P (t)
- || TREE_CODE (t) == TEMPLATE_PARM_INDEX
- || TREE_CODE (t) == OVERLOAD
- || BASELINK_P (t)
- || identifier_p (t)
- || TREE_CODE (t) == TRAIT_EXPR
- || TREE_CODE (t) == CONSTRUCTOR
- || CONSTANT_CLASS_P (t))
+ else if (t == error_mark_node)
+ dependent_p = false;
+ else
dependent_p = (type_dependent_expression_p (t)
|| value_dependent_expression_p (t));
- else
- {
- gcc_assert (t == error_mark_node);
- dependent_p = false;
- }
processing_template_decl = saved_processing_template_decl;
--- /dev/null
+// PR c++/92531
+// { dg-do compile { target c++17 } }
+
+template <typename XK>
+void ky () noexcept ([]{}); // IFNDR
+// Optional error: void(*)() to bool conv in converted constant expression
+// { dg-prune-output "converted constant expression" }