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