[clang] 7e8a0e4 - [NFC] [C++20] [Modules] Rename NamedModuleHasInit to NamedModuleHasInit

Chuanqi Xu via cfe-commits cfe-commits at lists.llvm.org
Fri Sep 29 06:52:47 PDT 2023


Author: Chuanqi Xu
Date: 2023-09-29T21:49:10+08:00
New Revision: 7e8a0e4bdc84f975772cd6d38a78c285bdd8b6cf

URL: https://github.com/llvm/llvm-project/commit/7e8a0e4bdc84f975772cd6d38a78c285bdd8b6cf
DIFF: https://github.com/llvm/llvm-project/commit/7e8a0e4bdc84f975772cd6d38a78c285bdd8b6cf.diff

LOG: [NFC] [C++20] [Modules] Rename NamedModuleHasInit to NamedModuleHasInit

Address comments in
https://github.com/llvm/llvm-project/pull/67638/files#r1340342453 to
rename the field variable.

Added: 
    

Modified: 
    clang/include/clang/Basic/Module.h
    clang/lib/Basic/Module.cpp
    clang/lib/CodeGen/CGDeclCXX.cpp
    clang/lib/Sema/Sema.cpp
    clang/lib/Serialization/ASTReader.cpp
    clang/lib/Serialization/ASTWriter.cpp

Removed: 
    


