https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81192
Bug ID: 81192 Summary: gcc ICE at -Os on x86_64-linux-gnu: Segmentation fault Product: gcc Version: 8.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 code causes an ICE when compiled with the current gcc trunk at -Os on x86_64-linux-gnu in both 32- and 64-bit modes. $ gcc-trunk --version gcc-trunk (GCC) 8.0.0 20170623 (experimental) [trunk revision 249588] $ gcc-trunk -Os abc.c during GIMPLE pass: pre abc.c: In function ‘fn2’: abc.c:4:6: internal compiler error: Segmentation fault void fn2() { ^~~ 0xc8a4cf crash_signal ../../gcc/gcc/toplev.c:338 0xe56285 same_succ_flush_bb ../../gcc/gcc/tree-ssa-tail-merge.c:813 0xe580cb same_succ_flush_bbs ../../gcc/gcc/tree-ssa-tail-merge.c:828 0xe580cb update_worklist ../../gcc/gcc/tree-ssa-tail-merge.c:875 0xe580cb tail_merge_optimize(unsigned int) ../../gcc/gcc/tree-ssa-tail-merge.c:1792 0xe06bf0 execute ../../gcc/gcc/tree-ssa-pre.c:5162 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. $ cat abc.c unsigned a; int b, c; int(fn1)(int p1, int p2) { return p1 > 2147483647 - p2 ? p1 : p1 + p2; } void fn2() { int j; a = 30; for (; a;) for (; c; b = fn1(j, 1)) ; }