tree.h (immediate_size_expand): Delete.
authorRichard Henderson <rth@redhat.com>
Thu, 1 Jul 2004 00:38:38 +0000 (17:38 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Thu, 1 Jul 2004 00:38:38 +0000 (17:38 -0700)
        * tree.h (immediate_size_expand): Delete.
        * stor-layout.c (immediate_size_expand): Delete.
        (variable_size): Don't look at it.
        * c-decl.c (push_parm_decl): Don't frob immediate_size_expand.
        (start_function): Likewise.
        * cfgexpand.c (construct_exit_block): Likewise.
        * function.c (init_function_start, expand_function_end): Likewise.
        * tree-optimize.c (tree_rest_of_compilation): Likewise.
cp/
        * decl.c (start_preparsed_function): Don't set immediate_size_expand.
        * method.c (use_thunk): Likewise.
fortran/
        * trans-decl.c (gfc_generate_function_code): Don't set
        immediate_size_expand.
        (gfc_generate_constructors): Likewise.

From-SVN: r83946

12 files changed:
gcc/ChangeLog
gcc/c-decl.c
gcc/cfgexpand.c
gcc/cp/ChangeLog
gcc/cp/decl.c
gcc/cp/method.c
gcc/fortran/ChangeLog
gcc/fortran/trans-decl.c
gcc/function.c
gcc/stor-layout.c
gcc/tree-optimize.c
gcc/tree.h

index b013dd69bd3dcaba38112586e3c6867a0d37bbc5..bcf1b222730f160dd642e63e280a564c6c201a87 100644 (file)
@@ -1,3 +1,14 @@
+2004-06-30  Richard Henderson  <rth@redhat.com>
+
+       * tree.h (immediate_size_expand): Delete.
+       * stor-layout.c (immediate_size_expand): Delete.
+       (variable_size): Don't look at it.
+       * c-decl.c (push_parm_decl): Don't frob immediate_size_expand.
+       (start_function): Likewise.
+       * cfgexpand.c (construct_exit_block): Likewise.
+       * function.c (init_function_start, expand_function_end): Likewise.
+       * tree-optimize.c (tree_rest_of_compilation): Likewise.
+
 2004-06-30  Richard Henderson  <rth@redhat.com>
 
        * gimplify.c (gimplify_compound_lval): Take fallback argument
index f5c03f3446762ca8c49b0603b259d9e527271e82..16eb49d26e5066917bf62bd8b88352e8559ca4d8 100644 (file)
@@ -3028,11 +3028,6 @@ push_parm_decl (tree parm)
 {
   tree decl;
 
-  /* Don't attempt to expand sizes while parsing this decl.
-     (We can get here with i_s_e 1 somehow from Objective-C.)  */
-  int save_immediate_size_expand = immediate_size_expand;
-  immediate_size_expand = 0;
-
   decl = grokdeclarator (TREE_VALUE (TREE_PURPOSE (parm)),
                         TREE_PURPOSE (TREE_PURPOSE (parm)),
                         PARM, 0, NULL);
@@ -3041,8 +3036,6 @@ push_parm_decl (tree parm)
   decl = pushdecl (decl);
 
   finish_decl (decl, NULL_TREE, NULL_TREE);
-
-  immediate_size_expand = save_immediate_size_expand;
 }
 
 /* Mark all the parameter declarations to date as forward decls.
@@ -5589,7 +5582,6 @@ start_function (tree declspecs, tree declarator, tree attributes)
 {
   tree decl1, old_decl;
   tree restype;
-  int old_immediate_size_expand = immediate_size_expand;
 
   current_function_returns_value = 0;  /* Assume, until we see it does.  */
   current_function_returns_null = 0;
@@ -5603,18 +5595,12 @@ start_function (tree declspecs, tree declarator, tree attributes)
      error message in c_finish_bc_stmt.  */
   c_break_label = c_cont_label = size_zero_node;
 
-  /* Don't expand any sizes in the return type of the function.  */
-  immediate_size_expand = 0;
-
   decl1 = grokdeclarator (declarator, declspecs, FUNCDEF, 1, NULL);
 
   /* If the declarator is not suitable for a function definition,
      cause a syntax error.  */
   if (decl1 == 0)
-    {
-      immediate_size_expand = old_immediate_size_expand;
-      return 0;
-    }
+    return 0;
 
   decl_attributes (&decl1, attributes, 0);
 
@@ -5793,8 +5779,6 @@ start_function (tree declspecs, tree declarator, tree attributes)
   DECL_RESULT (current_function_decl)
     = build_decl (RESULT_DECL, NULL_TREE, restype);
 
-  immediate_size_expand = old_immediate_size_expand;
-
   start_fname_decls ();
 
   return 1;
@@ -6174,7 +6158,6 @@ store_parm_decls (void)
      call expand_expr to calculate the size of a variable-sized array.
      We haven't necessarily assigned RTL to all variables yet, so it's
      not safe to try to expand expressions involving them.  */
-  immediate_size_expand = 0;
   cfun->x_dont_save_pending_sizes_p = 1;
 }
 \f
index 58592751d6e3af9f4a0903321b1a9330ebd5fc7e..c6505767c66106ba3b9a465e1264a1f874557233 100644 (file)
@@ -311,12 +311,6 @@ construct_exit_block (void)
   basic_block exit_block;
   edge e, e2, next;
 
-  /* We hard-wired immediate_size_expand to zero above.
-     expand_function_end will decrement this variable.  So, we set the
-     variable to one here, so that after the decrement it will remain
-     zero.  */
-  immediate_size_expand = 1;
-
   /* Make sure the locus is set to the end of the function, so that 
      epilogue line numbers and warnings are set properly.  */
 #ifdef USE_MAPPED_LOCATION
index 4d15664a4b372f6ab720e8a6fc4d410b086f7298..2e89bcc0ff8a06e764a635c97d25ad6fd1ed734b 100644 (file)
@@ -1,3 +1,8 @@
+2004-06-30  Richard Henderson  (rth@redhat.com>
+
+       * decl.c (start_preparsed_function): Don't set immediate_size_expand.
+       * method.c (use_thunk): Likewise.
+
 2004-06-30  Joseph S. Myers  <jsm@polyomino.org.uk>
 
        * call.c (build_over_call), typeck.c (build_function_call): Call
index dced875564ad7c11ecbf5960d5d8567556f3a95b..ee7d76f380285475a39a03b44cc9e87e2d3083b8 100644 (file)
@@ -9733,7 +9733,6 @@ start_preparsed_function (tree decl1, tree attrs, int flags)
      call expand_expr to calculate the size of a variable-sized array.
      We haven't necessarily assigned RTL to all variables yet, so it's
      not safe to try to expand expressions involving them.  */
-  immediate_size_expand = 0;
   cfun->x_dont_save_pending_sizes_p = 1;
 
   /* Start the statement-tree, start the tree now.  */
index 774f8c0dff1272efb80b70205baf8ea8a43b70a6..327adc5e803ebad52bf0c957cd332aa6cdc18928 100644 (file)
@@ -430,9 +430,6 @@ use_thunk (tree thunk_fndecl, bool emit_p)
       assemble_end_function (thunk_fndecl, fnname);
       current_function_decl = 0;
       cfun = 0;
-      /* Because init_function_start increments this, we must
-        decrement it.  */
-      immediate_size_expand--;
       TREE_ASM_WRITTEN (thunk_fndecl) = 1;
     }
   else
index 8e65b697e04789cab1329eaaaeb338345bec6aa5..d19b4f5083d82857f3082cd60f74ea8ae05986da 100644 (file)
@@ -1,3 +1,9 @@
+2004-06-30  Richard Henderson  <rth@redhat.com>
+
+       * trans-decl.c (gfc_generate_function_code): Don't set
+       immediate_size_expand.
+       (gfc_generate_constructors): Likewise.
+
 2004-06-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
 
        PR fortran/16161
index e642467168092b3f41d69a9f65191be2f0f73bf3..0b09555e6113392f8abde74397cb407055f48c38 100644 (file)
@@ -2035,7 +2035,6 @@ gfc_generate_function_code (gfc_namespace * ns)
      call expand_expr to calculate the size of a variable-sized array.
      We haven't necessarily assigned RTL to all variables yet, so it's
      not safe to try to expand expressions involving them.  */
