https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100626
--- Comment #4 from Haoxin Tu <haoxintu at gmail dot com> --- I found that it also crashes (under -O1 and -Os) on today's trunk version of GCC. $cat small.c #include <stdint.h> int a; void b() { int c; uint64_t *d = &c; uint8_t *e; if (a) *d &= *e; if (*d) for (;;) ; } $gcc -w -O1 -m32 small.c (or -Os) during RTL pass: split1 small.c: In function ‘b’: small.c:12:1: internal compiler error: Segmentation fault 12 | } | ^ 0xba0cef crash_signal ../../gcc/toplev.c:327 0xefc40a ix86_fixup_binary_operands(rtx_code, machine_mode, rtx_def**) ../../gcc/config/i386/i386-expand.c:900 0xefc5bb ix86_expand_binary_operator(rtx_code, machine_mode, rtx_def**) ../../gcc/config/i386/i386-expand.c:943 0x1214538 gen_andsi3(rtx_def*, rtx_def*, rtx_def*) ../../gcc/config/i386/i386.md:9091 0x12147b4 gen_split_191(rtx_insn*, rtx_def**) ../../gcc/config/i386/i386.md:9123 0x13f8f22 split_insns(rtx_def*, rtx_insn*) ../../gcc/config/i386/i386.md:14140 0x87e61e try_split(rtx_def*, rtx_insn*, int) ../../gcc/emit-rtl.c:3786 0xb15ad1 split_insn ../../gcc/recog.c:3363 0xb1af47 split_all_insns() ../../gcc/recog.c:3467 0xb1afd8 execute ../../gcc/recog.c:4385 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. $gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/media/haoxin/SeagateData/haoxin-data/dut-research/compilers/gcc/build/bin/../libexec/gcc/x86_64-pc-linux-gnu/12.0.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../configure --prefix=/home/haoxin/haoxin-data/dut-research/compilers/gcc/build/ --enable-bootstrap --enable-checking=release --enable-languages=c,c++ --enable-multilib Thread model: posix Supported LTO compression algorithms: zlib gcc version 12.0.0 20210517 (experimental) (GCC)