[clang] 40c3054 - [NFC] [C++20] [Modules] Refactoring b6c7177145bc to make it not

Chuanqi Xu via cfe-commits cfe-commits at lists.llvm.org
Mon May 15 19:34:21 PDT 2023


Author: Chuanqi Xu
Date: 2023-05-16T10:34:02+08:00
New Revision: 40c30543892aa6441eea075ba69864e79f5de82e

URL: https://github.com/llvm/llvm-project/commit/40c30543892aa6441eea075ba69864e79f5de82e
DIFF: https://github.com/llvm/llvm-project/commit/40c30543892aa6441eea075ba69864e79f5de82e.diff

LOG: [NFC] [C++20] [Modules] Refactoring b6c7177145bc to make it not
dependent on f109b10

Given
https://github.com/llvm/llvm-project/commit/f109b1016801e2b0dbee278f3c517057c0b1d441#commitcomment-113477829,
we need to revert f109b10. So it will be better to make this patch not
dependent on f109b10 as much as possible.

Added: 
    

Modified: 
    clang/lib/AST/ASTContext.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp
index b9919073e8267..e1a230f7588c6 100644
--- a/clang/lib/AST/ASTContext.cpp
+++ b/clang/lib/AST/ASTContext.cpp
@@ -11927,7 +11927,9 @@ bool ASTContext::DeclMustBeEmitted(const Decl *D) {
     return false;
 
   // Variables in other module units shouldn't be forced to be emitted.
-  if (VD->isInAnotherModuleUnit())
+  auto *VM = VD->getOwningModule();
+  if (VM && VM->getTopLevelModule()->isModulePurview() &&
+      VM->getTopLevelModule() != getCurrentNamedModule())
     return false;
 
   // Variables that can be needed in other TUs are required.


        


More information about the cfe-commits mailing list