################################################################################
diff  --git a/clang/include/clang/Basic/Module.h b/clang/include/clang/Basic/Module.h
index cd86927d214fc85..676fd372493a3aa 100644
--- a/clang/include/clang/Basic/Module.h
+++ b/clang/include/clang/Basic/Module.h
@@ -360,7 +360,7 @@ class alignas(8) Module {
 
   /// Whether this C++20 named modules doesn't need an initializer.
   /// This is only meaningful for C++20 modules.
-  unsigned NamedModuleHasNoInit : 1;
+  unsigned NamedModuleHasInit : 1;
 
   /// Describes the visibility of the various names within a
   /// particular module.
@@ -600,7 +600,7 @@ class alignas(8) Module {
     return Kind == ModuleInterfaceUnit || Kind == ModulePartitionInterface;
   }
 
-  bool isNamedModuleInterfaceHasNoInit() const { return NamedModuleHasNoInit; }
+  bool isNamedModuleInterfaceHasInit() const { return NamedModuleHasInit; }
 
   /// Get the primary module interface name from a partition.
   StringRef getPrimaryModuleInterfaceName() const {

diff  --git a/clang/lib/Basic/Module.cpp b/clang/lib/Basic/Module.cpp
index 23683eae955bd62..0455304ef7f2b1a 100644
--- a/clang/lib/Basic/Module.cpp
+++ b/clang/lib/Basic/Module.cpp
@@ -44,7 +44,7 @@ Module::Module(StringRef Name, SourceLocation DefinitionLoc, Module *Parent,
       InferSubmodules(false), InferExplicitSubmodules(false),
       InferExportWildcard(false), ConfigMacrosExhaustive(false),
       NoUndeclaredIncludes(false), ModuleMapIsPrivate(false),
-      NamedModuleHasNoInit(false), NameVisibility(Hidden) {
+      NamedModuleHasInit(true), NameVisibility(Hidden) {
   if (Parent) {
     IsAvailable = Parent->isAvailable();
     IsUnimportable = Parent->isUnimportable();

diff  --git a/clang/lib/CodeGen/CGDeclCXX.cpp b/clang/lib/CodeGen/CGDeclCXX.cpp
index 18d4ed4f5290300..c576128e8eb6c62 100644
--- a/clang/lib/CodeGen/CGDeclCXX.cpp
+++ b/clang/lib/CodeGen/CGDeclCXX.cpp
@@ -677,7 +677,7 @@ void CodeGenModule::EmitCXXModuleInitFunc(Module *Primary) {
       continue; // TODO: warn of mixed use of module map modules and C++20?
     // We're allowed to skip the initialization if we are sure it doesn't
     // do any thing.
-    if (M->isNamedModuleInterfaceHasNoInit())
+    if (!M->isNamedModuleInterfaceHasInit())
       continue;
     llvm::FunctionType *FTy = llvm::FunctionType::get(VoidTy, false);
     SmallString<256> FnName;

diff  --git a/clang/lib/Sema/Sema.cpp b/clang/lib/Sema/Sema.cpp
index ad85a9264d57d31..4489cb0deae4c84 100644
--- a/clang/lib/Sema/Sema.cpp
+++ b/clang/lib/Sema/Sema.cpp
@@ -1250,20 +1250,21 @@ void Sema::ActOnEndOfTranslationUnit() {
         CurrentModule && CurrentModule->isInterfaceOrPartition()) {
       auto DoesModNeedInit = [this](Module *M) {
         if (!getASTContext().getModuleInitializers(M).empty())
-          return false;
+          return true;
         for (auto [Exported, _] : M->Exports)
-          if (!Exported->isNamedModuleInterfaceHasNoInit())
-            return false;
+          if (Exported->isNamedModuleInterfaceHasInit())
+            return true;
         for (Module *I : M->Imports)
-          if (!I->isNamedModuleInterfaceHasNoInit())
-            return false;
+          if (I->isNamedModuleInterfaceHasInit())
+            return true;
 
-        return true;
+        return false;
       };
 
-      CurrentModule->NamedModuleHasNoInit = DoesModNeedInit(CurrentModule);
-      for (Module *SubModules : CurrentModule->submodules())
-        CurrentModule->NamedModuleHasNoInit &= DoesModNeedInit(SubModules);
+      CurrentModule->NamedModuleHasInit =
+          DoesModNeedInit(CurrentModule) ||
+          llvm::any_of(CurrentModule->submodules(),
+                       [&](auto *SubM) { return DoesModNeedInit(SubM); });
     }
 
     // Warnings emitted in ActOnEndOfTranslationUnit() should be emitted for

diff  --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp
index 4ff145bb1e252c1..c2937402eac393c 100644
--- a/clang/lib/Serialization/ASTReader.cpp
+++ b/clang/lib/Serialization/ASTReader.cpp
@@ -5685,7 +5685,7 @@ llvm::Error ASTReader::ReadSubmoduleBlock(ModuleFile &F,
       bool InferExportWildcard = Record[Idx++];
       bool ConfigMacrosExhaustive = Record[Idx++];
       bool ModuleMapIsPrivate = Record[Idx++];
-      bool NamedModuleHasNoInit = Record[Idx++];
+      bool NamedModuleHasInit = Record[Idx++];
 
       Module *ParentModule = nullptr;
       if (Parent)
@@ -5736,7 +5736,7 @@ llvm::Error ASTReader::ReadSubmoduleBlock(ModuleFile &F,
       CurrentModule->InferExportWildcard = InferExportWildcard;
       CurrentModule->ConfigMacrosExhaustive = ConfigMacrosExhaustive;
       CurrentModule->ModuleMapIsPrivate = ModuleMapIsPrivate;
-      CurrentModule->NamedModuleHasNoInit = NamedModuleHasNoInit;
+      CurrentModule->NamedModuleHasInit = NamedModuleHasInit;
       if (DeserializationListener)
         DeserializationListener->ModuleRead(GlobalID, CurrentModule);
 

diff  --git a/clang/lib/Serialization/ASTWriter.cpp b/clang/lib/Serialization/ASTWriter.cpp
index e6f6bb921f16a9e..201e2fcaaec91aa 100644
--- a/clang/lib/Serialization/ASTWriter.cpp
+++ b/clang/lib/Serialization/ASTWriter.cpp
@@ -2890,7 +2890,7 @@ void ASTWriter::WriteSubmodules(Module *WritingModule) {
                                          Mod->InferExportWildcard,
                                          Mod->ConfigMacrosExhaustive,
                                          Mod->ModuleMapIsPrivate,
-                                         Mod->NamedModuleHasNoInit};
+                                         Mod->NamedModuleHasInit};
       Stream.EmitRecordWithBlob(DefinitionAbbrev, Record, Mod->Name);
     }
 


        


More information about the cfe-commits mailing list