https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89287
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2021-08-27
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Confirmed. Looks like C++14 changed it to do a conversion to size_t.
Obvious workaround:
new char[(size_t)S()];
The other thing I noticed is ICC accepts it for C++11 while rejects it for
C++98 which is unlike clang which rejects it for both C++98 and C++11.
There must have been a C++ defect report ...