https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108868

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Here is a testcase which shows the removal of ABNORMAL_DISPATCHER though I am
not sure what is the best way to test if the removal makes a difference.

```
extern int vfork (void) __attribute__ ((__nothrow__ , __leaf__,
__returns_twice__));
extern int fork (void) __attribute__ ((__nothrow__ , __leaf__,
__returns_twice__));

void sink(int*) __attribute__((noipa));
void sink(int*) {}
int f(int a, int b) __attribute__((noipa));
int f(int a, int b)
{
        sink(&b);
        int ret = a ? vfork() : fork();
        if (ret == 0) {
                sink(&b);
                b++;
                sink(&b);
                return 0;
        }
        if(b) __builtin_abort();
        __builtin_exit(0);
}
```

Reply via email to