From: bonzini Date: Tue, 11 Mar 2008 16:44:25 +0000 (+0000) Subject: 2008-03-11 Paolo Bonzini X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=commitdiff_plain;h=c616456bb7c56351a421993734fb08ca16191095 2008-03-11 Paolo Bonzini * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete. * langhooks.h (struct lang_hooks): Delete clear_binding_stack member. * toplev.c (compile_file): Don't call it. fortran: 2008-03-11 Paolo Bonzini * f95-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK): Delete. (gfc_be_parse_file): Call clear_binding_stack from here. (gfc_clear_binding_stack): Rename to clear_binding_stack. java: 2008-03-11 Paolo Bonzini * jcf-parse.c (java_parse_file): Assert binding levels are left in order. * lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, java_clear_binding_stack): Delete. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133115 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a2e4e20450d..0c265403fd6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2008-03-11 Paolo Bonzini + + * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete. + * langhooks.h (struct lang_hooks): Delete clear_binding_stack member. + * toplev.c (compile_file): Don't call it. + 2008-03-11 Uros Bizjak PR middle-end/35526 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index e660d9cd8ff..8139d524081 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2008-03-11 Paolo Bonzini + + * f95-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK): Delete. + (gfc_be_parse_file): Call clear_binding_stack from here. + (gfc_clear_binding_stack): Rename to clear_binding_stack. + 2008-03-09 Paul Thomas PR fortran/35474 diff --git a/gcc/fortran/f95-lang.c b/gcc/fortran/f95-lang.c index 7a3e413caf3..52c0a819025 100644 --- a/gcc/fortran/f95-lang.c +++ b/gcc/fortran/f95-lang.c @@ -96,7 +96,7 @@ static bool gfc_mark_addressable (tree); void do_function_end (void); int global_bindings_p (void); void insert_block (tree); -static void gfc_clear_binding_stack (void); +static void clear_binding_stack (void); static void gfc_be_parse_file (int); static alias_set_type gfc_get_alias_set (tree); @@ -111,7 +111,6 @@ static alias_set_type gfc_get_alias_set (tree); #undef LANG_HOOKS_MARK_ADDRESSABLE #undef LANG_HOOKS_TYPE_FOR_MODE #undef LANG_HOOKS_TYPE_FOR_SIZE -#undef LANG_HOOKS_CLEAR_BINDING_STACK #undef LANG_HOOKS_GET_ALIAS_SET #undef LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE #undef LANG_HOOKS_OMP_PREDETERMINED_SHARING @@ -134,7 +133,6 @@ static alias_set_type gfc_get_alias_set (tree); #define LANG_HOOKS_MARK_ADDRESSABLE gfc_mark_addressable #define LANG_HOOKS_TYPE_FOR_MODE gfc_type_for_mode #define LANG_HOOKS_TYPE_FOR_SIZE gfc_type_for_size -#define LANG_HOOKS_CLEAR_BINDING_STACK gfc_clear_binding_stack #define LANG_HOOKS_GET_ALIAS_SET gfc_get_alias_set #define LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE gfc_omp_privatize_by_reference #define LANG_HOOKS_OMP_PREDETERMINED_SHARING gfc_omp_predetermined_sharing @@ -268,6 +266,8 @@ gfc_be_parse_file (int set_yydebug ATTRIBUTE_UNUSED) gfc_get_errors (&warnings, &errors); errorcount += errors; warningcount += warnings; + + clear_binding_stack (); } @@ -536,7 +536,7 @@ pushdecl_top_level (tree x) /* Clear the binding stack. */ static void -gfc_clear_binding_stack (void) +clear_binding_stack (void) { while (!global_bindings_p ()) poplevel (0, 0, 0); diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index a27c1cbe661..f783e53a250 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,10 @@ +2008-03-11 Paolo Bonzini + + * jcf-parse.c (java_parse_file): Assert binding levels are + left in order. + * lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, java_clear_binding_stack): + Delete. + 2008-03-02 Jakub Jelinek * jcf-dump.c (version): Update copyright notice dates. diff --git a/gcc/java/jcf-parse.c b/gcc/java/jcf-parse.c index 3350191dc34..b96798ec68b 100644 --- a/gcc/java/jcf-parse.c +++ b/gcc/java/jcf-parse.c @@ -1702,6 +1702,7 @@ java_emit_static_constructor (void) cgraph_build_static_cdtor ('I', body, DEFAULT_INIT_PRIORITY); } + void java_parse_file (int set_yydebug ATTRIBUTE_UNUSED) { @@ -1952,6 +1953,7 @@ java_parse_file (int set_yydebug ATTRIBUTE_UNUSED) finish: /* Arrange for any necessary initialization to happen. */ java_emit_static_constructor (); + gcc_assert (global_bindings_p ()); /* Only finalize the compilation unit after we've told cgraph which functions have their addresses stored. */ diff --git a/gcc/java/lang.c b/gcc/java/lang.c index 76b024ce822..fa9811443e2 100644 --- a/gcc/java/lang.c +++ b/gcc/java/lang.c @@ -62,7 +62,6 @@ static bool java_dump_tree (void *, tree); static void dump_compound_expr (dump_info_p, tree); static bool java_decl_ok_for_sibcall (const_tree); static tree java_get_callee_fndecl (const_tree); -static void java_clear_binding_stack (void); static enum classify_record java_classify_record (tree type); @@ -197,9 +196,6 @@ struct language_function GTY(()) #undef LANG_HOOKS_GET_CALLEE_FNDECL #define LANG_HOOKS_GET_CALLEE_FNDECL java_get_callee_fndecl -#undef LANG_HOOKS_CLEAR_BINDING_STACK -#define LANG_HOOKS_CLEAR_BINDING_STACK java_clear_binding_stack - #undef LANG_HOOKS_SET_DECL_ASSEMBLER_NAME #define LANG_HOOKS_SET_DECL_ASSEMBLER_NAME java_mangle_decl @@ -949,14 +945,6 @@ java_get_callee_fndecl (const_tree call_expr) } -/* Clear the binding stack. */ -static void -java_clear_binding_stack (void) -{ - while (!global_bindings_p ()) - poplevel (0, 0, 0); -} - static enum classify_record java_classify_record (tree type) { diff --git a/gcc/langhooks-def.h b/gcc/langhooks-def.h index 21e17440042..9f2cc71a431 100644 --- a/gcc/langhooks-def.h +++ b/gcc/langhooks-def.h @@ -85,7 +85,6 @@ extern void lhd_omp_firstprivatize_type_sizes (struct gimplify_omp_ctx *, #define LANG_HOOKS_INIT hook_bool_void_false #define LANG_HOOKS_FINISH lhd_do_nothing #define LANG_HOOKS_PARSE_FILE lhd_do_nothing_i -#define LANG_HOOKS_CLEAR_BINDING_STACK lhd_do_nothing #define LANG_HOOKS_INIT_OPTIONS hook_uint_uint_constcharptrptr_0 #define LANG_HOOKS_INITIALIZE_DIAGNOSTICS lhd_initialize_diagnostics #define LANG_HOOKS_HANDLE_OPTION hook_int_size_t_constcharptr_int_0 @@ -250,7 +249,6 @@ extern tree lhd_make_node (enum tree_code); LANG_HOOKS_INIT, \ LANG_HOOKS_FINISH, \ LANG_HOOKS_PARSE_FILE, \ - LANG_HOOKS_CLEAR_BINDING_STACK, \ LANG_HOOKS_GET_ALIAS_SET, \ LANG_HOOKS_EXPAND_EXPR, \ LANG_HOOKS_EXPAND_DECL, \ diff --git a/gcc/langhooks.h b/gcc/langhooks.h index bbbcc6808c0..9da60f11b23 100644 --- a/gcc/langhooks.h +++ b/gcc/langhooks.h @@ -294,9 +294,6 @@ struct lang_hooks parsers to dump debugging information during parsing. */ void (*parse_file) (int); - /* Called immediately after parsing to clear the binding stack. */ - void (*clear_binding_stack) (void); - /* Called to obtain the alias set to be used for an expression or type. Returns -1 if the language does nothing special for it. */ alias_set_type (*get_alias_set) (tree); diff --git a/gcc/toplev.c b/gcc/toplev.c index 58c19c5d37d..12777aa0a4b 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -958,10 +958,6 @@ compile_file (void) rest_of_compilation for each function). */ lang_hooks.parse_file (set_yydebug); - /* In case there were missing block closers, - get us back to the global binding level. */ - lang_hooks.clear_binding_stack (); - /* Compilation is now finished except for writing what's left of the symbol table output. */ timevar_pop (TV_PARSE);