OSDN Git Service

* stor-layout.c (layout_decl): Unshare size expressions copied
[pf3gnuchains/gcc-fork.git] / gcc / function.h
index 5ac7731..1c32c9f 100644 (file)
@@ -147,9 +147,6 @@ struct expr_status GTY(())
 
   /* List of labels that must never be deleted.  */
   rtx x_forced_labels;
-
-  /* Postincrements that still need to be expanded.  */
-  rtx x_pending_chain;
 };
 
 #define pending_stack_adjust (cfun->expr->x_pending_stack_adjust)
@@ -157,7 +154,6 @@ struct expr_status GTY(())
 #define saveregs_value (cfun->expr->x_saveregs_value)
 #define apply_args_value (cfun->expr->x_apply_args_value)
 #define forced_labels (cfun->expr->x_forced_labels)
-#define pending_chain (cfun->expr->x_pending_chain)
 #define stack_pointer_delta (cfun->expr->x_stack_pointer_delta)
 
 /* This structure can save all the important global and static variables
@@ -166,7 +162,6 @@ struct expr_status GTY(())
 struct function GTY(())
 {
   struct eh_status *eh;
-  struct stmt_status *stmt;
   struct expr_status *expr;
   struct emit_status *emit;
   struct varasm_status *varasm;
@@ -177,6 +172,7 @@ struct function GTY(())
      inlining */
   tree saved_tree;
   tree saved_args;
+  tree saved_static_chain_decl;
 
   /* For function.c.  */
 
@@ -258,7 +254,7 @@ struct function GTY(())
      If stack grows up, this is the address for the next slot.  */
   HOST_WIDE_INT x_frame_offset;
 
-  /* A VAR_DECL that should contain the static chain for this function.
+  /* A PARM_DECL that should contain the static chain for this function.
      It will be initialized at the beginning of the function.  */
   tree static_chain_decl;
 
@@ -279,15 +275,6 @@ struct function GTY(())
   /* Current nesting level for temporaries.  */
   int x_temp_slot_level;
 
-  /* Current nesting level for variables in a block.  */
-  int x_var_temp_slot_level;
-
-  /* When temporaries are created by TARGET_EXPRs, they are created at
-     this level of temp_slot_level, so that they can remain allocated
-     until no longer needed.  CLEANUP_POINT_EXPRs define the lifetime
-     of TARGET_EXPRs.  */
-  int x_target_temp_slot_level;
-
   /* This slot is initialized as 0 and is added to
      during the nested function.  */
   struct var_refs_queue *fixup_var_refs_queue;
@@ -308,9 +295,9 @@ struct function GTY(())
   /* tm.h can use this to store whatever it likes.  */
   struct machine_function * GTY ((maybe_undef)) machine;
   /* The largest alignment of slot allocated on the stack.  */
-  int stack_alignment_needed;
+  unsigned int stack_alignment_needed;
   /* Preferred alignment of the end of stack frame.  */
-  int preferred_stack_boundary;
+  unsigned int preferred_stack_boundary;
   /* Set when the call to function itself has been emit.  */
   bool recursive_call_emit;
   /* Set when the tail call has been produced.  */
@@ -370,9 +357,6 @@ struct function GTY(())
   /* Nonzero if function being compiled can call setjmp.  */
   unsigned int calls_setjmp : 1;
 
-  /* Nonzero if function being compiled can call longjmp.  */
-  unsigned int calls_longjmp : 1;
-
   /* Nonzero if function being compiled can call alloca,
      either as a subroutine or builtin.  */
   unsigned int calls_alloca : 1;
@@ -462,7 +446,6 @@ extern int trampolines_created;
 #define current_function_returns_pointer (cfun->returns_pointer)
 #define current_function_calls_setjmp (cfun->calls_setjmp)
 #define current_function_calls_alloca (cfun->calls_alloca)
-#define current_function_calls_longjmp (cfun->calls_longjmp)
 #define current_function_calls_eh_return (cfun->calls_eh_return)
 #define current_function_has_computed_jump (cfun->has_computed_jump)
 #define current_function_contains_functions (cfun->contains_functions)
@@ -495,8 +478,6 @@ extern int trampolines_created;
 #define used_temp_slots (cfun->x_used_temp_slots)
 #define avail_temp_slots (cfun->x_avail_temp_slots)
 #define temp_slot_level (cfun->x_temp_slot_level)
-#define target_temp_slot_level (cfun->x_target_temp_slot_level)
-#define var_temp_slot_level (cfun->x_var_temp_slot_level)
 #define nonlocal_labels (cfun->x_nonlocal_labels)
 #define nonlocal_goto_handler_labels (cfun->x_nonlocal_goto_handler_labels)
 
@@ -531,7 +512,6 @@ extern HOST_WIDE_INT get_func_frame_size (struct function *);
 extern struct machine_function * (*init_machine_status) (void);
 
 /* Save and restore status information for a nested function.  */
-extern void restore_emit_status (struct function *);
 extern void free_after_parsing (struct function *);
 extern void free_after_compilation (struct function *);
 
@@ -558,5 +538,7 @@ extern void do_warn_unused_parameter (tree);
 
 extern bool pass_by_reference (CUMULATIVE_ARGS *, enum machine_mode,
                               tree, bool);
+extern bool reference_callee_copied (CUMULATIVE_ARGS *, enum machine_mode,
+                                    tree, bool);
 
 #endif  /* GCC_FUNCTION_H */