golang/go

gccgo: internal compiler error in type_size (3)

dvyukov opened this issue · 3 comments

gccgo crashes on the following program:

package a
type e[5][5][5][5][5][5][5][][5398986603335]e
go1: internal compiler error: in type_size, at go/go-gcc.cc:1103
0x6074fb Gcc_backend::type_size(Btype*)
    ../../gcc/go/go-gcc.cc:1103
0x671be1 Array_type::slice_gc_symbol(Gogo*, Expression_list**, Expression**, int)
    ../../gcc/go/gofrontend/types.cc:6402
0x671f62 Type::gc_symbol(Gogo*, Type*, Expression_list**, Expression**, int)
    ../../gcc/go/gofrontend/types.cc:1394
0x671f62 Array_type::array_gc_symbol(Gogo*, Expression_list**, Expression**, int)
    ../../gcc/go/gofrontend/types.cc:6461
0x671f62 Type::gc_symbol(Gogo*, Type*, Expression_list**, Expression**, int)
    ../../gcc/go/gofrontend/types.cc:1394
0x671f62 Array_type::array_gc_symbol(Gogo*, Expression_list**, Expression**, int)
    ../../gcc/go/gofrontend/types.cc:6461
0x671f62 Type::gc_symbol(Gogo*, Type*, Expression_list**, Expression**, int)
    ../../gcc/go/gofrontend/types.cc:1394
0x671f62 Array_type::array_gc_symbol(Gogo*, Expression_list**, Expression**, int)
    ../../gcc/go/gofrontend/types.cc:6461
0x671f62 Type::gc_symbol(Gogo*, Type*, Expression_list**, Expression**, int)
    ../../gcc/go/gofrontend/types.cc:1394
0x671f62 Array_type::array_gc_symbol(Gogo*, Expression_list**, Expression**, int)
    ../../gcc/go/gofrontend/types.cc:6461
0x671f62 Type::gc_symbol(Gogo*, Type*, Expression_list**, Expression**, int)
    ../../gcc/go/gofrontend/types.cc:1394
0x671f62 Array_type::array_gc_symbol(Gogo*, Expression_list**, Expression**, int)
    ../../gcc/go/gofrontend/types.cc:6461
0x671f62 Type::gc_symbol(Gogo*, Type*, Expression_list**, Expression**, int)
    ../../gcc/go/gofrontend/types.cc:1394
0x671f62 Array_type::array_gc_symbol(Gogo*, Expression_list**, Expression**, int)
    ../../gcc/go/gofrontend/types.cc:6461
0x671f62 Type::gc_symbol(Gogo*, Type*, Expression_list**, Expression**, int)
    ../../gcc/go/gofrontend/types.cc:1394
0x671f62 Array_type::array_gc_symbol(Gogo*, Expression_list**, Expression**, int)
    ../../gcc/go/gofrontend/types.cc:6461
0x669b1b Type::gc_symbol_constructor(Gogo*)
    ../../gcc/go/gofrontend/types.cc:2187
0x6715fb Type::make_gc_symbol_var(Gogo*)
    ../../gcc/go/gofrontend/types.cc:2119
0x6718f8 Type::gc_symbol_pointer(Gogo*)
    ../../gcc/go/gofrontend/types.cc:2076
0x5f9d29 Struct_construction_expression::do_get_backend(Translate_context*)
    ../../gcc/go/gofrontend/expressions.cc:11698

Note that this is a different stack as in #11554 and #11555

gcc version 6.0.0 2015070 (experimental) (GCC)

This program should compile (but perhaps for an error that [5398986603335]e is too large.

Same as #11554 .