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();
|
||||
skipIllegalUnderscores();
|
||||
scanNumber(2);
|
||||
if (digit(2) < 0) {
|
||||
lexError("invalid.binary.number");
|
||||
} else {
|
||||
scanNumber(2);
|
||||
}
|
||||
} else {
|
||||
putChar('0');
|
||||
if (ch == '_') {
|
||||
|
@ -252,6 +252,8 @@ compiler.err.intf.meth.cant.have.body=\
|
||||
interface methods cannot have body
|
||||
compiler.err.invalid.annotation.member.type=\
|
||||
invalid type for annotation member
|
||||
compiler.err.invalid.binary.number=\
|
||||
binary numbers must contain at least one binary digit
|
||||
compiler.err.invalid.hex.number=\
|
||||
hexadecimal numbers must contain at least one hexadecimal digit
|
||||
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…
Reference in New Issue
Block a user