Commit 19559012 by Alexandre Petit-Bianco Committed by Alexandre Petit-Bianco

parse.y (lookup_field_wrapper): Test `name' code.

2001-05-31  Alexandre Petit-Bianco  <apbianco@redhat.com>

	* parse.y (lookup_field_wrapper): Test `name' code.
	(resolve_qualified_expression_name): Test `qual_wfl' code.
	(qualify_ambiguous_name): Handle `CONVERT_EXPR', fixe indentation,
	handle `qual_wfl' by code.
	(maybe_build_primttype_type_ref): Test `wfl' code.

(http://gcc.gnu.org/ml/gcc-patches/2001-05/msg02180.html )

From-SVN: r42764
parent bc440d04
2001-05-31 Alexandre Petit-Bianco <apbianco@redhat.com>
* parse.y (lookup_field_wrapper): Test `name' code.
(resolve_qualified_expression_name): Test `qual_wfl' code.
(qualify_ambiguous_name): Handle `CONVERT_EXPR', fixe indentation,
handle `qual_wfl' by code.
(maybe_build_primttype_type_ref): Test `wfl' code.
2001-05-23 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 2001-05-23 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
* Make-lang.in ($(srcdir)/java/gcj.info): Added dependencies on * Make-lang.in ($(srcdir)/java/gcj.info): Added dependencies on
......
...@@ -4079,7 +4079,7 @@ lookup_field_wrapper (class, name) ...@@ -4079,7 +4079,7 @@ lookup_field_wrapper (class, name)
/* Last chance: if we're within the context of an inner class, we /* Last chance: if we're within the context of an inner class, we
might be trying to access a local variable defined in an outer might be trying to access a local variable defined in an outer
context. We try to look for it now. */ context. We try to look for it now. */
if (INNER_CLASS_TYPE_P (class)) if (INNER_CLASS_TYPE_P (class) && TREE_CODE (name) == IDENTIFIER_NODE)
{ {
tree new_name; tree new_name;
MANGLE_OUTER_LOCAL_VARIABLE_NAME (new_name, name); MANGLE_OUTER_LOCAL_VARIABLE_NAME (new_name, name);
...@@ -9221,7 +9221,8 @@ resolve_qualified_expression_name (wfl, found_decl, where_found, type_found) ...@@ -9221,7 +9221,8 @@ resolve_qualified_expression_name (wfl, found_decl, where_found, type_found)
previous_call_static = 0; previous_call_static = 0;
/* It can be the keyword THIS */ /* It can be the keyword THIS */
if (EXPR_WFL_NODE (qual_wfl) == this_identifier_node) if (TREE_CODE (qual_wfl) == EXPR_WITH_FILE_LOCATION
&& EXPR_WFL_NODE (qual_wfl) == this_identifier_node)
{ {
if (!current_this) if (!current_this)
{ {
...@@ -9272,7 +9273,8 @@ resolve_qualified_expression_name (wfl, found_decl, where_found, type_found) ...@@ -9272,7 +9273,8 @@ resolve_qualified_expression_name (wfl, found_decl, where_found, type_found)
} }
/* 15.10.2 Accessing Superclass Members using SUPER */ /* 15.10.2 Accessing Superclass Members using SUPER */
if (EXPR_WFL_NODE (qual_wfl) == super_identifier_node) if (TREE_CODE (qual_wfl) == EXPR_WITH_FILE_LOCATION
&& EXPR_WFL_NODE (qual_wfl) == super_identifier_node)
{ {
tree node; tree node;
/* Check on the restricted use of SUPER */ /* Check on the restricted use of SUPER */
...@@ -10844,6 +10846,10 @@ qualify_ambiguous_name (id) ...@@ -10844,6 +10846,10 @@ qualify_ambiguous_name (id)
else if (code == INTEGER_CST) else if (code == INTEGER_CST)
name = qual_wfl; name = qual_wfl;
else if (code == CONVERT_EXPR &&
TREE_CODE (TREE_OPERAND (qual_wfl, 0)) == EXPR_WITH_FILE_LOCATION)
name = TREE_OPERAND (qual_wfl, 0);
else if ((code == ARRAY_REF || code == CALL_EXPR || code == MODIFY_EXPR) && else if ((code == ARRAY_REF || code == CALL_EXPR || code == MODIFY_EXPR) &&
TREE_CODE (TREE_OPERAND (qual_wfl, 0)) == EXPR_WITH_FILE_LOCATION) TREE_CODE (TREE_OPERAND (qual_wfl, 0)) == EXPR_WITH_FILE_LOCATION)
name = EXPR_WFL_NODE (TREE_OPERAND (qual_wfl, 0)); name = EXPR_WFL_NODE (TREE_OPERAND (qual_wfl, 0));
...@@ -10858,7 +10864,7 @@ qualify_ambiguous_name (id) ...@@ -10858,7 +10864,7 @@ qualify_ambiguous_name (id)
qual_wfl = QUAL_WFL (qual); qual_wfl = QUAL_WFL (qual);
again = 1; again = 1;
} }
else else
{ {
name = EXPR_WFL_NODE (qual_wfl); name = EXPR_WFL_NODE (qual_wfl);
if (!name) if (!name)
...@@ -10886,8 +10892,10 @@ qualify_ambiguous_name (id) ...@@ -10886,8 +10892,10 @@ qualify_ambiguous_name (id)
qual_wfl = QUAL_WFL (qual); qual_wfl = QUAL_WFL (qual);
if (TREE_CODE (qual_wfl) == CALL_EXPR) if (TREE_CODE (qual_wfl) == CALL_EXPR)
again = 1; again = 1;
else else if (TREE_CODE (qual_wfl) == EXPR_WITH_FILE_LOCATION)
name = EXPR_WFL_NODE (qual_wfl); name = EXPR_WFL_NODE (qual_wfl);
else if (TREE_CODE (qual_wfl) == NEW_CLASS_EXPR)
name = TREE_OPERAND (qual_wfl, 0);
this_found = 1; this_found = 1;
} }
/* If we have a SUPER, we set the context accordingly */ /* If we have a SUPER, we set the context accordingly */
...@@ -12408,6 +12416,7 @@ maybe_build_primttype_type_ref (rhs, wfl) ...@@ -12408,6 +12416,7 @@ maybe_build_primttype_type_ref (rhs, wfl)
if (TREE_CODE (n) == VAR_DECL if (TREE_CODE (n) == VAR_DECL
&& DECL_NAME (n) == TYPE_identifier_node && DECL_NAME (n) == TYPE_identifier_node
&& rhs_type == class_ptr_type && rhs_type == class_ptr_type
&& TREE_CODE (wfl) == EXPR_WITH_FILE_LOCATION
&& TREE_CODE (EXPR_WFL_NODE (wfl)) == IDENTIFIER_NODE) && TREE_CODE (EXPR_WFL_NODE (wfl)) == IDENTIFIER_NODE)
{ {
const char *self_name = IDENTIFIER_POINTER (EXPR_WFL_NODE (wfl)); const char *self_name = IDENTIFIER_POINTER (EXPR_WFL_NODE (wfl));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment