Index: lib/MC/MCParser/AsmParser.cpp =================================================================== --- lib/MC/MCParser/AsmParser.cpp +++ lib/MC/MCParser/AsmParser.cpp @@ -1620,8 +1620,8 @@ 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 Index: test/DebugInfo/X86/asm-macro-line-number.s =================================================================== --- test/DebugInfo/X86/asm-macro-line-number.s +++ test/DebugInfo/X86/asm-macro-line-number.s @@ -3,14 +3,20 @@ # 1 "reduced.S" # 1 "" 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 + return2 0 # CHECK: .file 2 "reduced.S" # CHECK: .loc 2 8 0