http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50166
Bug #: 50166
Summary: ICE in go1: SEGV on Solaris 10/x86
Classification: Unclassified
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: go
AssignedTo: [email protected]
ReportedBy: [email protected]
Host: i386-pc-solaris2.10
Target: i386-pc-solaris2.10
Build: i386-pc-solaris2.10
Between 20110819 and 20110823, go1 started to ICE compiling libgo. This seems
to happen for every file, e.g.
> ./go1 /var/gcc/reghunt/trunk/libgo/go/sync/atomic/doc.go
<built-in>:0:0: internal compiler error: Segmentation Fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
Running go1 under gdb, I find this stacktrace:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1 (LWP 1)]
0x08a9747d in std::_Rb_tree_decrement (__x=0x8ea3240) at
/var/gcc/reghunt/trunk/libstdc++-v3/src/tree.cc:91
(gdb) where
#0 0x08a9747d in std::_Rb_tree_decrement (__x=0x8ea3240) at
/var/gcc/reghunt/trunk/libstdc++-v3/src/tree.cc:91
#1 0x08a8c640 in std::_Rb_tree_iterator<std::pair<std::string const,
Named_type*> >::operator-- (this=0x8ea323c, __v=...) at
/var/gcc/reghunt/10-gcc/prev-i386-pc-solaris2.10/libstdc++-v3/include/bits/stl_tree.h:203
#2 std::_Rb_tree<std::string, std::pair<std::string const, Named_type*>,
std::_Select1st<std::pair<std::string const, Named_type*> >,
std::less<std::string>, std::allocator<std::pair<std::string const,
Named_type*> > >::_M_insert_unique (this=0x8ea323c, __v=...) at
/var/gcc/reghunt/10-gcc/prev-i386-pc-solaris2.10/libstdc++-v3/include/bits/stl_tree.h:1285
#3 0x081d9370 in std::map<std::string, Named_type*, std::less<std::string>,
std::allocator<std::pair<std::string const, Named_type*> > >::insert
(name=0x8b3b73e <error reading variable>, is_unsigned=true, bits=8,
runtime_type_kind=8) at
/var/gcc/reghunt/10-gcc/prev-i386-pc-solaris2.10/libstdc++-v3/include/bits/stl_map.h:521
#4 Integer_type::create_integer_type (name=0x8b3b73e <error reading variable>,
is_unsigned=true, bits=8, runtime_type_kind=8) at
/var/gcc/reghunt/trunk/gcc/go/gofrontend/types.cc:1837
#5 0x081a29a6 in Gogo::Gogo (this=0x8ff9a30, backend=0x8ea2da4,
int_type_size=32, pointer_size=32) at
/var/gcc/reghunt/trunk/gcc/go/gofrontend/gogo.cc:44
#6 0x08190d6c in go_create_gogo (int_type_size=32, pointer_size=32) at
/var/gcc/reghunt/trunk/gcc/go/gofrontend/go.cc:31
#7 0x0818d62b in go_langhook_init () at
/var/gcc/reghunt/trunk/gcc/go/go-lang.c:96
#8 0x0844c797 in lang_dependent_init (argc=2, argv=0x80474c4) at
/var/gcc/reghunt/trunk/gcc/toplev.c:1714
#9 do_compile (argc=2, argv=0x80474c4) at
/var/gcc/reghunt/trunk/gcc/toplev.c:1872
#10 toplev_main (argc=2, argv=0x80474c4) at
/var/gcc/reghunt/trunk/gcc/toplev.c:1962
#11 0x08a74eeb in main (argc=2, argv=0x80474c4) at
/var/gcc/reghunt/trunk/gcc/main.c:36
(gdb) up
#1 0x08a8c640 in std::_Rb_tree_iterator<std::pair<std::string const,
Named_type*> >::operator-- (this=0x8ea323c, __v=...) at
/var/gcc/reghunt/10-gcc/prev-i386-pc-solaris2.10/libstdc++-v3/include/bits/stl_tree.h:203
(gdb) up
#2 std::_Rb_tree<std::string, std::pair<std::string const, Named_type*>,
std::_Select1st<std::pair<std::string const, Named_type*> >,
std::less<std::string>, std::allocator<std::pair<std::string const,
Named_type*> > >::_M_insert_unique (this=0x8ea323c, __v=...) at
/var/gcc/reghunt/10-gcc/prev-i386-pc-solaris2.10/libstdc++-v3/include/bits/stl_tree.h:1285
(gdb) up
#3 0x081d9370 in std::map<std::string, Named_type*, std::less<std::string>,
std::allocator<std::pair<std::string const, Named_type*> > >::insert
(name=0x8b3b73e <error reading variable>, is_unsigned=true, bits=8,
runtime_type_kind=8) at
/var/gcc/reghunt/10-gcc/prev-i386-pc-solaris2.10/libstdc++-v3/include/bits/stl_map.h:521
(gdb) up
#4 Integer_type::create_integer_type (name=0x8b3b73e <error reading variable>,
is_unsigned=true, bits=8, runtime_type_kind=8) at
/var/gcc/reghunt/trunk/gcc/go/gofrontend/types.cc:1837
(gdb) where
#0 0x08a9747d in std::_Rb_tree_decrement (__x=0x8ea3240) at
/var/gcc/reghunt/trunk/libstdc++-v3/src/tree.cc:91
#1 0x08a8c640 in std::_Rb_tree_iterator<std::pair<std::string const,
Named_type*> >::operator-- (this=0x8ea323c, __v=...) at
/var/gcc/reghunt/10-gcc/prev-i386-pc-solaris2.10/libstdc++-v3/include/bits/stl_tree.h:203
#2 std::_Rb_tree<std::string, std::pair<std::string const, Named_type*>,
std::_Select1st<std::pair<std::string const, Named_type*> >,
std::less<std::string>, std::allocator<std::pair<std::string const,
Named_type*> > >::_M_insert_unique (this=0x8ea323c, __v=...) at
/var/gcc/reghunt/10-gcc/prev-i386-pc-solaris2.10/libstdc++-v3/include/bits/stl_tree.h:1285
#3 0x081d9370 in std::map<std::string, Named_type*, std::less<std::string>,
std::allocator<std::pair<std::string const, Named_type*> > >::insert
(name=0x8b3b73e <error reading variable>, is_unsigned=true, bits=8,
runtime_type_kind=8) at
/var/gcc/reghunt/10-gcc/prev-i386-pc-solaris2.10/libstdc++-v3/include/bits/stl_map.h:521
#4 Integer_type::create_integer_type (name=0x8b3b73e <error reading variable>,
is_unsigned=true, bits=8, runtime_type_kind=8) at
/var/gcc/reghunt/trunk/gcc/go/gofrontend/types.cc:1837
#5 0x081a29a6 in Gogo::Gogo (this=0x8ff9a30, backend=0x8ea2da4,
int_type_size=32, pointer_size=32) at
/var/gcc/reghunt/trunk/gcc/go/gofrontend/gogo.cc:44
#6 0x08190d6c in go_create_gogo (int_type_size=32, pointer_size=32) at
/var/gcc/reghunt/trunk/gcc/go/gofrontend/go.cc:31
#7 0x0818d62b in go_langhook_init () at
/var/gcc/reghunt/trunk/gcc/go/go-lang.c:96
#8 0x0844c797 in lang_dependent_init (argc=2, argv=0x80474c4) at
/var/gcc/reghunt/trunk/gcc/toplev.c:1714
#9 do_compile (argc=2, argv=0x80474c4) at
/var/gcc/reghunt/trunk/gcc/toplev.c:1872
#10 toplev_main (argc=2, argv=0x80474c4) at
/var/gcc/reghunt/trunk/gcc/toplev.c:1962
#11 0x08a74eeb in main (argc=2, argv=0x80474c4) at
/var/gcc/reghunt/trunk/gcc/main.c:36