aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/jcf-parse.c
diff options
context:
space:
mode:
authorBryce McKinlay <mckinlay@redhat.com>2005-09-15 14:13:03 +0000
committerBryce McKinlay <bryce@gcc.gnu.org>2005-09-15 15:13:03 +0100
commitc629e611eb78853f8ccd85173b758cabbdc0e56b (patch)
treeacb467137b30cf006a229fb261743c29c869d147 /gcc/java/jcf-parse.c
parentec05ece4b9e0fdcc6afd9d5d89d859cb95ccb321 (diff)
downloadgcc-c629e611eb78853f8ccd85173b758cabbdc0e56b.zip
gcc-c629e611eb78853f8ccd85173b758cabbdc0e56b.tar.gz
gcc-c629e611eb78853f8ccd85173b758cabbdc0e56b.tar.bz2
re PR java/23891 (Problem folding static fields across packages)
2005-09-14 Bryce McKinlay <mckinlay@redhat.com> PR java/23891 * parse.y (maybe_create_class_interface_decl): Set TYPE_PACKAGE for the newly created type. Set import lists here, not in create_class. (jdep_resolve_class): Set current_class. (do_resolve_class): Use current_class's TYPE_PACKAGE to determine the current package context, not ctxp->package. (cicp_cache): Removed. (class_in_current_package): Simplify implementation using TYPE_PACKAGE. * jcf-parse.c (give_name_to_class): Set TYPE_PACKAGE. * java-tree.h (TYPE_PACKAGE): New macro. (struct lang_type): New member 'package'. From-SVN: r104305
Diffstat (limited to 'gcc/java/jcf-parse.c')
-rw-r--r--gcc/java/jcf-parse.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/java/jcf-parse.c b/gcc/java/jcf-parse.c
index 425dc4d..5d22f88 100644
--- a/gcc/java/jcf-parse.c
+++ b/gcc/java/jcf-parse.c
@@ -444,6 +444,7 @@ give_name_to_class (JCF *jcf, int i)
abort ();
else
{
+ tree package_name = NULL_TREE, tmp;
tree this_class;
int j = JPOOL_USHORT1 (jcf, i);
/* verify_constant_pool confirmed that j is a CONSTANT_Utf8. */
@@ -469,6 +470,9 @@ give_name_to_class (JCF *jcf, int i)
jcf->cpool.data[i].t = this_class;
JPOOL_TAG (jcf, i) = CONSTANT_ResolvedClass;
+ split_qualified_name (&package_name, &tmp,
+ DECL_NAME (TYPE_NAME (this_class)));
+ TYPE_PACKAGE (this_class) = package_name;
return this_class;
}
}