gcc/java/
* class.c: Remove pending_static_fields.
(add_field): Remove use of pending_static_fields.
(java_write_globals): Remove.
* decl.c (java_mark_class_local): Remove use of
pending_static_fields.
* java-tree.h: Remove pending_static_fields and
java_write_globals.
* jcf-parse.c (java_parse_file): Call global_decl_processing.
* lang.c (LANG_HOOKS_WRITE_GLOBALS): Remove.
@@ -123,10 +123,6 @@ static GTY(()) vec<tree, va_gc> *registered_class;
currently being compiled. */
static GTY(()) tree this_classdollar;
-/* A list of static class fields. This is to emit proper debug
- info for them. */
-vec<tree, va_gc> *pending_static_fields;
-
/* Return the node that most closely represents the class whose name
is IDENT. Start the search from NODE (followed by its siblings).
Return NULL if an appropriate node does not exist. */
@@ -895,8 +891,6 @@ add_field (tree klass, tree name, tree field_type, int flags)
/* Considered external unless we are compiling it into this
object file. */
DECL_EXTERNAL (field) = (is_compiled_class (klass) != 2);
- if (!DECL_EXTERNAL (field))
- vec_safe_push (pending_static_fields, field);
}
return field;
@@ -3273,17 +3267,4 @@ in_same_package (tree name1, tree name2)
return (pkg1 == pkg2);
}
-/* lang_hooks.decls.final_write_globals: perform final processing on
- global variables. */
-
-void
-java_write_globals (void)
-{
- tree *vec = vec_safe_address (pending_static_fields);
- int len = vec_safe_length (pending_static_fields);
- write_global_declarations ();
- emit_debug_global_declarations (vec, len);
- vec_free (pending_static_fields);
-}
-
#include "gt-java-class.h"
@@ -1971,11 +1971,7 @@ java_mark_class_local (tree klass)
for (t = TYPE_FIELDS (klass); t ; t = DECL_CHAIN (t))
if (FIELD_STATIC (t))
- {
- if (DECL_EXTERNAL (t))
- vec_safe_push (pending_static_fields, t);
- java_mark_decl_local (t);
- }
+ java_mark_decl_local (t);
for (t = TYPE_METHODS (klass); t ; t = DECL_CHAIN (t))
if (!METHOD_ABSTRACT (t))
@@ -1194,10 +1194,6 @@ extern void rewrite_reflection_indexes (void *);
int cxx_keyword_p (const char *name, int length);
-extern GTY(()) vec<tree, va_gc> *pending_static_fields;
-
-extern void java_write_globals (void);
-
#define DECL_FINAL(DECL) DECL_LANG_FLAG_3 (DECL)
/* Access flags etc for a method (a FUNCTION_DECL): */
@@ -60,6 +60,7 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
#include "bitmap.h"
#include "target.h"
#include "wide-int.h"
+#include "toplev.h"
#ifdef HAVE_LOCALE_H
#include <locale.h>
@@ -2001,6 +2002,9 @@ java_parse_file (void)
/* Arrange for any necessary initialization to happen. */
java_emit_static_constructor ();
gcc_assert (global_bindings_p ());
+
+ /* Do final processing on globals. */
+ global_decl_processing ();
}
@@ -149,8 +149,6 @@ struct GTY(()) language_function {
#define LANG_HOOKS_DECL_PRINTABLE_NAME lang_printable_name
#undef LANG_HOOKS_PRINT_ERROR_FUNCTION
#define LANG_HOOKS_PRINT_ERROR_FUNCTION java_print_error_function
-#undef LANG_HOOKS_WRITE_GLOBALS
-#define LANG_HOOKS_WRITE_GLOBALS java_write_globals
#undef LANG_HOOKS_TYPE_FOR_MODE
#define LANG_HOOKS_TYPE_FOR_MODE java_type_for_mode