diff options
author | Nathan Ridge | 2013-08-26 03:18:15 +0000 |
---|---|---|
committer | Sergey Prigogin | 2013-08-26 20:46:40 +0000 |
commit | c68190a67c294597289762543edb8bcd91c2e8a7 (patch) | |
tree | b573745ff9177084c079943e84d4fb693b70fa7f | |
parent | 5cb56f98bc0084b20e633a235d736d5f3175bd96 (diff) | |
download | org.eclipse.cdt-c68190a67c294597289762543edb8bcd91c2e8a7.tar.gz org.eclipse.cdt-c68190a67c294597289762543edb8bcd91c2e8a7.tar.xz org.eclipse.cdt-c68190a67c294597289762543edb8bcd91c2e8a7.zip |
Bug 394048 - parser confusion about octal double
Change-Id: I4184acdeb4909022a2e2b30830530bd33a4897f3
Signed-off-by: Nathan Ridge <zeratul976@hotmail.com>
Reviewed-on: https://git.eclipse.org/r/15839
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2 files changed, 13 insertions, 3 deletions
diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java index b88622d8481..816f687659d 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java @@ -7461,4 +7461,9 @@ public class AST2Tests extends AST2TestBase { public void testFunctionReturningFunctionPointer_413204() throws Exception { parseAndCheckBindings(getAboveComment(), CPP); } + + // double d = 00.9; + public void testOctalFloatingPointLiteral_394048() throws Exception { + parseAndCheckBindings(); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/CPreprocessor.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/CPreprocessor.java index f6197357289..2ebdb5a3d09 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/CPreprocessor.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/CPreprocessor.java @@ -976,12 +976,17 @@ public class CPreprocessor implements ILexerLog, IScanner, IAdaptable { ++pos; break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': - isOctal = true; + if (!isFloat) + isOctal = true; ++pos; break; case '8': case '9': - handleProblem(IProblem.SCANNER_BAD_OCTAL_FORMAT, image, number.getOffset(), number.getEndOffset()); - return; + if (!isFloat) { + handleProblem(IProblem.SCANNER_BAD_OCTAL_FORMAT, image, number.getOffset(), number.getEndOffset()); + return; + } + ++pos; + break; } } } |