cor3ntin wrote: A function like macro needs parentheses to be substituted. As such, #define foo() module foo; Should be allowed (and foo is not a macro expansion on line 2) module foo(); should be Ill-formed. https://github.com/llvm/llvm-project/pull/90574