diff options
author | Alexandre Petit-Bianco <apbianco@cygnus.com> | 1999-04-12 18:32:22 +0000 |
---|---|---|
committer | Alexandre Petit-Bianco <apbianco@gcc.gnu.org> | 1999-04-12 11:32:22 -0700 |
commit | b3edebcf49f3a2f643de2697f6e78f2bb987d7f2 (patch) | |
tree | cb881796ef16e33dd83d4aa00bb53794c4f77fe2 /gcc/java/parse.c | |
parent | 808ce120ae43633728dd0346abe2c09707b22f27 (diff) | |
download | gcc-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.c | 9 |
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 |