This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug go/72814] New: reflect FAILs on 32-bit Solaris/SPARC: SIGILL
- From: "ro at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 05 Aug 2016 12:14:15 +0000
- Subject: [Bug go/72814] New: reflect FAILs on 32-bit Solaris/SPARC: SIGILL
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72814
Bug ID: 72814
Summary: reflect FAILs on 32-bit Solaris/SPARC: SIGILL
Product: gcc
Version: 7.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
Target Milestone: ---
Host: sparc*-sun-solaris2.*
Target: sparc*-sun-solaris2.*
Build: sparc*-sun-solaris2.*
When building to avoid PR go/72812, the 32-bit reflect test FAILs on
Solaris/SPARC:
Illegal Instruction
runtime_sighandler
/vol/gcc/src/hg/trunk/local/libgo/runtime/go-signal.c:223
:0
[...]
Thread 6 received signal SIGILL, Illegal instruction.
[Switching to Thread 4 (LWP 4)]
0xff0d2ea8 in ffi_call_v8 ()
at /vol/gcc/src/hg/trunk/local/libffi/src/sparc/v8.S:225
225 rept256; rept256; rept256; rept256
1: x/i $pc
=> 0xff0d2ea8 <ffi_call_v8+440>: illtrap 0x1
(gdb) where
#0 0xff0d2ea8 in ffi_call_v8 ()
at /vol/gcc/src/hg/trunk/local/libffi/src/sparc/v8.S:225
#1 0xfeca7da4 in reflect.call (
func_type=0x981b4 <__go_td_FrN24_reflect_test.emptyStructee>,
func_val=0x98188 <reflect_test.returnEmpty$descriptor>,
is_interface=<optimized out>, is_method=<optimized out>, params=0x0,
results=0x1030cbc8)
at /vol/gcc/src/hg/trunk/local/libgo/runtime/go-reflect-call.c:225
#2 0x000b23d0 in reflect.call.N13_reflect.Value (
pointer=pointer@entry=0x111aa590,
op=<error reading variable: Cannot access memory at address 0x99>,
param=...) at value.go:451
#3 0x000b18cc in reflect.Call.N13_reflect.Value (
pointer=pointer@entry=0x10d71d3c, in=...) at value.go:299
#4 0x000ce690 in reflect_test.TestCallWithStruct (t=0x1074e680)
at all_test.go:1509
#5 0xfeda315c in testing.tRunner (param=0x1074e680,
fn=0x98310 <reflect_test.TestCallWithStruct$descriptor>)
at /vol/gcc/src/hg/trunk/local/libgo/go/testing/testing.go:609
#6 0xfeda31cc in testing.$thunk22 (__go_thunk_parameter=0x1030cb98)
at /vol/gcc/src/hg/trunk/local/libgo/go/testing/testing.go:645
#7 0xfecb75bc in kickoff ()
at /vol/gcc/src/hg/trunk/local/libgo/runtime/proc.c:235
#8 0xfe14a46c in __makecontext_v2 () from /lib/libc.so.1
It seems that the SIGILL is expected here and libgo catching it interferes
with libffi.
Rainer