You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// should expand in '. name ;'
M(, name)
2:#define M(a, b) . a ## b ;
^ Invalidly glued ".name"
// should expand in '. name ;'
M(name,)
6:// should expand as '. name ;'
^ Invalidly glued "name;"
In both cases, the preprocessor does not mark that there is an empty token in the token sequence.
When processing ##, it wrongly takes the nearest token (on the left in the 1st case, on the right in the 2nd case) and this raises an error because the token concatenation produces an invalid new token.
(this makes fail test 00202 of the C test suite)
The text was updated successfully, but these errors were encountered:
I suspect this one is derived from closed #52
In both cases, the preprocessor does not mark that there is an empty token in the token sequence.
When processing ##, it wrongly takes the nearest token (on the left in the 1st case, on the right in the 2nd case) and this raises an error because the token concatenation produces an invalid new token.
(this makes fail test 00202 of the C test suite)
The text was updated successfully, but these errors were encountered: