mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-11 16:15:09 +08:00
re PR java/4141 (GCJ compiles illegal code without complaining.)
2001-08-27 Alexandre Petit-Bianco <apbianco@redhat.com> * parse.y (resolve_qualified_expression_name): Handle unresolved qualified expressions, prevent numerical qualifiers, fixed typo. Fixes PR java/4141 (http://gcc.gnu.org/ml/gcc-patches/2001-08/msg01644.html) From-SVN: r45251
This commit is contained in:
parent
51a25585ff
commit
1ca09b4878
@ -8,6 +8,12 @@
|
||||
* jcf-write.c (generate_bytecode_insns): Generate an integer to
|
||||
real conversion for increments and decrements of reals.
|
||||
|
||||
2001-08-27 Alexandre Petit-Bianco <apbianco@redhat.com>
|
||||
|
||||
* parse.y (resolve_qualified_expression_name): Handle unresolved
|
||||
qualified expressions, prevent numerical qualifiers, fixed typo.
|
||||
Fixes PR java/4141
|
||||
|
||||
2001-08-24 Alexandre Petit-Bianco <apbianco@redhat.com>
|
||||
|
||||
* parse.y (check_deprecation): Handle TYPE_DECL in a special case,
|
||||
@ -37,6 +43,7 @@
|
||||
descriptor.
|
||||
* class.c (make_method_value): Compute `throws' field for method.
|
||||
|
||||
>>>>>>> 1.790
|
||||
2001-08-22 Alexandre Petit-Bianco <apbianco@redhat.com>
|
||||
|
||||
* parse.y (resolve_inner_class): Keep local_enclosing to NULL if
|
||||
@ -62,6 +69,7 @@
|
||||
superclass if necessary.
|
||||
Fixes PR java/4007
|
||||
|
||||
>>>>>>> 1.785
|
||||
2001-08-16 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* jcf-dump.c (main): Updated for change to jcf_path_seal.
|
||||
|
@ -9617,10 +9617,9 @@ resolve_qualified_expression_name (wfl, found_decl, where_found, type_found)
|
||||
|
||||
/* We have a type name. It's been already resolved when the
|
||||
expression was qualified. */
|
||||
else if (RESOLVE_TYPE_NAME_P (qual_wfl))
|
||||
else if (RESOLVE_TYPE_NAME_P (qual_wfl) && QUAL_RESOLUTION (q))
|
||||
{
|
||||
if (!(decl = QUAL_RESOLUTION (q)))
|
||||
return 1; /* Error reported already */
|
||||
decl = QUAL_RESOLUTION (q);
|
||||
|
||||
/* Sneak preview. If next we see a `new', we're facing a
|
||||
qualification with resulted in a type being selected
|
||||
@ -9648,7 +9647,7 @@ resolve_qualified_expression_name (wfl, found_decl, where_found, type_found)
|
||||
type = TREE_TYPE (decl);
|
||||
from_type = 1;
|
||||
}
|
||||
/* We resolve and expression name */
|
||||
/* We resolve an expression name */
|
||||
else
|
||||
{
|
||||
tree field_decl = NULL_TREE;
|
||||
@ -9684,6 +9683,16 @@ resolve_qualified_expression_name (wfl, found_decl, where_found, type_found)
|
||||
}
|
||||
}
|
||||
|
||||
/* Report and error if we're using a numerical litteral as a
|
||||
qualifier. It can only be an INTEGER_CST. */
|
||||
else if (TREE_CODE (qual_wfl) == INTEGER_CST)
|
||||
{
|
||||
parse_error_context
|
||||
(wfl, "Can't use type `%s' as a qualifier",
|
||||
lang_printable_name (TREE_TYPE (qual_wfl), 0));
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* We have to search for a field, knowing the type of its
|
||||
container. The flag FROM_TYPE indicates that we resolved
|
||||
the last member of the expression as a type name, which
|
||||
|
Loading…
Reference in New Issue
Block a user