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;
   ~~^~~~

Reply via email to