Even if the subprogram is going to use AT_specification, emit DW_AT_MIPS_linkage_name...
authorDevang Patel <dpatel@apple.com>
Tue, 3 May 2011 21:50:34 +0000 (21:50 +0000)
committerDevang Patel <dpatel@apple.com>
Tue, 3 May 2011 21:50:34 +0000 (21:50 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130794 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/AsmPrinter/DwarfDebug.cpp

index 3bff71daf5dc65ddcf7d632e149339d3ef382097..48f3b0bf4c971dad7526aab2df0d692723cdb6a0 100644 (file)
@@ -332,6 +332,11 @@ DIE *DwarfDebug::createSubprogramDIE(DISubprogram SP) {
   // Add function template parameters.
   SPCU->addTemplateParams(*SPDie, SP.getTemplateParams());
 
+  StringRef LinkageName = SP.getLinkageName();
+  if (!LinkageName.empty())
+    SPCU->addString(SPDie, dwarf::DW_AT_MIPS_linkage_name, dwarf::DW_FORM_string,
+                    getRealLinkageName(LinkageName));
+
   // If this DIE is going to refer declaration info using AT_specification
   // then there is no need to add other attributes.
   if (SP.getFunctionDeclaration().isSubprogram())
@@ -342,11 +347,6 @@ DIE *DwarfDebug::createSubprogramDIE(DISubprogram SP) {
     SPCU->addString(SPDie, dwarf::DW_AT_name, dwarf::DW_FORM_string, 
                     SP.getName());
 
-  StringRef LinkageName = SP.getLinkageName();
-  if (!LinkageName.empty())
-    SPCU->addString(SPDie, dwarf::DW_AT_MIPS_linkage_name, dwarf::DW_FORM_string,
-                    getRealLinkageName(LinkageName));
-
   SPCU->addSourceLine(SPDie, SP);
 
   if (SP.isPrototyped())