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.

Reply via email to