diff options
Diffstat (limited to 'gcc/java/expr.c')
-rw-r--r-- | gcc/java/expr.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/java/expr.c b/gcc/java/expr.c index 9a583b1..886c0cd 100644 --- a/gcc/java/expr.c +++ b/gcc/java/expr.c @@ -1087,7 +1087,8 @@ build_instanceof (value, type) value, boolean_true_node, boolean_false_node); } - else if (! CLASS_INTERFACE (valclass) + else if (DECL_P (klass) && DECL_P (valclass) + && ! CLASS_INTERFACE (valclass) && ! CLASS_INTERFACE (klass) && ! inherits_from_p (type, valtype) && (CLASS_FINAL (klass) @@ -1097,7 +1098,7 @@ build_instanceof (value, type) tree, so we immediately know the answer. */ expr = boolean_false_node; } - else if (CLASS_FINAL (klass)) + else if (DECL_P (klass) && CLASS_FINAL (klass)) { tree save = save_expr (value); expr = build (COND_EXPR, itype, |