diff options
author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-05-26 15:41:46 +0000 |
---|---|---|
committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-05-26 15:41:46 +0000 |
commit | b8bc917a46b2bf532a7108ed9441a2027469baed (patch) | |
tree | 88690a510261c7f1c3fc40c4ca51027140d15d66 /gcc/java/expr.c | |
parent | efea8179a3a55cb7719ff156ca3bad1789dba86f (diff) |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114135 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/java/expr.c')
-rw-r--r-- | gcc/java/expr.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/java/expr.c b/gcc/java/expr.c index b2e03fc862ec..94f76fdd8c1d 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); |