https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95728
Marek Polacek <mpolacek at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mpolacek at gcc dot gnu.org Target Milestone|--- |11.0 --- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> --- Since the introduction of tsubst_tree_list we now return a naked error_mark_node rather than an error_mark_node wrapped in a TREE_LIST. So tsubst_copy_and_build/NEW_EXPR ICEs: 19654 tree placement = RECUR (TREE_OPERAND (t, 0)); // now a naked error_mark_node ... 19668 for (; placement != NULL_TREE; placement = TREE_CHAIN (placement)) // crash A simple --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -19633,6 +19660,8 @@ tsubst_copy_and_build (tree t, if (placement == NULL_TREE) placement_vec = NULL; + else if (placement == error_mark_node) + RETURN (error_mark_node); else { placement_vec = make_tree_vector (); should fix this.