mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-23 05:29:23 +00:00
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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240705 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4cbb2db3ab
commit
d26d587fbe
@ -1646,8 +1646,8 @@ bool AsmParser::parseStatement(ParseStatementInfo &Info,
|
||||
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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user