https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96496
Marek Polacek <mpolacek at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mpolacek at gcc dot gnu.org --- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> --- As a consequence of the andl $1, %eax we produce 1 for odd numbers only: enum E : bool { One, Two }; int f1 (int x) { return (E) x; } int main () { if (f1 (6) != 1) __builtin_abort (); if (f1 (7) != 1) __builtin_abort (); }