https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114461
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Oh, and #define SEMICOLON ; module SEMICOLON or #define EMTPY module EMPTY ; etc. >From what I understand, ; coming from macro was meant to be certainly ok since wg21.link/p1857r3 and the optional attribute after it supposedly too, including the [[s. But if the module name and partition are supposed to be parseable without preprocessing, the semicolon alone can't come from object-like macro.