https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61535
Bug ID: 61535 Summary: SIGBUS in gen_group_rtx compiling 64-bit gcc.dg/vect/vect-singleton_1.c Product: gcc Version: 4.10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: ro at gcc dot gnu.org CC: alalaw01 at gcc dot gnu.org, ebotcazou at gcc dot gnu.org Host: sparc-sun-solaris2.1[01] Target: sparc-sun-solaris2.1[01] Build: sparc-sun-solaris2.1[01] The new gcc.dg/vect/vect-singleton_1.c test FAILs on 64-bit Solaris 10 and 11/SPARC: FAIL: gcc.dg/vect/vect-singleton_1.c (internal compiler error) FAIL: gcc.dg/vect/vect-singleton_1.c (test for excess errors) FAIL: gcc.dg/vect/vect-singleton_1.c -flto -ffat-lto-objects (internal compiler error) FAIL: gcc.dg/vect/vect-singleton_1.c -flto -ffat-lto-objects (test for excess errors) E.g. $ ./cc1 -fpreprocessed vect-singleton_1.i -quiet -m64 -o vect-singleton_1.s /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.dg/vect/vect-singleton_1.c: In function 'test_vadd_f32': /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.dg/vect/vect-singleton_1.c:30:91: internal compiler error: Bus Error TEST (float, float32x1_t, f32) ^ 0x7046bb crash_signal /vol/gcc/src/hg/trunk/local/gcc/toplev.c:337 0x41dca0 gen_group_rtx(rtx_def*) /vol/gcc/src/hg/trunk/local/gcc/expr.c:1598 0x4c87eb expand_function_start(tree_node*) /vol/gcc/src/hg/trunk/local/gcc/function.c:4787 0x338e13 execute /vol/gcc/src/hg/trunk/local/gcc/cfgexpand.c:5692 Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 1 (LWP 1)] gen_group_rtx (orig=0xfb4c0d90) at /vol/gcc/src/hg/trunk/local/gcc/expr.c:1598 1598 if (i) (gdb) where #0 gen_group_rtx (orig=0xfb4c0d90) at /vol/gcc/src/hg/trunk/local/gcc/expr.c:1598 #1 0x004c87ec in expand_function_start (subr=0xfb49c380) at /vol/gcc/src/hg/trunk/local/gcc/function.c:4787 #2 0x00338e14 in (anonymous namespace)::pass_expand::execute ( this=<optimized out>, fun=0xfb423248) at /vol/gcc/src/hg/trunk/local/gcc/cfgexpand.c:5692 #3 0x00633c3c in execute_one_pass (pass=pass@entry=0x1014b40) at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2180 #4 0x00634120 in execute_pass_list_1 (pass=0x1014b40, pass@entry=0x1012768) at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2233 #5 0x00634188 in execute_pass_list (fn=0xfb423248, pass=0x1012768) at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2244 #6 0x00362788 in expand_function (node=0xfb4a8380) at /vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:1787 #7 0x003657d4 in output_in_order () at /vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:2019 #8 compile () at /vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:2260 #9 0x00365b04 in finalize_compilation_unit () at /vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:2342 #10 0x001fb80c in c_write_global_declarations () at /vol/gcc/src/hg/trunk/local/gcc/c/c-decl.c:10452 #11 0x0070477c in compile_file () at /vol/gcc/src/hg/trunk/local/gcc/toplev.c:562 #12 0x00706cd0 in do_compile () at /vol/gcc/src/hg/trunk/local/gcc/toplev.c:1918 #13 toplev_main (argc=7, argv=0xffbff484) at /vol/gcc/src/hg/trunk/local/gcc/toplev.c:1994 #14 0x001dbd04 in _start () Running again with display/i $pc, one sees there's an unaligned access: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 1 (LWP 1)] gen_group_rtx (orig=0xfb4c0d90) at /vol/gcc/src/hg/trunk/local/gcc/expr.c:1598 1598 if (i) 1: x/i $pc => 0x41dca0 <gen_group_rtx(rtx_def*)+36>: ld [ %g3 + 8 ], %g3 (gdb) p/x $g3 $2 = 0xafafafaf truss shows Incurred fault #5, FLTACCESS %pc = 0x0041DCA0 siginfo: SIGBUS BUS_ADRALN addr=0xAFAFAFB7 Received signal #10, SIGBUS [caught] siginfo: SIGBUS BUS_ADRALN addr=0xAFAFAFB7 Rainer