[clang] ccf02cd - [clang][NFC] Remove unreachable code
Nathan Sidwell via cfe-commits
cfe-commits at lists.llvm.org
Wed Feb 2 05:14:42 PST 2022
Author: Nathan Sidwell
Date: 2022-02-02T05:14:26-08:00
New Revision: ccf02cdf17d68a7dd4411daa74b81fa5b48d0a0c
URL: https://github.com/llvm/llvm-project/commit/ccf02cdf17d68a7dd4411daa74b81fa5b48d0a0c
DIFF: https://github.com/llvm/llvm-project/commit/ccf02cdf17d68a7dd4411daa74b81fa5b48d0a0c.diff
LOG: [clang][NFC] Remove unreachable code
NamespaceDecls are NamedDecls, so NSD can never be non-null in the
else branch. Add a comment about this whole ModuleInternal linkage
concept going away when p1815 is implemented.
Reviewed By: bruno
Differential Revision: https://reviews.llvm.org/D118704
Added:
Modified:
clang/lib/AST/Decl.cpp
Removed:
################################################################################
diff --git a/clang/lib/AST/Decl.cpp b/clang/lib/AST/Decl.cpp
index b2ee34f20cf73..060a6d1ad5ed5 100644
--- a/clang/lib/AST/Decl.cpp
+++ b/clang/lib/AST/Decl.cpp
@@ -1557,16 +1557,16 @@ Module *Decl::getOwningModuleForLinkage(bool IgnoreLinkage) const {
// for linkage purposes. But internal linkage declarations in the global
// module fragment of a particular module are owned by that module for
// linkage purposes.
+ // FIXME: p1815 removes the need for this distinction -- there are no
+ // internal linkage declarations that need to be referred to from outside
+ // this TU.
if (IgnoreLinkage)
return nullptr;
bool InternalLinkage;
if (auto *ND = dyn_cast<NamedDecl>(this))
InternalLinkage = !ND->hasExternalFormalLinkage();
- else {
- auto *NSD = dyn_cast<NamespaceDecl>(this);
- InternalLinkage = (NSD && NSD->isAnonymousNamespace()) ||
- isInAnonymousNamespace();
- }
+ else
+ InternalLinkage = isInAnonymousNamespace();
return InternalLinkage ? M->Parent : nullptr;
}
More information about the cfe-commits
mailing list