[llvm] r240705 - IAS: Use the root macro instanciation for location

Frederic Riss friss at apple.com
Thu Jun 25 14:57:34 PDT 2015


Author: friss
Date: Thu Jun 25 16:57:33 2015
New Revision: 240705

URL: http://llvm.org/viewvc/llvm-project?rev=240705&view=rev
Log:
IAS: Use the root macro instanciation for location

r224810 fixed the handling of macro debug locations in AsmParser. This patch
fixes the logic to actually do what was intended: it uses the first macro of
the macro stack instead of the last one. The updated testcase shows that the
current scheme doesn't work when macro instanciations are nested and multiple
files are used.

Reviewers: compnerd

Differential Revision: http://reviews.llvm.org/D10463

Modified:
    llvm/trunk/lib/MC/MCParser/AsmParser.cpp
    llvm/trunk/test/DebugInfo/X86/asm-macro-line-number.s

Modified: llvm/trunk/lib/MC/MCParser/AsmParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCParser/AsmParser.cpp?rev=240705&r1=240704&r2=240705&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCParser/AsmParser.cpp (original)
+++ llvm/trunk/lib/MC/MCParser/AsmParser.cpp Thu Jun 25 16:57:33 2015
@@ -1646,8 +1646,8 @@ bool AsmParser::parseStatement(ParseStat
     if (ActiveMacros.empty())
       Line = SrcMgr.FindLineNumber(IDLoc, CurBuffer);
     else
-      Line = SrcMgr.FindLineNumber(ActiveMacros.back()->InstantiationLoc,
-                                   ActiveMacros.back()->ExitBuffer);
+      Line = SrcMgr.FindLineNumber(ActiveMacros.front()->InstantiationLoc,
+                                   ActiveMacros.front()->ExitBuffer);
 
     // If we previously parsed a cpp hash file line comment then make sure the
     // current Dwarf File is for the CppHashFilename if not then emit the

Modified: llvm/trunk/test/DebugInfo/X86/asm-macro-line-number.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/asm-macro-line-number.s?rev=240705&r1=240704&r2=240705&view=diff
==============================================================================
--- llvm/trunk/test/DebugInfo/X86/asm-macro-line-number.s (original)
+++ llvm/trunk/test/DebugInfo/X86/asm-macro-line-number.s Thu Jun 25 16:57:33 2015
@@ -3,12 +3,18 @@
 # 1 "reduced.S"
 # 1 "<built-in>" 1
 # 1 "reduced.S" 2
+# 200 "macros.h"
 
  .macro return arg
   movl %eax, \arg
   retl
  .endm
 
+ .macro return2 arg
+  return \arg
+ .endm
+
+# 7 "reduced.S"
 function:
  return 0
 
@@ -18,3 +24,11 @@ function:
 # CHECK: .loc 2 8 0
 # CHECK: retl
 
+# 42 "reduced.S"
+function2:
+ return2 0
+
+# CHECK: .loc 2 43 0
+# CHECK: movl %eax, 0
+# CHECK: .loc 2 43 0
+# CHECK: retl





More information about the llvm-commits mailing list