https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115905
--- Comment #11 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot
Uni-Bielefeld.DE> ---
> --- Comment #10 from Iain Sandoe <iains at gcc dot gnu.org> ---
> unfortunately, (or ...) I Have not succeeded in reproducing this - so will
> need
> some help to identify what's being done differently from you.
>
> I built: r15-3667-gf5448384a213 (also on my Darwin17+ set, which includes a
> 32b host - which also seems fine).
>
> On cfarm216 :
> ../src/configure --prefix=/home/iains/gcc-master/gcc-15-0-0
> --with-as=/usr/ccs/bin/as --without-gnu-as --enable-languages=c,c++
> --build=sparc-sun-solaris2.11 CC='gcc -m32' CXX='g++ -m32'
> Thread model: posix
> Supported LTO compression algorithms: zlib zstd
> gcc version 15.0.0 20240916 (experimental) [master f5448384a21] (GCC)
[...]
> Your report seems to be a compile-time SIGBUS, which is somewhat surprising
> for
> the changes to address this bug - but always one can be surprised, of course.
Turns out I'm an idiot ;-) The failure happens with -m64, not -m32.
With the preprocessed input:
cc1plus -fpreprocessed ./pr115905.ii -mptr64 -mstack-bias -mno-v8plus -quiet
-m64 -mcpu=v9 -O1 -std=c++20 -fcoroutines
Thread 2 received signal SIGBUS, Bus error.
[Switching to Thread 1 (LWP 1)]
0x00eff5a0 in store_field (target=0xfaf72c10, bitsize=..., bitpos=...,
bitregion_start=..., bitregion_end=..., mode=E_DImode,
exp=<ssa_name 0xfaf581e0 7>, alias_set=0, nontemporal=false, reverse=false)
at /vol/gcc/src/hg/master/local/gcc/expr.cc:8127
8127 && ((((MEM_ALIGN (target) < GET_MODE_ALIGNMENT (mode))
(gdb) bt
#0 0x00eff5a0 in store_field (target=0xfaf72c10, bitsize=..., bitpos=...,
bitregion_start=..., bitregion_end=..., mode=E_DImode,
exp=<ssa_name 0xfaf581e0 7>, alias_set=0, nontemporal=false, reverse=false)
at /vol/gcc/src/hg/master/local/gcc/expr.cc:8127
#1 0x00ef92a0 in expand_assignment (to=<mem_ref 0xfaf42900>,
from=<ssa_name 0xfaf581e0 7>, nontemporal=false)
at /vol/gcc/src/hg/master/local/gcc/expr.cc:6338
#2 expand_assignment (to=<mem_ref 0xfaf42900>, from=<ssa_name 0xfaf581e0 7>,
nontemporal=<optimized out>)
at /vol/gcc/src/hg/master/local/gcc/expr.cc:5975
#3 0x00d703fc in expand_gimple_stmt_1 (stmt=<gimple_assign 0xfaf4d4d0>)
at /vol/gcc/src/hg/master/local/gcc/cfgexpand.cc:4028
#4 expand_gimple_stmt (stmt=<gimple_assign 0xfaf4d4d0>)
at /vol/gcc/src/hg/master/local/gcc/cfgexpand.cc:4104
#5 0x00d71700 in expand_gimple_basic_block (bb=<optimized out>,
disable_tail_calls=<optimized out>)
at /vol/gcc/src/hg/master/local/gcc/cfgexpand.cc:6160
#6 0x00d73d2c in (anonymous namespace)::pass_expand::execute (
this=<optimized out>, fun=0xfaf02e88)
at /vol/gcc/src/hg/master/local/gcc/cfgexpand.cc:6899
#7 0x01299948 in execute_one_pass (pass=<opt_pass* 0x2937028 "expand"(276)>)
at /vol/gcc/src/hg/master/local/gcc/passes.cc:2659
#8 0x0129a3b8 in execute_pass_list_1 (
pass=<opt_pass* 0x2937028 "expand"(276)>)
at /vol/gcc/src/hg/master/local/gcc/passes.cc:2768
#9 0x0129a430 in execute_pass_list (fn=0xfaf02e88,
pass=<opt_pass* 0x2933fd8 "fixup_cfg"(106)>)
at /vol/gcc/src/hg/master/local/gcc/passes.cc:2779
#10 0x00dc905c in cgraph_node::expand (
this=<cgraph_node * const 0xfaf166e0 "Coro"/147>)
at /vol/gcc/src/hg/master/local/gcc/context.h:48
#11 cgraph_node::expand (this=<cgraph_node * const 0xfaf166e0 "Coro"/147>)
at /vol/gcc/src/hg/master/local/gcc/cgraphunit.cc:1798
#12 0x00dcb83c in expand_all_functions ()
at /vol/gcc/src/hg/master/local/gcc/cgraphunit.cc:2028
#13 symbol_table::compile (this=0xfac12000)
at /vol/gcc/src/hg/master/local/gcc/cgraphunit.cc:2404
#14 0x00dcee24 in symbol_table::compile (this=0xfac12000)
at /vol/gcc/src/hg/master/local/gcc/cgraphunit.cc:2315
#15 symbol_table::finalize_compilation_unit (this=0xfac12000)
at /vol/gcc/src/hg/master/local/gcc/cgraphunit.cc:2589
#16 0x0140136c in compile_file ()
at /vol/gcc/src/hg/master/local/gcc/toplev.cc:478
#17 0x01404ee8 in do_compile ()
at /vol/gcc/src/hg/master/local/gcc/toplev.cc:2209
#18 toplev::main (this=<optimized out>, argc=<optimized out>,
argv=<optimized out>) at /vol/gcc/src/hg/master/local/gcc/toplev.cc:2369
#19 0x02338ab4 in main (argc=12, argv=0xffbfec84)
at /vol/gcc/src/hg/master/local/gcc/main.cc:39
and
=> 0xeff5a0 <store_field(rtx, poly_int64, poly_int64, poly_uint64, poly_uint64,
machine_mode, tree, alias_set_type, bool, bool)+1520>: ld [ %g1 + 0x1c ], %i1
(gdb) p/x $g1
$2 = 0xafafafaf
Incurred fault #5, FLTACCESS %pc = 0x00EFF5A0
siginfo: SIGBUS BUS_ADRALN addr=0xAFAFAFCB
Received signal #10, SIGBUS [caught]
siginfo: SIGBUS BUS_ADRALN addr=0xAFAFAFCB
i.e. an unaligned access just as I thought.