https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91351
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |wrong-code Status|UNCONFIRMED |NEW Last reconfirmed| |2019-08-05 CC| |glisse at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- AKA r264790 -O2 or -O3 is required to demonstrate the bug. Further reduced: extern "C" int puts(const char*); enum E { e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25 }; void g() { puts("e11 || e12 || e13"); } void j() { puts("default"); } void f(E e) { switch (e) { case e11: case e12: case e13: g(); break; case e24: break; case e14: case e15: break; default: j(); break; } } int main() { volatile const E e{e3}; f(e); }