6891079: Compiler allows invalid binary literals 0b and oBL
Reviewed-by: darcy
This commit is contained in:
parent
837c2b0a07
commit
51a7e38600
@ -876,7 +876,11 @@ public class Scanner implements Lexer {
|
|||||||
}
|
}
|
||||||
scanChar();
|
scanChar();
|
||||||
skipIllegalUnderscores();
|
skipIllegalUnderscores();
|
||||||
scanNumber(2);
|
if (digit(2) < 0) {
|
||||||
|
lexError("invalid.binary.number");
|
||||||
|
} else {
|
||||||
|
scanNumber(2);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
putChar('0');
|
putChar('0');
|
||||||
if (ch == '_') {
|
if (ch == '_') {
|
||||||
|
@ -252,6 +252,8 @@ compiler.err.intf.meth.cant.have.body=\
|
|||||||
interface methods cannot have body
|
interface methods cannot have body
|
||||||
compiler.err.invalid.annotation.member.type=\
|
compiler.err.invalid.annotation.member.type=\
|
||||||
invalid type for annotation member
|
invalid type for annotation member
|
||||||
|
compiler.err.invalid.binary.number=\
|
||||||
|
binary numbers must contain at least one binary digit
|
||||||
compiler.err.invalid.hex.number=\
|
compiler.err.invalid.hex.number=\
|
||||||
hexadecimal numbers must contain at least one hexadecimal digit
|
hexadecimal numbers must contain at least one hexadecimal digit
|
||||||
compiler.err.invalid.meth.decl.ret.type.req=\
|
compiler.err.invalid.meth.decl.ret.type.req=\
|
||||||
|
12
langtools/test/tools/javac/literals/T6891079.java
Normal file
12
langtools/test/tools/javac/literals/T6891079.java
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
/* @test /nodynamiccopyright/
|
||||||
|
* @bug 6891079
|
||||||
|
* @summary Compiler allows invalid binary literals 0b and oBL
|
||||||
|
* @compile/fail/ref=T6891079.out -XDrawDiagnostics T6891079.java
|
||||||
|
*/
|
||||||
|
|
||||||
|
class Test {
|
||||||
|
int bi = 0B;
|
||||||
|
long bl = 0BL;
|
||||||
|
int xi = 0X;
|
||||||
|
long xl = 0XL;
|
||||||
|
}
|
7
langtools/test/tools/javac/literals/T6891079.out
Normal file
7
langtools/test/tools/javac/literals/T6891079.out
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
T6891079.java:8:14: compiler.err.invalid.binary.number
|
||||||
|
T6891079.java:9:15: compiler.err.invalid.binary.number
|
||||||
|
T6891079.java:9:18: compiler.err.expected: token.identifier
|
||||||
|
T6891079.java:10:14: compiler.err.invalid.hex.number
|
||||||
|
T6891079.java:11:15: compiler.err.invalid.hex.number
|
||||||
|
T6891079.java:11:18: compiler.err.expected: token.identifier
|
||||||
|
6 errors
|
Loading…
x
Reference in New Issue
Block a user