https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125655
--- Comment #2 from Halalaluyafail3 <luigighiron at gmail dot com> --- (In reply to Drea Pinski from comment #1) > 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. But it is not skipped. For example, the following is rejected: #if 0 #elif 0/0 #endif
