diff options
author | Bryce McKinlay <mckinlay@redhat.com> | 2005-09-15 14:13:03 +0000 |
---|---|---|
committer | Bryce McKinlay <bryce@gcc.gnu.org> | 2005-09-15 15:13:03 +0100 |
commit | c629e611eb78853f8ccd85173b758cabbdc0e56b (patch) | |
tree | acb467137b30cf006a229fb261743c29c869d147 /gcc/java/jcf-parse.c | |
parent | ec05ece4b9e0fdcc6afd9d5d89d859cb95ccb321 (diff) | |
download | gcc-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.c | 4 |
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; } } |