summaryrefslogtreecommitdiff
path: root/gcc/java/parse.y
diff options
context:
space:
mode:
authorapbianco <apbianco@138bc75d-0d04-0410-961f-82ee72b054a4>2000-10-05 07:17:34 +0000
committerapbianco <apbianco@138bc75d-0d04-0410-961f-82ee72b054a4>2000-10-05 07:17:34 +0000
commitbc099162c31da09a5b1792bdc7c45554535d9326 (patch)
tree4d5c18c324994e5c054b7c48872b57170975b1b9 /gcc/java/parse.y
parent5e0bc83fe6ffedc565a20311a87d4a55a70062eb (diff)
downloadgcc-bc099162c31da09a5b1792bdc7c45554535d9326.tar.gz
Tue Oct 3 13:44:37 2000 Alexandre Petit-Bianco <apbianco@cygnus.com>
* decl.c (find_local_variable): Removed uncessary type check and fixed range check typo. From Corey Minyard. Wed Sep 13 16:06:52 2000 Alexandre Petit-Bianco <apbianco@cygnus.com> * decl.c (give_name_to_locals): New local `code_offset'. Call `maybe_adjust_start_pc.' * expr.c (note_instructions): New function. (expand_byte_code): Don't collect insn starts here. (peek_opcode_at_pc): New function. (maybe_adjust_start_pc): Likewise. * java-tree.h (maybe_adjust_start_pc): Declare. (note_instructions): Likewise. * jcf-parse.c (parse_class_file): Call `note_instructions.' Wed Sep 13 11:50:35 2000 Alexandre Petit-Bianco <apbianco@cygnus.com> * parse.y (field_access:): Fixed indentation. (qualify_ambiguous_name): Properly qualify `this.a[b].c'. (http://gcc.gnu.org/ml/gcc-patches/2000-10/msg00067.html) git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36717 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/java/parse.y')
-rw-r--r--gcc/java/parse.y14
1 files changed, 12 insertions, 2 deletions
diff --git a/gcc/java/parse.y b/gcc/java/parse.y
index 6ae90d44a2f..5db2edcc076 100644
--- a/gcc/java/parse.y
+++ b/gcc/java/parse.y
@@ -2172,8 +2172,7 @@ field_access:
{ $$ = build_binop (COMPONENT_REF, $2.location, $1, $3); } */
| SUPER_TK DOT_TK identifier
{
- tree super_wfl =
- build_wfl_node (super_identifier_node);
+ tree super_wfl = build_wfl_node (super_identifier_node);
EXPR_WFL_LINECOL (super_wfl) = $1.location;
$$ = make_qualified_name (super_wfl, $3, $2.location);
}
@@ -10741,6 +10740,17 @@ qualify_ambiguous_name (id)
/* If we have a THIS (from a primary), we set the context accordingly */
if (name == this_identifier_node)
{
+ /* This isn't really elegant. One more added irregularity
+ before I start using COMPONENT_REF (hopefully very soon.) */
+ if (TREE_CODE (TREE_PURPOSE (qual)) == ARRAY_REF
+ && TREE_CODE (TREE_OPERAND (TREE_PURPOSE (qual), 0)) ==
+ EXPR_WITH_FILE_LOCATION
+ && EXPR_WFL_NODE (TREE_OPERAND (TREE_PURPOSE (qual), 0)) ==
+ this_identifier_node)
+ {
+ qual = TREE_OPERAND (TREE_PURPOSE (qual), 0);
+ qual = EXPR_WFL_QUALIFICATION (qual);
+ }
qual = TREE_CHAIN (qual);
qual_wfl = QUAL_WFL (qual);
if (TREE_CODE (qual_wfl) == CALL_EXPR)