https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78774
Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |msebor at gcc dot gnu.org Summary|[6 Regression] ICE in |[6/7 Regression] ICE in |constexpr string literals |constexpr string literals |and templates |and templates --- Comment #3 from Martin Liška <marxin at gcc dot gnu.org> --- (In reply to Markus Trippelsdorf from comment #2) > This variant also ICEs on trunk: > > % cat cr.ii > template <int> struct ops { > template <int> struct A; > template <int *Ptr> using explode = typename A<*Ptr>::join; > }; > template <typename Ts> ops<'\0'>::explode<Ts::join> a; > > % g++ -c cr.ii > cr.ii: In substitution of ‘template<int <anonymous> > template<int* Ptr> > using explode = typename ops<<anonymous> >::A<(* Ptr)>::join [with int* Ptr > = Ts:: join; int <anonymous> = 0]’: > cr.ii:5:51: required from here > cr.ii:3:61: internal compiler error: Segmentation fault > template <int *Ptr> using explode = typename A<*Ptr>::join; > ^ > 0xd5c0ef crash_signal > /home/markus/gcc/gcc/toplev.c:333 > 0x7f0b4d78f12f ??? > > /home/markus/glibc/signal/../sysdeps/unix/sysv/linux/x86_64/sigaction.c:0 > 0x687912 convert_template_argument > /home/markus/gcc/gcc/cp/pt.c:7382 > 0x68959b coerce_template_parms > /home/markus/gcc/gcc/cp/pt.c:7821 > 0x68acb3 coerce_innermost_template_parms > /home/markus/gcc/gcc/cp/pt.c:7912 > 0x68b67a lookup_template_class_1 > /home/markus/gcc/gcc/cp/pt.c:8393 > 0x68b67a lookup_template_class(tree_node*, tree_node*, tree_node*, > tree_node*, int, int) > /home/markus/gcc/gcc/cp/pt.c:8738 > 0x68f1d1 tsubst_aggr_type > /home/markus/gcc/gcc/cp/pt.c:11619 > 0x67a02e tsubst(tree_node*, tree_node*, int, tree_node*) > /home/markus/gcc/gcc/cp/pt.c:13633 > 0x674f60 tsubst_decl > /home/markus/gcc/gcc/cp/pt.c:12506 > 0x67a807 tsubst(tree_node*, tree_node*, int, tree_node*) > /home/markus/gcc/gcc/cp/pt.c:13011 > 0x69b50f instantiate_template_1 > /home/markus/gcc/gcc/cp/pt.c:17806 > 0x69b50f instantiate_template(tree_node*, tree_node*, int) > /home/markus/gcc/gcc/cp/pt.c:17862 > 0x67ab7c instantiate_alias_template > /home/markus/gcc/gcc/cp/pt.c:17892 > 0x67ab7c tsubst(tree_node*, tree_node*, int, tree_node*) > /home/markus/gcc/gcc/cp/pt.c:13038 > 0x68c489 lookup_template_class_1 > /home/markus/gcc/gcc/cp/pt.c:8487 > 0x68c489 lookup_template_class(tree_node*, tree_node*, tree_node*, > tree_node*, int, int) > /home/markus/gcc/gcc/cp/pt.c:8738 > 0x7aa96d finish_template_type(tree_node*, tree_node*, int) > /home/markus/gcc/gcc/cp/semantics.c:3144 > 0x72455d cp_parser_template_id > /home/markus/gcc/gcc/cp/parser.c:15464 > 0x7247dd cp_parser_class_name > /home/markus/gcc/gcc/cp/parser.c:21876 Which started with r227458.