summaryrefslogtreecommitdiff
path: root/gcc/java
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-12 18:01:23 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-12 18:01:23 +0000
commit2ebbc1ea5c450770dcf1e24767b32448824ade39 (patch)
tree43e2315a9bfe2eea6886b2527680947b7dca0b4f /gcc/java
parent77638b48395919bcf487591334933488eac3d502 (diff)
downloadgcc-2ebbc1ea5c450770dcf1e24767b32448824ade39.tar.gz
* parse.y (qualify_ambiguous_name): Handle case where QUAL_WFL is
a call_expr wrapped in a convert. Fixes PR java/5848. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50659 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/java')
-rw-r--r--gcc/java/ChangeLog5
-rw-r--r--gcc/java/parse.y10
2 files changed, 13 insertions, 2 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 486773904aa..e8b67fc0973 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,8 @@
+2002-03-12 Tom Tromey <tromey@redhat.com>
+
+ * parse.y (qualify_ambiguous_name): Handle case where QUAL_WFL is
+ a call_expr wrapped in a convert. Fixes PR java/5848.
+
2002-03-12 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
* jcf-write.c (write_classfile): Improve error strings.
diff --git a/gcc/java/parse.y b/gcc/java/parse.y
index 925cb74291e..953d0757511 100644
--- a/gcc/java/parse.y
+++ b/gcc/java/parse.y
@@ -11276,11 +11276,17 @@ qualify_ambiguous_name (id)
else if (code == INTEGER_CST)
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 == CONVERT_EXPR
+ && TREE_CODE (TREE_OPERAND (qual_wfl, 0)) == CALL_EXPR
+ && (TREE_CODE (TREE_OPERAND (TREE_OPERAND (qual_wfl, 0), 0))
+ == EXPR_WITH_FILE_LOCATION))
+ name = TREE_OPERAND (TREE_OPERAND (qual_wfl, 0), 0);
+
else if ((code == ARRAY_REF || code == CALL_EXPR || code == MODIFY_EXPR) &&
TREE_CODE (TREE_OPERAND (qual_wfl, 0)) == EXPR_WITH_FILE_LOCATION)
name = EXPR_WFL_NODE (TREE_OPERAND (qual_wfl, 0));