aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/expr.c
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2006-05-26 15:41:46 +0000
committerTom Tromey <tromey@gcc.gnu.org>2006-05-26 15:41:46 +0000
commit153d08d59b0aba73ff4f8a525138ff7a38f0b517 (patch)
tree88690a510261c7f1c3fc40c4ca51027140d15d66 /gcc/java/expr.c
parent7541c31ba2afb0b9e5c7893117d8f63a1a7b0e41 (diff)
downloadgcc-153d08d59b0aba73ff4f8a525138ff7a38f0b517.zip
gcc-153d08d59b0aba73ff4f8a525138ff7a38f0b517.tar.gz
gcc-153d08d59b0aba73ff4f8a525138ff7a38f0b517.tar.bz2
expr.c (java_push_constant_from_pool): Handle 'ldc class'.
* expr.c (java_push_constant_from_pool): Handle 'ldc class'. * verify-glue.c (vfy_class_type): New function. * verify-impl.c (check_constant): Allow 'ldc class'. * verify.h (vfy_class_type): Declare. From-SVN: r114135
Diffstat (limited to 'gcc/java/expr.c')
-rw-r--r--gcc/java/expr.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/java/expr.c b/gcc/java/expr.c
index b2e03fc..94f76fd 100644
--- a/gcc/java/expr.c
+++ b/gcc/java/expr.c
@@ -3117,6 +3117,12 @@ java_push_constant_from_pool (JCF *jcf, int index)
c = build_ref_from_constant_pool (index);
c = convert (promote_type (string_type_node), c);
}
+ else if (JPOOL_TAG (jcf, index) == CONSTANT_Class
+ || JPOOL_TAG (jcf, index) == CONSTANT_ResolvedClass)
+ {
+ tree record = get_class_constant (jcf, index);
+ c = build_class_ref (record);
+ }
else
c = get_constant (jcf, index);
push_value (c);