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

--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Reduded testcase that fails at -O1 (but passes at -O2):
```

[[gnu::noipa]]
static void g(char pad1) {
    if (pad1 != '0' && pad1 != '+' && pad1 != '_')
      __builtin_unreachable();
    if (pad1 == '0' || pad1 == '+')
        __builtin_trap();
}
char buf[4000];
int main(void) { g('_'); }

```

But it definitely comes down to reassociation incorrectly thinking that (here)
that pad1 could only be 43 or 48. While it could be also 93 ('_').

Reply via email to