https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116384
Marek Polacek <mpolacek at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Target Milestone|--- |14.3 Status|UNCONFIRMED |NEW Summary|[14 Regression] ICE in |[14/15 Regression] ICE in |convert_nontype_argument, |convert_nontype_argument, |at cp/pt.cc:7877 |at cp/pt.cc:7877 Priority|P3 |P2 Keywords| |ice-on-valid-code Last reconfirmed| |2024-08-15 CC| |mpolacek at gcc dot gnu.org --- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> --- Trunk crashes as well. Thanks for the report. $ ./cc1plus -quiet x.ii -std=c++14 test.cpp: In substitution of ‘template<class k> using q = e::o<k> [with k = r]’: test.cpp:23:23: recursively required by substitution of ‘template<template<class> class i, class ... args> struct e::g::detector<e::g::h<i<args ...> >, i, args ...> [with i = q; args = {r}]’ test.cpp:23:23: required from here test.cpp:22:29: internal compiler error: in convert_nontype_argument, at cp/pt.cc:7866 0x380a046 internal_error(char const*, ...) /home/mpolacek/src/gcc/gcc/diagnostic-global-context.cc:491 0x37e8315 fancy_abort(char const*, int, char const*) /home/mpolacek/src/gcc/gcc/diagnostic.cc:1772 0x113b3ef convert_nontype_argument /home/mpolacek/src/gcc/gcc/cp/pt.cc:7866 0x117d626 tsubst_expr(tree_node*, tree_node*, int, tree_node*) /home/mpolacek/src/gcc/gcc/cp/pt.cc:20230 0x1151abb tsubst_template_arg(tree_node*, tree_node*, int, tree_node*) /home/mpolacek/src/gcc/gcc/cp/pt.cc:12862 0x1156bf0 tsubst_template_args(tree_node*, tree_node*, int, tree_node*) /home/mpolacek/src/gcc/gcc/cp/pt.cc:14024 0x1167260 tsubst(tree_node*, tree_node*, int, tree_node*) /home/mpolacek/src/gcc/gcc/cp/pt.cc:16296 0x1163e0a tsubst_decl /home/mpolacek/src/gcc/gcc/cp/pt.cc:15565 0x11888b8 instantiate_template(tree_node*, tree_node*, int) /home/mpolacek/src/gcc/gcc/cp/pt.cc:22201 0x1189303 instantiate_alias_template /home/mpolacek/src/gcc/gcc/cp/pt.cc:22299 0x11439a2 lookup_template_class(tree_node*, tree_node*, tree_node*, tree_node*, int) /home/mpolacek/src/gcc/gcc/cp/pt.cc:10118 0x116809c tsubst(tree_node*, tree_node*, int, tree_node*) /home/mpolacek/src/gcc/gcc/cp/pt.cc:16496 0x1151a85 tsubst_template_arg(tree_node*, tree_node*, int, tree_node*) /home/mpolacek/src/gcc/gcc/cp/pt.cc:12857 0x1156bf0 tsubst_template_args(tree_node*, tree_node*, int, tree_node*) /home/mpolacek/src/gcc/gcc/cp/pt.cc:14024 0x1168a8a tsubst(tree_node*, tree_node*, int, tree_node*) /home/mpolacek/src/gcc/gcc/cp/pt.cc:16622 0x11668d0 tsubst(tree_node*, tree_node*, int, tree_node*) /home/mpolacek/src/gcc/gcc/cp/pt.cc:16226 0x1151a85 tsubst_template_arg(tree_node*, tree_node*, int, tree_node*) /home/mpolacek/src/gcc/gcc/cp/pt.cc:12857 0x1156bf0 tsubst_template_args(tree_node*, tree_node*, int, tree_node*) /home/mpolacek/src/gcc/gcc/cp/pt.cc:14024 0x1168a8a tsubst(tree_node*, tree_node*, int, tree_node*) /home/mpolacek/src/gcc/gcc/cp/pt.cc:16622 0x119893b get_partial_spec_bindings /home/mpolacek/src/gcc/gcc/cp/pt.cc:26070