From deac137da710cd8566b857ee9d1e182d4fd35932 Mon Sep 17 00:00:00 2001 From: Adrian Prantl Date: Thu, 26 Sep 2013 23:37:11 +0000 Subject: [PATCH] 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191471 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/MC/MCParser/AsmParser.cpp | 4 ++-- test/MC/AsmParser/directive_loc.s | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/MC/MCParser/AsmParser.cpp b/lib/MC/MCParser/AsmParser.cpp index e36850beb82..9854b07a6c4 100644 --- a/lib/MC/MCParser/AsmParser.cpp +++ b/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/test/MC/AsmParser/directive_loc.s b/test/MC/AsmParser/directive_loc.s index 164d42a3fa7..700a32ca389 100644 --- a/test/MC/AsmParser/directive_loc.s +++ b/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 -- 2.34.1