re PR java/1074 (jv-scan fails on ArrayClass.java)

2001-03-30  Alexandre Petit-Bianco  <apbianco@redhat.com>

	* parse-scan.y (array_type:): Rewritten.
	(type_declaration:): `empty_statement' replaces `SC_TK.'
	(class_member_declaration:): `empty statement' added.
	(method_body:): Simplified.
	(static_initializer:): Likewise.
	(primary_no_new_array:): Use `type_literals.'
	(type_literals:): New rule.
	(dims:): Set and update `bracket_count.'
	Fixes PR java/1074. Fixes PR java/2412.

(http://gcc.gnu.org/ml/gcc-bugs/2001-03/msg00835.html,
 http://gcc.gnu.org/ml/gcc-bugs/2000-12/msg00384.html,
 http://gcc.gnu.org/ml/gcc-patches/2001-04/msg00258.html)

From-SVN: r41089
This commit is contained in:
Alexandre Petit-Bianco 2001-04-04 10:56:25 -07:00 committed by Alexandre Petit-Bianco
parent dd7fc59c36
commit de307574bf
2 changed files with 35 additions and 17 deletions

View File

@ -10,6 +10,18 @@
lang_printable_name call in a scratch buffer, so it
won't be clobbered by the second call.
2001-03-30 Alexandre Petit-Bianco <apbianco@redhat.com>
* parse-scan.y (array_type:): Rewritten.
(type_declaration:): `empty_statement' replaces `SC_TK.'
(class_member_declaration:): `empty statement' added.
(method_body:): Simplified.
(static_initializer:): Likewise.
(primary_no_new_array:): Use `type_literals.'
(type_literals:): New rule.
(dims:): Set and update `bracket_count.'
Fixes PR java/1074. Fixes PR java/2412.
2001-03-28 Hans Boehm <boehm@acm.org>
* boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Set to use `build_int_2.'

View File

@ -242,14 +242,15 @@ interface_type:
;
array_type:
primitive_type OSB_TK CSB_TK
| name OSB_TK CSB_TK
primitive_type dims
{
$$ = concat ("[", $1, NULL);
while (bracket_count-- > 0)
$$ = concat ("[", $1, NULL);
}
| array_type OSB_TK CSB_TK
{
$$ = concat ("[", $1, NULL);
| name dims
{
while (bracket_count-- > 0)
$$ = concat ("[", $1, NULL);
}
;
@ -316,7 +317,7 @@ type_import_on_demand_declaration:
type_declaration:
class_declaration
| interface_declaration
| SC_TK
| empty_statement
;
/* 19.7 Shortened from the original:
@ -393,6 +394,7 @@ class_member_declaration:
| method_declaration
| class_declaration /* Added, JDK1.1 inner classes */
| interface_declaration /* Added, JDK1.1 inner classes */
| empty_statement
;
/* 19.8.2 Productions from 8.3: Field Declarations */
@ -513,14 +515,12 @@ class_type_list:
method_body:
block
| block SC_TK
| SC_TK
;
/* 19.8.4 Productions from 8.5: Static Initializers */
static_initializer:
static block
| static block SC_TK /* Shouldn't be here. FIXME */
;
static: /* Test lval.sub_token here */
@ -892,14 +892,7 @@ primary_no_new_array:
| field_access
| method_invocation
| array_access
/* type DOT_TK CLASS_TK doens't work. So we split the rule
'type' into its components. Missing is something for array,
which will complete the reference_type part. FIXME */
| name DOT_TK CLASS_TK /* Added, JDK1.1 class literals */
{ USE_ABSORBER; }
| primitive_type DOT_TK CLASS_TK /* Added, JDK1.1 class literals */
{ USE_ABSORBER; }
| VOID_TK DOT_TK CLASS_TK /* Added, JDK1.1 class literals */
| type_literals
/* Added, JDK1.1 inner classes. Documentation is wrong
refering to a 'ClassName' (class_name) rule that doesn't
exist. Used name instead. */
@ -907,6 +900,17 @@ primary_no_new_array:
{ USE_ABSORBER; }
;
type_literals:
name DOT_TK CLASS_TK
{ USE_ABSORBER; }
| array_type DOT_TK CLASS_TK
{ USE_ABSORBER; }
| primitive_type DOT_TK CLASS_TK
{ USE_ABSORBER; }
| VOID_TK DOT_TK CLASS_TK
{ USE_ABSORBER; }
;
class_instance_creation_expression:
NEW_TK class_type OP_TK argument_list CP_TK
| NEW_TK class_type OP_TK CP_TK
@ -960,7 +964,9 @@ dim_expr:
dims:
OSB_TK CSB_TK
{ bracket_count = 1; }
| dims OSB_TK CSB_TK
{ bracket_count++; }
;
field_access: