http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57923
Bug ID: 57923 Summary: ICE in handle_braces (gcc.c) at -O3 (both 32-bit and 64-bit modes) Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: su at cs dot ucdavis.edu The following code causes an ICE when compiled with the current gcc trunk at -O3 on x86_64-linux (both 32-bit and 64-bit modes). This is a regression from 4.8.x. $ gcc-trunk -v gcc version 4.9.0 20130718 (experimental) [trunk revision 201019] (GCC) $ gcc-trunk -O2 -c small.c $ gcc-4.8 -O3 -c small.c $ gcc-trunk -O3 small.c gcc-trunk: internal compiler error: Segmentation fault (program cc1) 0x40c95d execute ../../gcc-trunk/gcc/gcc.c:2824 0x40ccb4 do_spec_1 ../../gcc-trunk/gcc/gcc.c:4616 0x40f841 process_brace_body ../../gcc-trunk/gcc/gcc.c:5873 0x40f841 handle_braces ../../gcc-trunk/gcc/gcc.c:5787 0x40d3ea do_spec_1 ../../gcc-trunk/gcc/gcc.c:5270 0x40f841 process_brace_body ../../gcc-trunk/gcc/gcc.c:5873 0x40f841 handle_braces ../../gcc-trunk/gcc/gcc.c:5787 0x40d3ea do_spec_1 ../../gcc-trunk/gcc/gcc.c:5270 0x40cf3b do_spec_1 ../../gcc-trunk/gcc/gcc.c:5375 0x40f841 process_brace_body ../../gcc-trunk/gcc/gcc.c:5873 0x40f841 handle_braces ../../gcc-trunk/gcc/gcc.c:5787 0x40d3ea do_spec_1 ../../gcc-trunk/gcc/gcc.c:5270 0x40f841 process_brace_body ../../gcc-trunk/gcc/gcc.c:5873 0x40f841 handle_braces ../../gcc-trunk/gcc/gcc.c:5787 0x40d3ea do_spec_1 ../../gcc-trunk/gcc/gcc.c:5270 0x40f841 process_brace_body ../../gcc-trunk/gcc/gcc.c:5873 0x40f841 handle_braces ../../gcc-trunk/gcc/gcc.c:5787 0x40d3ea do_spec_1 ../../gcc-trunk/gcc/gcc.c:5270 0x40f841 process_brace_body ../../gcc-trunk/gcc/gcc.c:5873 0x40f841 handle_braces ../../gcc-trunk/gcc/gcc.c:5787 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. $ ------------------------------------------------- char a; foo (int **p) { int b; for (;;) { int c[1] = {}; unsigned *d = &c[0]; for (b=7; b; b--) **p &= --*d >= a; } } $