aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/jcf-parse.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@gcc.gnu.org>2002-02-02 22:23:37 -0800
committerRichard Henderson <rth@gcc.gnu.org>2002-02-02 22:23:37 -0800
commitf0c75752a10218b95f31583594dac574626b3062 (patch)
treed3081a1b3cb01da65223cdcd03a5fd55ecdecda2 /gcc/java/jcf-parse.c
parentd74697b84d79ac7f863e9a65b445ac2e72b59090 (diff)
downloadgcc-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.c11
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;