https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71104
Bug ID: 71104 Summary: [7 Regression] ICE: verify_ssa failed (with vfork / error: definition in block 3 does not dominate use in block 7 ) Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: nsz at gcc dot gnu.org Target Milestone: --- found this while cross compiling busybox to aarch64, i think it depends on vfork being special. gcc version 7.0.0 20160512 (trunk r236177) $ cat a.c struct globals { int helper_pid; }; extern struct globals *const ptr; void foo(int); int vfork(void); void bar(void) { foo(0); (*ptr).helper_pid = ({ int pid = vfork(); if (pid < 0) foo(0); pid; }); } $ aarch64-none-linux-gnu-gcc -c a.c a.c: In function 'bar': a.c:12:1: error: definition in block 3 does not dominate use in block 7 } ^ for SSA_NAME: ptr.0_1 in statement: # .MEM_12 = VDEF <.MEM_4> ptr.0_1->helper_pid = _11; a.c:12:1: internal compiler error: verify_ssa failed 0xd25da2 verify_ssa(bool, bool) /w/src/gcc/gcc/tree-ssa.c:1039 0xa5be0d execute_function_todo /w/src/gcc/gcc/passes.c:1971 0xa5c77b execute_todo /w/src/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.