summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/MC/MCParser/AsmParser.cpp4
-rw-r--r--llvm/test/DebugInfo/X86/asm-macro-line-number.s14
2 files changed, 16 insertions, 2 deletions
diff --git a/llvm/lib/MC/MCParser/AsmParser.cpp b/llvm/lib/MC/MCParser/AsmParser.cpp
index 2245a466e62..04d141389c9 100644
--- a/llvm/lib/MC/MCParser/AsmParser.cpp
+++ b/llvm/lib/MC/MCParser/AsmParser.cpp
@@ -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
diff --git a/llvm/test/DebugInfo/X86/asm-macro-line-number.s b/llvm/test/DebugInfo/X86/asm-macro-line-number.s
index 0f51dbb6440..8b0843d0613 100644
--- a/llvm/test/DebugInfo/X86/asm-macro-line-number.s
+++ b/llvm/test/DebugInfo/X86/asm-macro-line-number.s
@@ -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
OpenPOWER on IntegriCloud