https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94717
Bug ID: 94717 Summary: [10 Regression] ICE: SIGSEGV in output_merged_store (gimple-ssa-store-merging.c:4307) with -O2 -fnon-call-exceptions -ftracer Product: gcc Version: 10.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: zsojka at seznam dot cz Target Milestone: --- Host: x86_64-pc-linux-gnu Created attachment 48355 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48355&action=edit reduced testcase Compiler output: $ x86_64-pc-linux-gnu-g++ -O2 -fnon-call-exceptions -ftracer testcase.C -wrapper valgrind,-q ==19787== Invalid read of size 4 ==19787== at 0x1C19FA2: (anonymous namespace)::imm_store_chain_info::output_merged_store((anonymous namespace)::merged_store_group*) (gimple-ssa-store-merging.c:4307) ==19787== by 0x1C1C81A: output_merged_stores (gimple-ssa-store-merging.c:4363) ==19787== by 0x1C1C81A: terminate_and_process_chain (gimple-ssa-store-merging.c:4407) ==19787== by 0x1C1C81A: (anonymous namespace)::pass_store_merging::terminate_and_process_chain((anonymous namespace)::imm_store_chain_info*) (gimple-ssa-store-merging.c:2207) ==19787== by 0x1C1DDEF: terminate_and_process_all_chains (gimple-ssa-store-merging.c:2142) ==19787== by 0x1C1DDEF: (anonymous namespace)::pass_store_merging::execute(function*) (gimple-ssa-store-merging.c:4953) ==19787== by 0x1150047: execute_one_pass(opt_pass*) (passes.c:2502) ==19787== by 0x11509BF: execute_pass_list_1(opt_pass*) (passes.c:2590) ==19787== by 0x11509D1: execute_pass_list_1(opt_pass*) (passes.c:2591) ==19787== by 0x11509F8: execute_pass_list(function*, opt_pass*) (passes.c:2601) ==19787== by 0xDB2AAB: cgraph_node::expand() (cgraphunit.c:2300) ==19787== by 0xDB3CBF: expand_all_functions (cgraphunit.c:2471) ==19787== by 0xDB3CBF: symbol_table::compile() [clone .part.0] (cgraphunit.c:2822) ==19787== by 0xDB602C: compile (cgraphunit.c:2735) ==19787== by 0xDB602C: symbol_table::finalize_compilation_unit() (cgraphunit.c:3002) ==19787== by 0x123C10E: compile_file() (toplev.c:483) ==19787== by 0xA81BF7: do_compile (toplev.c:2273) ==19787== by 0xA81BF7: toplev::main(int, char**) (toplev.c:2412) ==19787== Address 0x24 is not stack'd, malloc'd or (recently) free'd ==19787== during GIMPLE pass: store-merging testcase.C: In function 'void foo(S*)': testcase.C:18:1: internal compiler error: Segmentation fault 18 | foo (S *x) | ^~~ Please submit a full bug report, with preprocessed source if appropriate. See <https://gcc.gnu.org/bugs/> for instructions. $ x86_64-pc-linux-gnu-g++ -v Using built-in specs. COLLECT_GCC=/repo/gcc-trunk/binary-latest/bin/x86_64-pc-linux-gnu-g++ COLLECT_LTO_WRAPPER=/repo/gcc-trunk/binary-trunk-r10-7870-20200422110559-g413232a55b9-checking-yes-rtl-df-extra-amd64/bin/../libexec/gcc/x86_64-pc-linux-gnu/10.0.1/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: /repo/gcc-trunk//configure --enable-languages=c,c++ --enable-valgrind-annotations --disable-nls --enable-checking=yes,rtl,df,extra --with-cloog --with-ppl --with-isl --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --target=x86_64-pc-linux-gnu --with-ld=/usr/bin/x86_64-pc-linux-gnu-ld --with-as=/usr/bin/x86_64-pc-linux-gnu-as --disable-libstdcxx-pch --prefix=/repo/gcc-trunk//binary-trunk-r10-7870-20200422110559-g413232a55b9-checking-yes-rtl-df-extra-amd64 Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 10.0.1 20200422 (experimental) (GCC)