r185384 - Simplify code in mangler.
Eli Friedman
eli.friedman at gmail.com
Mon Jul 1 14:29:48 PDT 2013
Author: efriedma
Date: Mon Jul 1 16:29:48 2013
New Revision: 185384
URL: http://llvm.org/viewvc/llvm-project?rev=185384&view=rev
Log:
Simplify code in mangler.
Modified:
cfe/trunk/lib/AST/ItaniumMangle.cpp
Modified: cfe/trunk/lib/AST/ItaniumMangle.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ItaniumMangle.cpp?rev=185384&r1=185383&r2=185384&view=diff
==============================================================================
--- cfe/trunk/lib/AST/ItaniumMangle.cpp (original)
+++ cfe/trunk/lib/AST/ItaniumMangle.cpp Mon Jul 1 16:29:48 2013
@@ -553,7 +553,8 @@ void CXXNameMangler::mangleName(const Na
// is that of the containing namespace, or the translation unit.
// FIXME: This is a hack; extern variables declared locally should have
// a proper semantic declaration context!
- if (isa<FunctionDecl>(DC) && ND->hasLinkage() && !isLambda(ND))
+ if ((isa<FunctionDecl>(DC) || isa<ObjCMethodDecl>(DC)) &&
+ ND->hasLinkage() && !isLambda(ND))
while (!DC->isNamespace() && !DC->isTranslationUnit())
DC = getEffectiveParentContext(DC);
else if (GetLocalClassDecl(ND)) {
@@ -1272,11 +1273,6 @@ void CXXNameMangler::mangleLocalName(con
// _ <entity name>
// <discriminator> := _ <non-negative number>
const DeclContext *DC = getEffectiveDeclContext(ND);
- if (isa<ObjCMethodDecl>(DC) && isa<FunctionDecl>(ND)) {
- // Don't add objc method name mangling to locally declared function
- mangleUnqualifiedName(ND);
- return;
- }
Out << 'Z';
More information about the cfe-commits
mailing list