From 4e7842a01ee60d854ae144884e13fbdfe95a7fce Mon Sep 17 00:00:00 2001
From: Tom Tromey <tromey@cygnus.com>
Date: Mon, 20 Nov 2000 22:32:40 +0000
Subject: [PATCH] lex.c (yylex): Recognize floating point constants with
 leading 0.

	* lex.c (yylex): Recognize floating point constants with leading
	0.

From-SVN: r37593
---
 gcc/java/ChangeLog | 5 +++++
 gcc/java/lex.c     | 6 +++++-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 02a5e6c90d99..17883ef9f843 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,8 @@
+2000-11-20  Tom Tromey  <tromey@cygnus.com>
+
+	* lex.c (yylex): Recognize floating point constants with leading
+	0.
+
 2000-11-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
 	* java-tree.h (cyclic_inheritance_report): Constify.
diff --git a/gcc/java/lex.c b/gcc/java/lex.c
index 1b8898c604cb..eb4f1655be37 100644
--- a/gcc/java/lex.c
+++ b/gcc/java/lex.c
@@ -1024,8 +1024,12 @@ java_lex (java_lval)
 	  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 (;;)
 	    {
-- 
GitLab