[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