https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71830
Bug ID: 71830 Summary: gcc ICE at -O3 on valid code on x86_64-linux-gnu: verify_gimple failed Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: helloqirun at gmail dot com Target Milestone: --- The following valid code causes an ICE when compiled with the current gcc trunk at only -O3 on x86_64-linux-gnu in only 32-bit mode. It appears to be a 7 regression. $ gcc-trunk -v Using built-in specs. COLLECT_GCC=gcc-trunk COLLECT_LTO_WRAPPER=/home/absozero/trunk/root-gcc/libexec/gcc/x86_64-pc-linux-gnu/7.0.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../gcc/configure --prefix=/home/absozero/trunk/root-gcc --enable-languages=c,c++ --disable-werror --enable-multilib Thread model: posix gcc version 7.0.0 20160710 (experimental) [trunk revision 238196] (GCC) $ gcc-trunk -O3 -c abc.c $ gcc-trunk -O3 -m32 abc.c abc.c: In function ‘fn1’: abc.c:7:6: error: non-trivial conversion at assignment void fn1() { ^~~ int struct S0 # VUSE <.MEM_5(D)> pretmp_4 = b; abc.c:7:6: internal compiler error: verify_gimple failed 0xbb5e35 verify_gimple_in_cfg(function*, bool) ../../gcc/gcc/tree-cfg.c:5212 0xaa1cc3 execute_function_todo ../../gcc/gcc/passes.c:1964 0xaa2d0b execute_todo ../../gcc/gcc/passes.c:2016 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions. $ cat abc.c #pragma pack(1) struct S0 { int f0; }; char a, d; static struct S0 b, c; void fn1() { for (;;) { struct S0 e = b; c = b; d = e.f0; for (; a;) b = c; } }