summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MCParser/AsmParser.cpp
diff options
context:
space:
mode:
authorKevin Enderby <enderby@apple.com>2012-11-05 21:55:41 +0000
committerKevin Enderby <enderby@apple.com>2012-11-05 21:55:41 +0000
commit27121c15438055fd07f0dd2f2f4b2e3645d9bc5c (patch)
tree0ff24468c84ff98ec5349ff8a7fa26fc3ededc0d /llvm/lib/MC/MCParser/AsmParser.cpp
parent43a172d935b69d1b9532cd78a99e285ac3e3076a (diff)
downloadbcm5719-llvm-27121c15438055fd07f0dd2f2f4b2e3645d9bc5c.tar.gz
bcm5719-llvm-27121c15438055fd07f0dd2f2f4b2e3645d9bc5c.zip
Fix for PR14264 cause by commit r167237 which did not take into account a
possible buffer change with a .macro directive. rdar://12637628 llvm-svn: 167408
Diffstat (limited to 'llvm/lib/MC/MCParser/AsmParser.cpp')
-rw-r--r--llvm/lib/MC/MCParser/AsmParser.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/MC/MCParser/AsmParser.cpp b/llvm/lib/MC/MCParser/AsmParser.cpp
index ae3d660ff91..6f2e85e5533 100644
--- a/llvm/lib/MC/MCParser/AsmParser.cpp
+++ b/llvm/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();
OpenPOWER on IntegriCloud