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

Reply via email to