http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56076
Bug #: 56076 Summary: [4.8 regression] Several 64-bit libgo tests FAIL in read_line_header Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: other AssignedTo: unassig...@gcc.gnu.org ReportedBy: r...@gcc.gnu.org CC: i...@google.com Host: sparc-sun-solaris2* Target: sparc-sun-solaris2* Build: sparc-sun-solaris2* For some time (probably since 20121023), several 64-bit libgo tests FAIL on Solaris/SPARC: FAIL: go.go-torture/execute/array-2.go execution, -O0 FAIL: go.go-torture/execute/array-2.go execution, -O1 FAIL: go.go-torture/execute/array-2.go execution, -O2 FAIL: go.go-torture/execute/array-2.go execution, -O2 -fomit-frame-pointer -finline-functions FAIL: go.go-torture/execute/array-2.go execution, -O2 -fomit-frame-pointer -finline-functions -funroll-loops FAIL: go.go-torture/execute/array-2.go execution, -O2 -fbounds-check FAIL: go.go-torture/execute/array-2.go execution, -O3 -g FAIL: go.go-torture/execute/array-2.go execution, -Os and many more, cf. testsuite results for the full list. They seem to have a common cause: p=0xffffffff7d400000 throw: runtime_lfstackpush: invalid pointer goroutine 1 [running]: panic: invalid memory address or nil pointer dereference panic during panic FAIL: go.go-torture/execute/array-2.go execution, -O0 [Thread debugging using libthread_db enabled] [New Thread 1 (LWP 1)] [New LWP 2 ] p=0xffffffff7dd00000 throw: runtime_lfstackpush: invalid pointer goroutine 1 [running]: [New Thread 2 (LWP 2)] Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 2 (LWP 2)] 0xffffffff7ee5cb90 in strlen () from /lib/64/libc.so.1 (gdb) where #0 0xffffffff7ee5cb90 in strlen () from /lib/64/libc.so.1 #1 0xfffffffb9fff9690 in read_line_header (u=<optimized out>, hdr=0xc200202da0, line_buf=0xc200202de0, is_dwarf64=<optimized out>, state=0xffffffff7e400000) at /vol/gcc/src/hg/trunk/local/libbacktrace/dwarf.c:1666 #2 read_line_info (lines_count=<synthetic pointer>, lines=<synthetic pointer>, hdr=0xc200202da0, u=0xffffffff7a900858, data=0xc200203098, error_callback=0xfffffffb9fd99d34 <error_callback>, ddata=0xffffffff74101ea8, state=0xffffffff7e400000) at /vol/gcc/src/hg/trunk/local/libbacktrace/dwarf.c:1947 #3 dwarf_lookup_pc (state=state@entry=0xffffffff7e400000, ddata=ddata@entry=0xffffffff74101ea8, pc=pc@entry=18446744054916594527, callback=callback@entry=0xfffffffb9fd99cbc <callback>, error_callback=error_callback@entry=0xfffffffb9fd99d34 <error_callback>, data=data@entry=0xc200203098, found=0xc200202f2c) at /vol/gcc/src/hg/trunk/local/libbacktrace/dwarf.c:2650 #4 0xfffffffb9fff9f4c in dwarf_fileline (state=0xffffffff7e400000, pc=18446744054916594527, callback=0xfffffffb9fd99cbc <callback>, error_callback=0xfffffffb9fd99d34 <error_callback>, data=0xc200203098) at /vol/gcc/src/hg/trunk/local/libbacktrace/dwarf.c:2783 #5 0xfffffffb9fffae08 in backtrace_pcinfo (state=0xffffffff7e400000, pc=pc@entry=18446744054916594527, callback=0xfffffffb9fd99cbc <callback>, error_callback=0xfffffffb9fd99d34 <error_callback>, data=data@entry=0xc200203098) at /vol/gcc/src/hg/trunk/local/libbacktrace/fileline.c:190 #6 0xfffffffb9fd99e50 in __go_file_line (pc=18446744054916594527, fn=fn@entry=0xc200203180, file=file@entry=0xc200203190, line=line@entry=0xc200203178) at /vol/gcc/src/hg/trunk/local/libgo/runtime/go-caller.c:118 #7 0xfffffffb9fd9d688 in runtime_printtrace (pcbuf=pcbuf@entry=0xc200203250, c=<optimized out>) at /vol/gcc/src/hg/trunk/local/libgo/runtime/go-traceback.c:34 #8 0xfffffffb9fd9d70c in runtime_traceback () at /vol/gcc/src/hg/trunk/local/libgo/runtime/go-traceback.c:20 #9 0xfffffffb9fda6b60 in runtime_dopanic (unused=unused@entry=0) at /vol/gcc/src/hg/trunk/local/libgo/runtime/panic.c:64 #10 0xfffffffb9fda6bd0 in runtime_throw ( s=0xfffffffba0002ec0 "runtime_lfstackpush: invalid pointer") at /vol/gcc/src/hg/trunk/local/libgo/runtime/panic.c:91 #11 0xfffffffb9fda1a14 in runtime.lfstackpush ( head=0xfffffffba05a7ff8 <work+8>, node=0xffffffff7dd00000) at /vol/gcc/src/hg/trunk/local/libgo/runtime/lfstack.c:26 #12 0xfffffffb9fda3b60 in putempty (b=<optimized out>) at /vol/gcc/src/hg/trunk/local/libgo/runtime/mgc0.c:689 #13 scanblock (wbuf=0xffffffff7dd00000, wp=0xffffffff7dd00018, nobj=0, keepworking=<optimized out>) at /vol/gcc/src/hg/trunk/local/libgo/runtime/mgc0.c:488 #14 0xfffffffb9fda71e4 in runtime.parfordo (desc=0xc20041d000) at /vol/gcc/src/hg/trunk/local/libgo/runtime/parfor.c:108 #15 0xfffffffb9fda42c8 in gc (args=args@entry=0xc200203c1c) at /vol/gcc/src/hg/trunk/local/libgo/runtime/mgc0.c:1382 #16 0xfffffffb9fda4b78 in runtime_gc (force=force@entry=0) at /vol/gcc/src/hg/trunk/local/libgo/runtime/mgc0.c:1321 #17 0xfffffffb9fdaaf34 in runtime_mallocgc (size=<optimized out>, flag=<optimized out>, dogc=1, zeroed=<optimized out>) at /vol/gcc/src/hg/trunk/local/libgo/runtime/malloc.goc:124 #18 0x00000001000014c4 in main.main () at /vol/gcc/src/hg/trunk/local/gcc/testsuite/go.go-torture/execute/array-2.go:12 I suspect this is a strlen(NULL) call. This is a regression from 4.7. Rainer