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);
}