https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106892
--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
So the inline just has the return undefined in the unreachable path. We can
make the inlined functions static (cleans up post-IPA dumps) and disable IPA
for j:
int a, b, c, d, e;
int f[8];
static int g() {
while (a)
a >>= 4;
return 0;
}
static int h(int i) {
if (i >= '0')
return i - '0';
//__builtin_unreachable ();
}
void __attribute__((noipa)) j(int i) {
for (b = 2; g() <= 7; b++)
if (i) {
for (; e <= 7; e++)
for (c = 1; c <= 7; c++) {
d = h(b + '0');
f[-d + 4] ^= 3;
}
return;
}
}
int main() {
j(1);
if (f[2] != 0)
__builtin_abort ();
}