OSDN Git Service

2008-03-11 Paolo Bonzini <bonzini@gnu.org>
authorbonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 11 Mar 2008 16:44:25 +0000 (16:44 +0000)
committerbonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 11 Mar 2008 16:44:25 +0000 (16:44 +0000)
        * 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  <bonzini@gnu.org>

        * 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  <bonzini@gnu.org>

        * 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

gcc/ChangeLog
gcc/fortran/ChangeLog
gcc/fortran/f95-lang.c
gcc/java/ChangeLog
gcc/java/jcf-parse.c
gcc/java/lang.c
gcc/langhooks-def.h
gcc/langhooks.h
gcc/toplev.c

index a2e4e20..0c26540 100644 (file)
@@ -1,3 +1,9 @@
+2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
+
+        * 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  <ubizjak@gmail.com>
 
        PR middle-end/35526
index e660d9c..8139d52 100644 (file)
@@ -1,3 +1,9 @@
+2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
+
+        * 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  <pault@gcc.gnu.org>
 
        PR fortran/35474
index 7a3e413..52c0a81 100644 (file)
@@ -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);
index a27c1cb..f783e53 100644 (file)
@@ -1,3 +1,10 @@
+2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
+
+        * 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  <jakub@redhat.com>
 
        * jcf-dump.c (version): Update copyright notice dates.
index 3350191..b96798e 100644 (file)
@@ -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.  */
index 76b024c..fa98114 100644 (file)
@@ -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)
 {
index 21e1744..9f2cc71 100644 (file)
@@ -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, \
index bbbcc68..9da60f1 100644 (file)
@@ -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);
index 58c19c5..12777aa 100644 (file)
@@ -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);