https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88196

            Bug ID: 88196
           Summary: ICE on (invalid) C++ code when compiled with
                    -std=c++2a: in convert_nontype_argument, at
                    cp/pt.c:7137
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: su at cs dot ucdavis.edu
  Target Milestone: ---

This appears to be a recent regression. 

$ g++tk -v
Using built-in specs.
COLLECT_GCC=g++tk
COLLECT_LTO_WRAPPER=/home/su/software/tmp/gcc/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/9.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-source-trunk/configure --enable-languages=c,c++,lto
--prefix=/home/su/software/tmp/gcc/gcc-trunk --disable-bootstrap
Thread model: posix
gcc version 9.0.0 20181125 (experimental) [trunk revision 266435] (GCC) 
$ 
$ g++tk -std=c++2a tmp.cpp
tmp.cpp:5:14: internal compiler error: in convert_nontype_argument, at
cp/pt.c:7137
    5 | B < C, &C::c > b;
      |              ^
0x962cb5 convert_nontype_argument
        ../../gcc-source-trunk/gcc/cp/pt.c:7136
0x976c80 convert_template_argument
        ../../gcc-source-trunk/gcc/cp/pt.c:8033
0x977b13 coerce_template_parms
        ../../gcc-source-trunk/gcc/cp/pt.c:8511
0x979d5a lookup_template_class_1
        ../../gcc-source-trunk/gcc/cp/pt.c:9328
0x979d5a lookup_template_class(tree_node*, tree_node*, tree_node*, tree_node*,
int, int)
        ../../gcc-source-trunk/gcc/cp/pt.c:9685
0x9b7bcd finish_template_type(tree_node*, tree_node*, int)
        ../../gcc-source-trunk/gcc/cp/semantics.c:3249
0x90c057 cp_parser_template_id
        ../../gcc-source-trunk/gcc/cp/parser.c:16295
0x90c254 cp_parser_class_name
        ../../gcc-source-trunk/gcc/cp/parser.c:22861
0x90e411 cp_parser_qualifying_entity
        ../../gcc-source-trunk/gcc/cp/parser.c:6651
0x90e411 cp_parser_nested_name_specifier_opt
        ../../gcc-source-trunk/gcc/cp/parser.c:6335
0x90f40a cp_parser_constructor_declarator_p
        ../../gcc-source-trunk/gcc/cp/parser.c:27029
0x90f40a cp_parser_decl_specifier_seq
        ../../gcc-source-trunk/gcc/cp/parser.c:13950
0x91a801 cp_parser_simple_declaration
        ../../gcc-source-trunk/gcc/cp/parser.c:13271
0x923b90 cp_parser_declaration
        ../../gcc-source-trunk/gcc/cp/parser.c:13087
0x922b05 cp_parser_translation_unit
        ../../gcc-source-trunk/gcc/cp/parser.c:4674
0x922b05 c_parse_file()
        ../../gcc-source-trunk/gcc/cp/parser.c:40680
0xa7e34a c_common_parse_file()
        ../../gcc-source-trunk/gcc/c-family/c-opts.c:1151
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
$ 


--------------------------------------


template < class A, A > struct B {};

struct C { C *c; };

B < C, &C::c > b;

Reply via email to