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.

Reply via email to