diff options
author | Kevin Enderby <enderby@apple.com> | 2012-11-05 21:55:41 +0000 |
---|---|---|
committer | Kevin Enderby <enderby@apple.com> | 2012-11-05 21:55:41 +0000 |
commit | 32c1a82a6b1d934e30e05c0e18b9e57fde96c56f (patch) | |
tree | 5dc25445d6f92ceec7dad50efbf9a3d468acd8ca /lib/MC | |
parent | 7895353b758829647515a993a26dcfffa89727a8 (diff) | |
download | external_llvm-32c1a82a6b1d934e30e05c0e18b9e57fde96c56f.zip external_llvm-32c1a82a6b1d934e30e05c0e18b9e57fde96c56f.tar.gz external_llvm-32c1a82a6b1d934e30e05c0e18b9e57fde96c56f.tar.bz2 |
Fix for PR14264 cause by commit r167237 which did not take into account a
possible buffer change with a .macro directive.
rdar://12637628
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167408 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/MC')
-rw-r--r-- | lib/MC/MCParser/AsmParser.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/MC/MCParser/AsmParser.cpp b/lib/MC/MCParser/AsmParser.cpp index ae3d660..6f2e85e 100644 --- a/lib/MC/MCParser/AsmParser.cpp +++ b/lib/MC/MCParser/AsmParser.cpp @@ -154,6 +154,7 @@ private: StringRef CppHashFilename; int64_t CppHashLineNumber; SMLoc CppHashLoc; + int CppHashBuf; /// AssemblerDialect. ~OU means unset value and use value provided by MAI. unsigned AssemblerDialect; @@ -1403,7 +1404,7 @@ bool AsmParser::ParseStatement(ParseStatementInfo &Info) { getStreamer().EmitDwarfFileDirective( getContext().nextGenDwarfFileNumber(), StringRef(), CppHashFilename); - unsigned CppHashLocLineNo = SrcMgr.FindLineNumber(CppHashLoc, CurBuffer); + unsigned CppHashLocLineNo = SrcMgr.FindLineNumber(CppHashLoc,CppHashBuf); Line = CppHashLineNumber - 1 + (Line - CppHashLocLineNo); } @@ -1465,6 +1466,7 @@ bool AsmParser::ParseCppHashLineFilenameComment(const SMLoc &L) { CppHashLoc = L; CppHashFilename = Filename; CppHashLineNumber = LineNumber; + CppHashBuf = CurBuffer; // Ignore any trailing characters, they're just comment. EatToEndOfLine(); |