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:
parent
dd7fc59c36
commit
de307574bf
2 changed files with 35 additions and 17 deletions
|
@ -10,6 +10,18 @@
|
||||||
lang_printable_name call in a scratch buffer, so it
|
lang_printable_name call in a scratch buffer, so it
|
||||||
won't be clobbered by the second call.
|
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>
|
2001-03-28 Hans Boehm <boehm@acm.org>
|
||||||
|
|
||||||
* boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Set to use `build_int_2.'
|
* boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Set to use `build_int_2.'
|
||||||
|
|
|
@ -242,14 +242,15 @@ interface_type:
|
||||||
;
|
;
|
||||||
|
|
||||||
array_type:
|
array_type:
|
||||||
primitive_type OSB_TK CSB_TK
|
primitive_type dims
|
||||||
| name OSB_TK CSB_TK
|
|
||||||
{
|
{
|
||||||
$$ = concat ("[", $1, NULL);
|
while (bracket_count-- > 0)
|
||||||
|
$$ = concat ("[", $1, NULL);
|
||||||
}
|
}
|
||||||
| array_type OSB_TK CSB_TK
|
| name dims
|
||||||
{
|
{
|
||||||
$$ = concat ("[", $1, NULL);
|
while (bracket_count-- > 0)
|
||||||
|
$$ = concat ("[", $1, NULL);
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
@ -316,7 +317,7 @@ type_import_on_demand_declaration:
|
||||||
type_declaration:
|
type_declaration:
|
||||||
class_declaration
|
class_declaration
|
||||||
| interface_declaration
|
| interface_declaration
|
||||||
| SC_TK
|
| empty_statement
|
||||||
;
|
;
|
||||||
|
|
||||||
/* 19.7 Shortened from the original:
|
/* 19.7 Shortened from the original:
|
||||||
|
@ -393,6 +394,7 @@ class_member_declaration:
|
||||||
| method_declaration
|
| method_declaration
|
||||||
| class_declaration /* Added, JDK1.1 inner classes */
|
| class_declaration /* Added, JDK1.1 inner classes */
|
||||||
| interface_declaration /* Added, JDK1.1 inner classes */
|
| interface_declaration /* Added, JDK1.1 inner classes */
|
||||||
|
| empty_statement
|
||||||
;
|
;
|
||||||
|
|
||||||
/* 19.8.2 Productions from 8.3: Field Declarations */
|
/* 19.8.2 Productions from 8.3: Field Declarations */
|
||||||
|
@ -513,14 +515,12 @@ class_type_list:
|
||||||
|
|
||||||
method_body:
|
method_body:
|
||||||
block
|
block
|
||||||
| block SC_TK
|
|
||||||
| SC_TK
|
| SC_TK
|
||||||
;
|
;
|
||||||
|
|
||||||
/* 19.8.4 Productions from 8.5: Static Initializers */
|
/* 19.8.4 Productions from 8.5: Static Initializers */
|
||||||
static_initializer:
|
static_initializer:
|
||||||
static block
|
static block
|
||||||
| static block SC_TK /* Shouldn't be here. FIXME */
|
|
||||||
;
|
;
|
||||||
|
|
||||||
static: /* Test lval.sub_token here */
|
static: /* Test lval.sub_token here */
|
||||||
|
@ -892,14 +892,7 @@ primary_no_new_array:
|
||||||
| field_access
|
| field_access
|
||||||
| method_invocation
|
| method_invocation
|
||||||
| array_access
|
| array_access
|
||||||
/* type DOT_TK CLASS_TK doens't work. So we split the rule
|
| type_literals
|
||||||
'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 */
|
|
||||||
/* Added, JDK1.1 inner classes. Documentation is wrong
|
/* Added, JDK1.1 inner classes. Documentation is wrong
|
||||||
refering to a 'ClassName' (class_name) rule that doesn't
|
refering to a 'ClassName' (class_name) rule that doesn't
|
||||||
exist. Used name instead. */
|
exist. Used name instead. */
|
||||||
|
@ -907,6 +900,17 @@ primary_no_new_array:
|
||||||
{ USE_ABSORBER; }
|
{ 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:
|
class_instance_creation_expression:
|
||||||
NEW_TK class_type OP_TK argument_list CP_TK
|
NEW_TK class_type OP_TK argument_list CP_TK
|
||||||
| NEW_TK class_type OP_TK CP_TK
|
| NEW_TK class_type OP_TK CP_TK
|
||||||
|
@ -960,7 +964,9 @@ dim_expr:
|
||||||
|
|
||||||
dims:
|
dims:
|
||||||
OSB_TK CSB_TK
|
OSB_TK CSB_TK
|
||||||
|
{ bracket_count = 1; }
|
||||||
| dims OSB_TK CSB_TK
|
| dims OSB_TK CSB_TK
|
||||||
|
{ bracket_count++; }
|
||||||
;
|
;
|
||||||
|
|
||||||
field_access:
|
field_access:
|
||||||
|
|
Loading…
Add table
Reference in a new issue