[PATCH] D117799: [clang][NFC] Small mangler cleanups
Nathan Sidwell via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Jan 20 11:20:30 PST 2022
This revision was automatically updated to reflect the committed changes.
Closed by commit rG493c85648401: [clang][NFC] Small mangler cleanups (authored by urnathan).
Herald added a project: clang.
Herald added a subscriber: cfe-commits.
Changed prior to commit:
https://reviews.llvm.org/D117799?vs=401662&id=401715#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D117799/new/
https://reviews.llvm.org/D117799
Files:
clang/lib/AST/ItaniumMangle.cpp
Index: clang/lib/AST/ItaniumMangle.cpp
===================================================================
--- clang/lib/AST/ItaniumMangle.cpp
+++ clang/lib/AST/ItaniumMangle.cpp
@@ -659,8 +659,7 @@
}
bool ItaniumMangleContextImpl::shouldMangleCXXName(const NamedDecl *D) {
- const FunctionDecl *FD = dyn_cast<FunctionDecl>(D);
- if (FD) {
+ if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
LanguageLinkage L = FD->getLanguageLinkage();
// Overloadable functions need mangling.
if (FD->hasAttr<OverloadableAttr>())
@@ -696,21 +695,24 @@
if (!getASTContext().getLangOpts().CPlusPlus)
return false;
- const VarDecl *VD = dyn_cast<VarDecl>(D);
- if (VD && !isa<DecompositionDecl>(D)) {
+ if (const auto *VD = dyn_cast<VarDecl>(D)) {
+ // Decompositions are mangled.
+ if (isa<DecompositionDecl>(VD))
+ return true;
+
// C variables are not mangled.
if (VD->isExternC())
return false;
- // Variables at global scope with non-internal linkage are not mangled
+ // Variables at global scope with non-internal linkage are not mangled.
const DeclContext *DC = getEffectiveDeclContext(D);
// Check for extern variable declared locally.
if (DC->isFunctionOrMethod() && D->hasLinkage())
- while (!DC->isNamespace() && !DC->isTranslationUnit())
+ while (!DC->isFileContext())
DC = getEffectiveParentContext(DC);
if (DC->isTranslationUnit() && D->getFormalLinkage() != InternalLinkage &&
!CXXNameMangler::shouldHaveAbiTags(*this, VD) &&
- !isa<VarTemplateSpecializationDecl>(D))
+ !isa<VarTemplateSpecializationDecl>(VD))
return false;
}
@@ -5889,9 +5891,11 @@
}
void CXXNameMangler::mangleSeqID(unsigned SeqID) {
- if (SeqID == 1)
+ if (SeqID == 0) {
+ // Nothing.
+ } else if (SeqID == 1) {
Out << '0';
- else if (SeqID > 1) {
+ } else {
SeqID--;
// <seq-id> is encoded in base-36, using digits and upper case letters.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D117799.401715.patch
Type: text/x-patch
Size: 1983 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20220120/108ffbdc/attachment-0001.bin>
More information about the cfe-commits
mailing list