aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/verify-impl.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/verify-impl.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/verify-impl.c')
-rw-r--r--gcc/java/verify-impl.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/java/verify-impl.c b/gcc/java/verify-impl.c
index f672fcf..886dfe7 100644
--- a/gcc/java/verify-impl.c
+++ b/gcc/java/verify-impl.c
@@ -1975,6 +1975,10 @@ check_constant (int index)
init_type_from_tag (&t, int_type);
else if (vfy_tag (pool, index) == JV_CONSTANT_Float)
init_type_from_tag (&t, float_type);
+ else if (vfy_tag (pool, index) == JV_CONSTANT_Class
+ || vfy_tag (pool, index) == JV_CONSTANT_ResolvedClass)
+ /* FIXME: should only allow this for 1.5 bytecode. */
+ init_type_from_class (&t, vfy_class_type ());
else
verify_fail_pc ("String, int, or float constant expected", vfr->start_PC);
return t;