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

            Bug ID: 77752
           Summary: ICE on C++ code on x86_64-linux-gnu (internal compiler
                    error: Segmentation fault, build_list_conv,
                    implicit_conversion)
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: chengniansun at gmail dot com
  Target Milestone: ---

$ gcc-trunk -v
Using built-in specs.
COLLECT_GCC=gcc-trunk
COLLECT_LTO_WRAPPER=/usr/local/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/7.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-source-trunk/configure --enable-languages=c,c++,lto
--prefix=/usr/local/gcc-trunk --disable-bootstrap
Thread model: posix
gcc version 7.0.0 20160926 (experimental) [trunk revision 240511] (GCC) 
$ 
$ gcc-trunk small.C
small.C: In function ‘void f(std::initializer_list)’:
small.C:4:30: error: ‘l’ has incomplete type
 void f(std::initializer_list l) { f({2}); }
                              ^
small.C:2:7: note: forward declaration of ‘class std::initializer_list’
 class initializer_list;
       ^~~~~~~~~~~~~~~~
small.C:4:40: internal compiler error: Segmentation fault
 void f(std::initializer_list l) { f({2}); }
                                        ^
0xdcb7df crash_signal
        ../../gcc-source-trunk/gcc/toplev.c:337
0x650c8d tree_check
        ../../gcc-source-trunk/gcc/tree.h:3030
0x650c8d build_list_conv
        ../../gcc-source-trunk/gcc/cp/call.c:788
0x650c8d implicit_conversion
        ../../gcc-source-trunk/gcc/cp/call.c:1816
0x65c7e8 add_function_candidate
        ../../gcc-source-trunk/gcc/cp/call.c:2142
0x64ee06 add_candidates
        ../../gcc-source-trunk/gcc/cp/call.c:5410
0x6628cc perform_overload_resolution
        ../../gcc-source-trunk/gcc/cp/call.c:4067
0x662abe build_new_function_call(tree_node*, vec<tree_node*, va_gc,
vl_embed>**, bool, int)
        ../../gcc-source-trunk/gcc/cp/call.c:4144
0x806718 finish_call_expr(tree_node*, vec<tree_node*, va_gc, vl_embed>**, bool,
bool, int)
        ../../gcc-source-trunk/gcc/cp/semantics.c:2440
0x77edcb cp_parser_postfix_expression
        ../../gcc-source-trunk/gcc/cp/parser.c:6937
0x787b82 cp_parser_unary_expression
        ../../gcc-source-trunk/gcc/cp/parser.c:8019
0x7886a7 cp_parser_cast_expression
        ../../gcc-source-trunk/gcc/cp/parser.c:8696
0x788c73 cp_parser_binary_expression
        ../../gcc-source-trunk/gcc/cp/parser.c:8798
0x789563 cp_parser_assignment_expression
        ../../gcc-source-trunk/gcc/cp/parser.c:9086
0x78c069 cp_parser_expression
        ../../gcc-source-trunk/gcc/cp/parser.c:9253
0x78c7f8 cp_parser_expression_statement
        ../../gcc-source-trunk/gcc/cp/parser.c:10771
0x77a87a cp_parser_statement
        ../../gcc-source-trunk/gcc/cp/parser.c:10587
0x77b7d5 cp_parser_statement_seq_opt
        ../../gcc-source-trunk/gcc/cp/parser.c:10913
0x77b8af cp_parser_compound_statement
        ../../gcc-source-trunk/gcc/cp/parser.c:10867
0x799753 cp_parser_function_body
        ../../gcc-source-trunk/gcc/cp/parser.c:20887
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.
$ 
$ cat small.C
namespace std {
class initializer_list;
}
void f(std::initializer_list l) { f({2}); }

Reply via email to