Removed possibly forgotten A68_GLOBAL_CONTEXT and get_global_context in favor of the language specific a68_range_context function.
The builtin initialization was using the global context through pushdecl function, which although not an immediate problem seems to be incorrect. Signed-off-by: Cupertino Miranda <[email protected]> gcc/algol68/ChangeLog * a68-lang.cc (a68_init): Anticipate the execution of a68_init_ranges. (get_global_context): Removed function. (pushdecl): Replace call to get_global_context by a68_range_context. * a68.h: Remove A68_GLOBAL_CONTEXT macro. --- gcc/algol68/a68-lang.cc | 21 ++++----------------- gcc/algol68/a68.h | 1 - 2 files changed, 4 insertions(+), 18 deletions(-) diff --git a/gcc/algol68/a68-lang.cc b/gcc/algol68/a68-lang.cc index 1cefb08c5ab..77ddbf08788 100644 --- a/gcc/algol68/a68-lang.cc +++ b/gcc/algol68/a68-lang.cc @@ -222,14 +222,15 @@ a68_build_a68_type_nodes (void) static bool a68_init (void) { + /* Initialize binding contexts. */ + a68_init_ranges (); + build_common_tree_nodes (false); a68_build_a68_type_nodes (); targetm.init_builtins (); build_common_builtin_nodes (); a68_install_builtins (); - /* Initialize binding contexts. */ - a68_init_ranges (); /* Set the type of size_t. */ if (TYPE_MODE (long_unsigned_type_node) == ptr_mode) @@ -399,20 +400,6 @@ a68_getdecls (void) #undef LANG_HOOKS_GETDECLS #define LANG_HOOKS_GETDECLS a68_getdecls -/* Return A68_GLOBAL_CONTEXT, but create it first if need be. */ - -static tree -get_global_context (void) -{ - if (!A68_GLOBAL_CONTEXT) - { - A68_GLOBAL_CONTEXT = build_translation_unit_decl (NULL_TREE); - debug_hooks->register_main_translation_unit (A68_GLOBAL_CONTEXT); - } - - return A68_GLOBAL_CONTEXT; -} - /* Implements the lang_hooks.decls.pushdecl routine. Record DECL as belonging to the current lexical scope. */ @@ -426,7 +413,7 @@ pushdecl (tree decl) if (current_function_decl) DECL_CONTEXT (decl) = current_function_decl; else - DECL_CONTEXT (decl) = get_global_context (); + DECL_CONTEXT (decl) = a68_range_context (); } /* Put decls on list in reverse order. */ diff --git a/gcc/algol68/a68.h b/gcc/algol68/a68.h index 7130cd0948a..90f5467cf65 100644 --- a/gcc/algol68/a68.h +++ b/gcc/algol68/a68.h @@ -144,7 +144,6 @@ extern GTY(()) A68_T a68_common; #define A68_GLOBAL_TREES A68 (global_trees) #define A68_PARSER(Z) (A68 (parser_state).Z) #define A68_MODULE_DEFINITION_DECLS A68 (module_definition_decls) -#define A68_GLOBAL_CONTEXT A68 (global_context) #define A68_GLOBAL_DECLARATIONS A68 (global_declarations) /* Particular pre-defined modes. */ -- 2.47.3
