https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86598
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Here is a full testcase that still fails: template<class T> struct Units{int operator+(int);}; class Amp{}; Units<Amp> operator"" _amp(unsigned long long d); int k = 4_amp+1; // incorrect error: no literal operator "" _amp+1 Note ICC rejects it with: <source>(7): error: non-identifier character in user-defined literal suffix int k = 4_amp+1; // incorrect error: no literal operator "" _amp+1 ^