[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