diff options
author | Richard Henderson <rth@gcc.gnu.org> | 2002-02-02 22:23:37 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2002-02-02 22:23:37 -0800 |
commit | f0c75752a10218b95f31583594dac574626b3062 (patch) | |
tree | d3081a1b3cb01da65223cdcd03a5fd55ecdecda2 /gcc/java/jcf-parse.c | |
parent | d74697b84d79ac7f863e9a65b445ac2e72b59090 (diff) | |
download | gcc-f0c75752a10218b95f31583594dac574626b3062.zip gcc-f0c75752a10218b95f31583594dac574626b3062.tar.gz gcc-f0c75752a10218b95f31583594dac574626b3062.tar.bz2 |
class.c (add_field): Mark static fields external.
* class.c (add_field): Mark static fields external.
(build_class_ref): Remove redundant set.
* parse.y (java_expand_classes): Mark static fields of classes
to be compiled as local.
* jcf-parse.c (parse_class_file): Likewise.
From-SVN: r49458
Diffstat (limited to 'gcc/java/jcf-parse.c')
-rw-r--r-- | gcc/java/jcf-parse.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/gcc/java/jcf-parse.c b/gcc/java/jcf-parse.c index 3e3bd23..e85b578 100644 --- a/gcc/java/jcf-parse.c +++ b/gcc/java/jcf-parse.c @@ -793,7 +793,7 @@ init_outgoing_cpool () static void parse_class_file () { - tree method; + tree method, field; const char *save_input_filename = input_filename; int save_lineno = lineno; @@ -808,8 +808,13 @@ parse_class_file () compiling from class files. */ always_initialize_class_p = 1; - for ( method = TYPE_METHODS (CLASS_TO_HANDLE_TYPE (current_class)); - method != NULL_TREE; method = TREE_CHAIN (method)) + for (field = TYPE_FIELDS (CLASS_TO_HANDLE_TYPE (current_class)); + field != NULL_TREE; field = TREE_CHAIN (field)) + if (FIELD_STATIC (field)) + DECL_EXTERNAL (field) = 0; + + for (method = TYPE_METHODS (CLASS_TO_HANDLE_TYPE (current_class)); + method != NULL_TREE; method = TREE_CHAIN (method)) { JCF *jcf = current_jcf; |