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