This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Patch: java -vs- some FP constants
- To: Gcc Patch List <gcc-patches at gcc dot gnu dot org>
- Subject: Patch: java -vs- some FP constants
- From: Tom Tromey <tromey at cygnus dot com>
- Date: 20 Nov 2000 14:44:15 -0700
- Cc: Alexandre Petit-Bianco <apbianco at cygnus dot com>
- Reply-To: tromey at cygnus dot com
Currently gcj will reject a floating point constant with leading
zeros. It does this because it thinks that the constant must be
octal, which is invalid.
This trivial patch fixes this problem. I've rebuilt libgcj with it
with no problems. This patch lets us pass another Jacks test.
Ok to commit?
2000-11-20 Tom Tromey <tromey@cygnus.com>
* lex.c (yylex): Recognize floating point constants with leading
0.
Tom
Index: lex.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/java/lex.c,v
retrieving revision 1.52
diff -u -r1.52 lex.c
--- lex.c 2000/11/07 22:50:06 1.52
+++ lex.c 2000/11/20 21:33:45
@@ -1024,8 +1064,12 @@
int seen_exponent = 0;
int fflag = 0; /* 1 for {f,F}, 0 for {d,D}. FP literal are
double unless specified. */
- if (radix != 10)
+
+ /* It is ok if the radix is 8 because this just means we've
+ seen a leading `0'. However, radix==16 is invalid. */
+ if (radix == 16)
java_lex_error ("Can't express non-decimal FP literal", 0);
+ radix = 10;
for (;;)
{