[Bug c++/83652] template substitution fails on operator
msebor at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sat Jan 13 01:46:00 GMT 2018
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;
~~^~~~
More information about the Gcc-bugs
mailing list