summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2010-09-24 17:10:26 +0000
committerDaniel Dunbar <daniel@zuster.org>2010-09-24 17:10:26 +0000
commitfacb34b41cea284b5a0b4992ff619e5cfd5e6a22 (patch)
tree11111495b4ab5b3a27a94a98f8bbc3600ec00720
parent6b096c35c7fae6e638138d698af7523edeafcac4 (diff)
downloadllvm-facb34b41cea284b5a0b4992ff619e5cfd5e6a22.tar.gz
llvm-facb34b41cea284b5a0b4992ff619e5cfd5e6a22.tar.bz2
llvm-facb34b41cea284b5a0b4992ff619e5cfd5e6a22.tar.xz
MC/AsmParser: Handle a missed case of floating literals in the lexer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114733 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/MC/MCParser/AsmLexer.cpp2
-rw-r--r--test/MC/AsmParser/floating-literals.s3
2 files changed, 4 insertions, 1 deletions
diff --git a/lib/MC/MCParser/AsmLexer.cpp b/lib/MC/MCParser/AsmLexer.cpp
index 59da3817c1..1a71d2437d 100644
--- a/lib/MC/MCParser/AsmLexer.cpp
+++ b/lib/MC/MCParser/AsmLexer.cpp
@@ -145,7 +145,7 @@ static void SkipIgnoredIntegerSuffix(const char *&CurPtr) {
/// Decimal integer: [1-9][0-9]*
AsmToken AsmLexer::LexDigit() {
// Decimal integer: [1-9][0-9]*
- if (CurPtr[-1] != '0') {
+ if (CurPtr[-1] != '0' || CurPtr[0] == '.') {
while (isdigit(*CurPtr))
++CurPtr;
diff --git a/test/MC/AsmParser/floating-literals.s b/test/MC/AsmParser/floating-literals.s
index 44f8a5ab0a..dbeb81fb9e 100644
--- a/test/MC/AsmParser/floating-literals.s
+++ b/test/MC/AsmParser/floating-literals.s
@@ -10,3 +10,6 @@
# CHECK: .quad 4597526701198935065
# CHECK: .quad -4600933674317040845
.double 5, .232, -11.1
+
+# CHECK: .quad 0
+.double 0.0