https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125655
--- Comment #1 from Drea Pinski <pinskia at gcc dot gnu.org> --- Are you sure this is not valid? 6.10.1/7 has: ``` When in a group that is skipped (6.10.2), the directive syntax is relaxed to allow any sequence of preprocessing tokens to occur between the directive name and the following new-line character. ``` But then 6.10.5/5 has: ``` The identifiers __VA_ARGS__ and __VA_OPT__ shall occur only in the replacement-list of a functionlike macro that uses the ellipsis notation in the parameters ``` I think GCC is correct here because "the directive syntax is relaxed to allow any sequence of preprocessing tokens". Note the use of any. Or there is defect in the standard. Because the way I am reading this is the identifiers should be allowed.