-  immediate_size_expand = 0;
   cfun->x_dont_save_pending_sizes_p = 1;
 
   /* Will be created as needed.  */
@@ -2191,8 +2190,6 @@ gfc_generate_constructors (void)
 
   cfun->x_whole_function_mode_p = 1;
 
-  immediate_size_expand = 0;
-
   pushlevel (0);
 
   for (; gfc_static_ctors; gfc_static_ctors = TREE_CHAIN (gfc_static_ctors))
index faa77d9c9606a7c6726405eabe397ca16161cc84..f6c73a64a19b4312b7afcd3706cff30289e08a36 100644 (file)
@@ -6288,9 +6288,6 @@ init_function_start (tree subr)
 {
   prepare_function_start (subr);
 
-  /* Within function body, compute a type's size as soon it is laid out.  */
-  immediate_size_expand++;
-
   /* Prevent ever trying to delete the first instruction of a
      function.  Also tell final how to output a linenum before the
      function prologue.  Note linenums could be missing, e.g. when
@@ -6709,10 +6706,6 @@ expand_function_end (void)
   while (in_sequence_p ())
     end_sequence ();
 
-  /* Outside function body, can't compute type's actual size
-     until next function's body starts.  */
-  immediate_size_expand--;
-
   clear_pending_stack_adjust ();
   do_pending_stack_adjust ();
 
index b2ef41dbda2f473b278f9df5e814bf9939b85dba..94bc46fb564b8614156a5ab4f08ee7f49e4534dc 100644 (file)
@@ -73,11 +73,6 @@ extern void debug_rli (record_layout_info);
 
 static GTY(()) tree pending_sizes;
 
-/* Nonzero means cannot safely call expand_expr now,
-   so put variable sizes onto `pending_sizes' instead.  */
-
-int immediate_size_expand;
-
 /* Show that REFERENCE_TYPES are internal and should be Pmode.  Called only
    by front end.  */
 
@@ -154,7 +149,7 @@ variable_size (tree size)
   if (TREE_CODE (save) == SAVE_EXPR)
     SAVE_EXPR_PERSISTENT_P (save) = 1;
 
-  if (!immediate_size_expand && cfun && cfun->x_dont_save_pending_sizes_p)
+  if (cfun && cfun->x_dont_save_pending_sizes_p)
     /* The front-end doesn't want us to keep a list of the expressions
        that determine sizes for variable size objects.  Trust it.  */
     return size;
@@ -169,10 +164,7 @@ variable_size (tree size)
       return size_one_node;
     }
 
-  if (immediate_size_expand)
-    expand_expr (save, const0_rtx, VOIDmode, 0);
-  else
-    put_pending_size (save);
+  put_pending_size (save);
 
   return size;
 }
index be663bb75fde139e663c997c425c4b2667dd4b79..a4ee979d45f9af0b1bfa6d0814c09a5ec249f1e5 100644 (file)
@@ -474,7 +474,6 @@ tree_rest_of_compilation (tree fndecl, bool nested_p)
      call expand_expr to calculate the size of a variable-sized array.
      We haven't necessarily assigned RTL to all variables yet, so it's
      not safe to try to expand expressions involving them.  */
-  immediate_size_expand = 0;
   cfun->x_dont_save_pending_sizes_p = 1;
 
   node = cgraph_node (fndecl);
index 37534ca822f76033020645ecba2bc5e691da43f6..9890bf8268f56a291f3715d5f0cdde54fc6835de 100644 (file)
@@ -3295,11 +3295,6 @@ extern int real_zerop (tree);
 
 extern int pedantic_lvalues;
 
-/* Nonzero means can safely call expand_expr now;
-   otherwise layout_type puts variable sizes onto `pending_sizes' instead.  */
-
-extern int immediate_size_expand;
-
 /* Points to the FUNCTION_DECL of the function whose body we are reading.  */
 
 extern GTY(()) tree current_function_decl;