https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83652
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2018-01-13 CC| |msebor at gcc dot gnu.org Ever confirmed|0 |1 Known to fail| |4.1.0, 4.5.4, 4.8.3, 4.9.3, | |5.3.0, 6.2.0, 7.1.0, 8.0 --- Comment #1 from Martin Sebor <msebor at gcc dot gnu.org> --- Confirmed with the following simplified test case. Just bitwise compound assignment operators seem to be affected. This seems to ring a bell but I can't find a duplicate bug. All releases all the way back to 4.1 have this bug, including trunk (GCC 8.0). $ cat t.C && gcc -S t.C template <typename T> void operator^= (T&, int); enum E { }; void f (E e) { e ^= 2; } t.C: In function ‘void f(E)’: t.C:8:5: error: invalid conversion from ‘int’ to ‘E’ [-fpermissive] e ^= 2; ~~^~~~