[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