https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92377
Bug ID: 92377 Summary: [7/8 Regression] ICE: Segmentation fault Product: gcc Version: 8.3.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: anbu1024.me at gmail dot com Target Milestone: --- $ cat test.c int foo ( void ) ; int __attribute__ ( ( returns_twice ) ) bar ( void ) ; void baz ( ) { int x ; if ( x > 10 ) exit ( 0 ) ; return 0 ; x = foo() + (bar() + 1); } $ gcc-snapshot8 -v Using built-in specs. COLLECT_GCC=/home/tom/Documents/gcc/8-20191101/install/bin/gcc COLLECT_LTO_WRAPPER=/home/tom/Documents/gcc/8-20191101/install/libexec/gcc/x86_64-pc-linux-gnu/8.3.1/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../gcc-8-20191101/configure --prefix=/home/tom/Documents/gcc/8-20191101/install --enable-languages=c,c++ --disable-multilib Thread model: posix gcc version 8.3.1 20191101 (GCC) $ gcc-snapshot8 test.c test.c: In function ‘baz’: test.c:10:9: warning: implicit declaration of function ‘exit’ [-Wimplicit-function-declaration] exit ( 0 ) ; ^~~~ test.c:10:9: warning: incompatible implicit declaration of built-in function ‘exit’ test.c:10:9: note: include ‘<stdlib.h>’ or provide a declaration of ‘exit’ test.c:1:1: +#include <stdlib.h> test.c:10:9: exit ( 0 ) ; ^~~~ test.c:11:12: warning: ‘return’ with a value, in function returning void return 0 ; ^ test.c:6:6: note: declared here void baz ( ) ^~~ during RTL pass: expand test.c:12:7: internal compiler error: Segmentation fault x = foo() + (bar() + 1); ~~^~~~~~~~~~~~~~~~~~~~~ 0xa6512f crash_signal ../../gcc-8-20191101/gcc/toplev.c:325 0x7d6d19 expand_expr_real_2(separate_ops*, rtx_def*, machine_mode, expand_modifier) ../../gcc-8-20191101/gcc/expr.c:8653 0x6d93e2 expand_gimple_stmt_1 ../../gcc-8-20191101/gcc/cfgexpand.c:3743 0x6d93e2 expand_gimple_stmt ../../gcc-8-20191101/gcc/cfgexpand.c:3804 0x6daf1f expand_gimple_basic_block ../../gcc-8-20191101/gcc/cfgexpand.c:5837 0x6e0446 execute ../../gcc-8-20191101/gcc/cfgexpand.c:6443 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-snapshot7 -v Using built-in specs. COLLECT_GCC=/home/tom/Documents/gcc/7-20191031/install/bin/gcc COLLECT_LTO_WRAPPER=/home/tom/Documents/gcc/7-20191031/install/libexec/gcc/x86_64-pc-linux-gnu/7.4.1/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../gcc-7-20191031/configure --prefix=/home/tom/Documents/gcc/7-20191031/install --enable-languages=c,c++ --disable-multilib Thread model: posix gcc version 7.4.1 20191031 (GCC) $ gcc-snapshot7 test.c test.c: In function ‘baz’: test.c:10:9: warning: implicit declaration of function ‘exit’ [-Wimplicit-function-declaration] exit ( 0 ) ; ^~~~ test.c:10:9: warning: incompatible implicit declaration of built-in function ‘exit’ test.c:10:9: note: include ‘<stdlib.h>’ or provide a declaration of ‘exit’ test.c:11:12: warning: ‘return’ with a value, in function returning void return 0 ; ^ test.c:6:6: note: declared here void baz ( ) ^~~ test.c:12:7: internal compiler error: Segmentation fault x = foo() + (bar() + 1); ~~^~~~~~~~~~~~~~~~~~~~~ 0xa13c6f crash_signal ../../gcc-7-20191031/gcc/toplev.c:337 0x79f2e4 expand_expr_real_2(separate_ops*, rtx_def*, machine_mode, expand_modifier) ../../gcc-7-20191031/gcc/expr.c:8526 0x6ae915 expand_gimple_stmt_1 ../../gcc-7-20191031/gcc/cfgexpand.c:3676 0x6ae915 expand_gimple_stmt ../../gcc-7-20191031/gcc/cfgexpand.c:3737 0x6af83f expand_gimple_basic_block ../../gcc-7-20191031/gcc/cfgexpand.c:5744 0x6b4976 execute ../../gcc-7-20191031/gcc/cfgexpand.c:6357 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. But if I use gcc-6.5 or gcc-5.5 to compile it, there is no ICE.