https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84796
Jan Schultke <janschultke at googlemail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |janschultke at googlemail dot com --- Comment #6 from Jan Schultke <janschultke at googlemail dot com> --- This seemingly did not ICE for a long time (up to GCC 14.2) but gave nonsensical output: > <source>: In function 'int main()': > <source>:8:18: error: no matching function for call to 'S<int>::f<0>()' > S<int>::f<0>(); > ^ > <source>:4:17: note: candidate: 'template<T ...n> static void S<T>::f() [with > T ...n = {n ...}; T = {int}]' > static void f() { } > ^ > <source>:4:17: note: template argument deduction/substitution failed: > Compiler returned: 1 However, the ICE is back on trunk (https://godbolt.org/z/EcafeGvh8): > <source>: In function 'int main()': > <source>:8:17: internal compiler error: tree check: accessed elt 1 of > 'tree_vec' with 0 elts in tsubst_pack_expansion, at cp/pt.cc:13854 > 8 | S<int>::f<0>(); > | ~~~~~~~~~~~~^~ > 0x2907a05 diagnostic_context::diagnostic_impl(rich_location*, > diagnostic_metadata const*, diagnostic_option_id, char const*, __va_list_tag > (*) [1], diagnostic_t) > ???:0 > 0x291e806 internal_error(char const*, ...) > ???:0 > 0x9d973b tree_vec_elt_check_failed(int, int, char const*, int, char const*) > ???:0 > 0xd0b59e coerce_template_parms(tree_node*, tree_node*, tree_node*, int, bool) > ???:0 > 0xd47413 fn_type_unification(tree_node*, tree_node*, tree_node*, tree_node* > const*, unsigned int, tree_node*, unification_kind_t, int, conversion**, > bool, bool) > ???:0 > 0xaec0bb build_new_method_call(tree_node*, tree_node*, vec<tree_node*, va_gc, > vl_embed>**, tree_node*, int, tree_node**, int) > ???:0 > 0xd67d33 finish_call_expr(tree_node*, vec<tree_node*, va_gc, vl_embed>**, > bool, bool, int) > ???:0 > 0xce86aa c_parse_file() > ???:0 > 0xe49579 c_common_parse_file() > ???:0