https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86194
Bug ID: 86194 Summary: [8/9 Regression] ICE: SIGSEGV in avoid_constant_pool_reference (simplify-rtx.c:215) with -O -g -mavx512bw Product: gcc Version: 9.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: zsojka at seznam dot cz Target Milestone: --- Host: x86_64-pc-linux-gnu Target: x86_64-pc-linux-gnu Created attachment 44290 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44290&action=edit reduced testcase Compiler output: $ x86_64-pc-linux-gnu-gcc -O -g -mavx512bw testcase.c -wrapper valgrind,-q,--num-callers=50 ==30755== Invalid read of size 2 ==30755== at 0xCE11AB: avoid_constant_pool_reference(rtx_def*) (simplify-rtx.c:215) ==30755== by 0xCD20BC: simplify_binary_operation(rtx_code, machine_mode, rtx_def*, rtx_def*) (simplify-rtx.c:2162) ==30755== by 0xCD5559: simplify_gen_binary(rtx_code, machine_mode, rtx_def*, rtx_def*) (simplify-rtx.c:194) ==30755== by 0x1004FAB: adjust_mems(rtx_def*, rtx_def const*, void*) (var-tracking.c:1137) ==30755== by 0xCE3C17: simplify_replace_fn_rtx(rtx_def*, rtx_def const*, rtx_def* (*)(rtx_def*, rtx_def const*, void*), void*) (simplify-rtx.c:429) ==30755== by 0xCE3413: simplify_replace_fn_rtx(rtx_def*, rtx_def const*, rtx_def* (*)(rtx_def*, rtx_def const*, void*), void*) (simplify-rtx.c:553) ==30755== by 0xFFF255: adjust_mem_uses(rtx_def**, void*) (var-tracking.c:1160) ==30755== by 0x1001EC8: adjust_insn(basic_block_def*, rtx_insn*) [clone .isra.88] (var-tracking.c:1272) ==30755== by 0x101404A: vt_initialize() (var-tracking.c:10198) ==30755== by 0x101B1B7: variable_tracking_main_1 (var-tracking.c:10435) ==30755== by 0x101B1B7: variable_tracking_main (var-tracking.c:10488) ==30755== by 0x101B1B7: (anonymous namespace)::pass_variable_tracking::execute(function*) (var-tracking.c:10525) ==30755== by 0xBDA4A3: execute_one_pass(opt_pass*) (passes.c:2446) ==30755== by 0xBDADD7: execute_pass_list_1(opt_pass*) (passes.c:2535) ==30755== by 0xBDADE9: execute_pass_list_1(opt_pass*) (passes.c:2536) ==30755== by 0xBDADE9: execute_pass_list_1(opt_pass*) (passes.c:2536) ==30755== by 0xBDAE34: execute_pass_list(function*, opt_pass*) (passes.c:2546) ==30755== by 0x8416ED: cgraph_node::expand() (cgraphunit.c:2119) ==30755== by 0x842C3A: expand_all_functions (cgraphunit.c:2255) ==30755== by 0x842C3A: symbol_table::compile() [clone .part.55] (cgraphunit.c:2606) ==30755== by 0x845597: compile (cgraphunit.c:2665) ==30755== by 0x845597: symbol_table::finalize_compilation_unit() (cgraphunit.c:2699) ==30755== by 0xD06E6D: compile_file() (toplev.c:479) ==30755== by 0x688539: do_compile (toplev.c:2086) ==30755== by 0x688539: toplev::main(int, char**) (toplev.c:2221) ==30755== by 0x68AADA: main (main.c:39) ==30755== Address 0x0 is not stack'd, malloc'd or (recently) free'd ==30755== during RTL pass: vartrack testcase.c: In function 'foo': testcase.c:20:1: internal compiler error: Segmentation fault } ^ Please submit a full bug report, with preprocessed source if appropriate. See <https://gcc.gnu.org/bugs/> for instructions. $ x86_64-pc-linux-gnu-gcc -v Using built-in specs. COLLECT_GCC=/repo/gcc-trunk/binary-latest-amd64/bin/x86_64-pc-linux-gnu-gcc COLLECT_LTO_WRAPPER=/repo/gcc-trunk/binary-trunk-261695-checking-yes-rtl-df-extra-nobootstrap-amd64/bin/../libexec/gcc/x86_64-pc-linux-gnu/9.0.0/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 --disable-bootstrap --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-261695-checking-yes-rtl-df-extra-nobootstrap-amd64 Thread model: posix gcc version 9.0.0 20180618 (experimental) (GCC)