aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/parse.c
diff options
context:
space:
mode:
authorAlexandre Petit-Bianco <apbianco@cygnus.com>1999-04-12 18:32:22 +0000
committerAlexandre Petit-Bianco <apbianco@gcc.gnu.org>1999-04-12 11:32:22 -0700
commitb3edebcf49f3a2f643de2697f6e78f2bb987d7f2 (patch)
treecb881796ef16e33dd83d4aa00bb53794c4f77fe2 /gcc/java/parse.c
parent808ce120ae43633728dd0346abe2c09707b22f27 (diff)
downloadgcc-b3edebcf49f3a2f643de2697f6e78f2bb987d7f2.zip
gcc-b3edebcf49f3a2f643de2697f6e78f2bb987d7f2.tar.gz
gcc-b3edebcf49f3a2f643de2697f6e78f2bb987d7f2.tar.bz2
parse.y (patch_unaryop): Fix ++ operator check on array references.
Mon Apr 12 18:27:32 1999 Alexandre Petit-Bianco <apbianco@cygnus.com> * parse.y (patch_unaryop): Fix ++ operator check on array references. From-SVN: r26382
Diffstat (limited to 'gcc/java/parse.c')
-rw-r--r--gcc/java/parse.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/java/parse.c b/gcc/java/parse.c
index ed25b16..1dd713c 100644
--- a/gcc/java/parse.c
+++ b/gcc/java/parse.c
@@ -12344,9 +12344,12 @@ patch_unaryop (node, wfl_op)
case PREDECREMENT_EXPR:
decl = strip_out_static_field_access_decl (op);
if (!JDECL_P (decl)
- && !((TREE_CODE (decl) == INDIRECT_REF
- || TREE_CODE (decl) == COMPONENT_REF)
- && JPRIMITIVE_TYPE_P (TREE_TYPE (decl))))
+ && TREE_CODE (decl) != COMPONENT_REF
+ && !(flag_emit_class_files && TREE_CODE (decl) == ARRAY_REF)
+ && TREE_CODE (decl) != INDIRECT_REF
+ && !(TREE_CODE (decl) == COMPOUND_EXPR
+ && TREE_OPERAND (decl, 1)
+ && (TREE_CODE (TREE_OPERAND (decl, 1)) == INDIRECT_REF)))
{
tree lvalue;
/* Before screaming, check that we're not in fact trying to