https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61498
Bug ID: 61498 Summary: [4.10 regression] Many 64-bit Go tests SEGV in scanblock Product: gcc Version: 4.10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: go Assignee: ian at airs dot com Reporter: ro at gcc dot gnu.org CC: cmang at google dot com Host: sparc-sun-solaris2.11 Target: sparc-sun-solaris2.9 Build: sparc-sun-solaris2.11 Between 20140606 (r211315) and 20140612 (r211522), many 64-bit Go tests started to FAIL on 64-bit Solaris 11/SPARC: FAIL: go.go-torture/execute/array-2.go execution, -O0 unexpected fault address 0xc208213b0c fatal error: fault [signal 0xa code=0x1 addr=0xc208213b0c] runtime stack: runtime_dopanic /vol/gcc/src/hg/trunk/local/libgo/runtime/panic.c:133 runtime_throw /vol/gcc/src/hg/trunk/local/libgo/runtime/panic.c:167 sig_panic_info_handler /vol/gcc/src/hg/trunk/local/libgo/runtime/go-signal.c:294 :0 scanblock /vol/gcc/src/hg/trunk/local/libgo/runtime/mgc0.c:1048 markroot /vol/gcc/src/hg/trunk/local/libgo/runtime/mgc0.c:1405 runtime.parfordo /vol/gcc/src/hg/trunk/local/libgo/runtime/parfor.c:112 gc /vol/gcc/src/hg/trunk/local/libgo/runtime/mgc0.c:2282 mgc /vol/gcc/src/hg/trunk/local/libgo/runtime/mgc0.c:2225 runtime_mstart /vol/gcc/src/hg/trunk/local/libgo/runtime/proc.c:1026 main /vol/gcc/src/hg/trunk/local/libgo/runtime/go-main.c:43 :0 goroutine 16 [garbage collection]: created by main /vol/gcc/src/hg/trunk/local/libgo/runtime/go-main.c:42 goroutine 17 [runnable]:created by runtime_main /vol/gcc/src/hg/trunk/local/libgo/runtime/proc.c:561 Running it under gdb reveals Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 1 (LWP 1)] scanblock (wbuf=<optimized out>, keepworking=keepworking@entry=0 '\000') at /vol/gcc/src/hg/trunk/local/libgo/runtime/mgc0.c:1048 1048 obj = *(byte**)stack_top.b; 1: x/i $pc => 0xfffffffb998a230c <scanblock+348>: ldx [ %i5 ], %g1 (gdb) where #0 scanblock (wbuf=<optimized out>, keepworking=keepworking@entry=0 '\000') at /vol/gcc/src/hg/trunk/local/libgo/runtime/mgc0.c:1048 #1 0xfffffffb998a2cf4 in markroot (desc=<optimized out>, i=<optimized out>) at /vol/gcc/src/hg/trunk/local/libgo/runtime/mgc0.c:1405 #2 0xfffffffb998a7d98 in runtime.parfordo (desc=0xc208428000) at /vol/gcc/src/hg/trunk/local/libgo/runtime/parfor.c:112 #3 0xfffffffb998a4a68 in gc (args=<optimized out>) at /vol/gcc/src/hg/trunk/local/libgo/runtime/mgc0.c:2282 #4 mgc (gp=0xc208002800) at /vol/gcc/src/hg/trunk/local/libgo/runtime/mgc0.c:2225 #5 0xfffffffb998ac120 in runtime_mstart (mp=0xfffffffb9a007290 <runtime_m0>) at /vol/gcc/src/hg/trunk/local/libgo/runtime/proc.c:1026 #6 0x0000000100001784 in main (argc=<optimized out>, argv=0xffffffff7ffff2f8) at /vol/gcc/src/hg/trunk/local/libgo/runtime/go-main.c:43 #7 0x000000010000121c in _start () and truss shows that it's an address alignment error: /1: Incurred fault #5, FLTACCESS %pc = 0xFFFFFFFB998A230C /1: siginfo: SIGBUS BUS_ADRALN addr=0xC208213B0C /1: Received signal #10, SIGBUS [caught] /1: siginfo: SIGBUS BUS_ADRALN addr=0xC208213B0C Rainer