[clang] [C++20][Modules] Implement P1857R3 Modules Dependency Discovery (PR #107168)

via cfe-commits cfe-commits at lists.llvm.org
Sun Oct 19 10:18:21 PDT 2025


================
@@ -986,6 +989,14 @@ def warn_module_conflict : Warning<
   InGroup<ModuleConflict>;
 
 // C++20 modules
+def err_pp_module_name_is_macro : Error<
+  "%select{module|partition}0 name component %1 cannot be a object-like macro">;
+def err_pp_module_expected_ident : Error<
+  "expected %select{identifier after '.' in |}0module name">;
----------------
yronglin wrote:

> is there a way to look ahead to see if the next _preprocessing-token_  (at the start of phase 4) is `(`?

We have a utility function `isNextPPTokenOneOf`, let me try. but it's disabled macro expansion.

> As for diagnosing this in phase 7, how is phase 7 supposed to differentiate between the above and

This because if we handle this case in clang's parser, the macro already expanded, so IIUC, I think it will be easy to handle this cases at there.


https://github.com/llvm/llvm-project/pull/107168


More information about the cfe-commits mailing list