https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114007

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |jakub at gcc dot gnu.org
             Status|NEW                         |ASSIGNED

--- Comment #17 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 57483
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=57483&action=edit
gcc14-pr114007.patch

So far very lightly tested fix.
The FEs only use 8-bit flags on tokens unlike libcpp, so we are fairly tight on
the bits there, fortunately PURE_ZERO is only used by C++ FE (though, set for
both C/C++) and additionally only on CPP_NUMBERs, so reusing the same bit on
CPP_COLON tokens in C FE + libcpp only (and only before C23 in strict modes) is
I think fine.
Still, the JOIN2(:,:) case works in C23 or GNU modes but not in the old modes,
but that is because it is a preprocessor error, trying to paste tokens into
something which is not a valid preprocessing token.  I'm not afraid people
would try to use that widely if they want < C23 compatibility of attributes.

Reply via email to