summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdrian Prantl <aprantl@apple.com>2013-09-26 23:37:11 +0000
committerAdrian Prantl <aprantl@apple.com>2013-09-26 23:37:11 +0000
commit6ac40036f152242e1bfae177614c090e1995d824 (patch)
treeb31b70c34abe8f3852e6544f8b926c4642ab4f08
parentee969f9f274989bd55794bcff9e925663bbc5df4 (diff)
downloadbcm5719-llvm-6ac40036f152242e1bfae177614c090e1995d824.tar.gz
bcm5719-llvm-6ac40036f152242e1bfae177614c090e1995d824.zip
MCParser/Debug info: Accept line number 0 as a legitimate value, since
CFE produces it to indicate artificial locations. c.f.: DWARF standard, Table 6.2: line -- An unsigned integer indicating a source line number. Lines are numbered beginning at 1. The compiler may emit the value 0 in cases where an instruction cannot be attributed to any source line. llvm-svn: 191471
-rw-r--r--llvm/lib/MC/MCParser/AsmParser.cpp4
-rw-r--r--llvm/test/MC/AsmParser/directive_loc.s1
2 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/MC/MCParser/AsmParser.cpp b/llvm/lib/MC/MCParser/AsmParser.cpp
index e36850beb82..9854b07a6c4 100644
--- a/llvm/lib/MC/MCParser/AsmParser.cpp
+++ b/llvm/lib/MC/MCParser/AsmParser.cpp
@@ -2634,8 +2634,8 @@ bool AsmParser::parseDirectiveLoc() {
int64_t LineNumber = 0;
if (getLexer().is(AsmToken::Integer)) {
LineNumber = getTok().getIntVal();
- if (LineNumber < 1)
- return TokError("line number less than one in '.loc' directive");
+ if (LineNumber < 0)
+ return TokError("line number less than zero in '.loc' directive");
Lex();
}
diff --git a/llvm/test/MC/AsmParser/directive_loc.s b/llvm/test/MC/AsmParser/directive_loc.s
index 164d42a3fa7..700a32ca389 100644
--- a/llvm/test/MC/AsmParser/directive_loc.s
+++ b/llvm/test/MC/AsmParser/directive_loc.s
@@ -6,3 +6,4 @@
.loc 1 2
.loc 1 2 3
.loc 1 2 discriminator 1
+ .loc 1 0
OpenPOWER on IntegriCloud