On Thu, Aug 08, 2024 at 10:44:31AM +0200, Jakub Jelinek wrote: > I think the patch is at least a step in the direction of the paper's > intent, but perhaps not full. If we need to check for initial : or . > in the expansion of the first identifier after the module name or > module partition, not sure how it would be implemented
Maybe set some new NODE_* flag on the first CPP_NAME token after the module name/partition unexpanded token iff it is some macro (object-like or function-like) and in cpp_get_token_1 error if the first token from such macro is CPP_DOT or CPP_COLON. Ugly, but could work. Or if the wording is changed to require that none of the pp-module-name or pp-module-partition tokens come from macro expansion mark with some flag all tokens from macro expansion. We already have -ftrack-macro-expansion=, but that can be disabled and we'd need to diagnose it even in that case. Jakub