OSDN Git Service

* config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
[pf3gnuchains/gcc-fork.git] / gcc / tree.h
index 029d836..9c426fa 100644 (file)
@@ -1081,6 +1081,9 @@ struct tree_type
 /* VAR_DECL and PARM_DECL reserve the arguments slot
    for language-specific uses.  */
 #define DECL_ARGUMENTS(NODE) (DECL_CHECK (NODE)->decl.arguments)
+/* This field is used to reference anything in decl.result and is meant only
+   for use by the garbage collector.  */
+#define DECL_RESULT_FLD(NODE) (DECL_CHECK (NODE)->decl.result)
 /* In FUNCTION_DECL, holds the decl for the return value.  */
 #define DECL_RESULT(NODE) (FUNCTION_DECL_CHECK (NODE)->decl.result)
 /* For a TYPE_DECL, holds the "original" type.  (TREE_TYPE has the copy.) */
@@ -1250,6 +1253,10 @@ struct tree_type
    not an alias.  */
 #define DECL_IS_MALLOC(NODE) (FUNCTION_DECL_CHECK (NODE)->decl.malloc_flag)
 
+/* Nonzero in a FUNCTION_DECL means this function should be treated
+   as "pure" function (like const function, but may read global memory).  */
+#define DECL_IS_PURE(NODE) (FUNCTION_DECL_CHECK (NODE)->decl.pure_flag)
+
 /* Nonzero in a FIELD_DECL means it is a bit field, and must be accessed
    specially.  */
 #define DECL_BIT_FIELD(NODE) (FIELD_DECL_CHECK (NODE)->decl.bit_field_flag)
@@ -1389,6 +1396,7 @@ struct tree_decl
   unsigned comdat_flag : 1;
   unsigned malloc_flag : 1;
   unsigned no_limit_stack : 1;
+  unsigned pure_flag : 1;
 #ifdef ONLY_INT_FIELDS
   unsigned int built_in_class : 2;
 #else
@@ -1694,6 +1702,7 @@ extern int host_integerp          PARAMS ((tree, int));
 extern HOST_WIDE_INT tree_low_cst      PARAMS ((tree, int));
 extern int tree_int_cst_msb            PARAMS ((tree));
 extern int tree_int_cst_sgn            PARAMS ((tree));
+extern int tree_expr_nonnegative_p             PARAMS ((tree));
 extern int index_type_equal            PARAMS ((tree, tree));
 extern tree get_inner_array_type       PARAMS ((tree));
 
@@ -1799,6 +1808,14 @@ typedef struct record_layout_info
 } *record_layout_info;
 
 extern record_layout_info start_record_layout PARAMS ((tree));
+extern tree bit_from_pos               PARAMS ((tree, tree));
+extern tree byte_from_pos              PARAMS ((tree, tree));
+extern void pos_from_byte              PARAMS ((tree *, tree *, unsigned int,
+                                                tree));
+extern void pos_from_bit               PARAMS ((tree *, tree *, unsigned int,
+                                                tree));
+extern void normalize_offset           PARAMS ((tree *, tree *,
+                                                unsigned int));
 extern tree rli_size_unit_so_far       PARAMS ((record_layout_info));
 extern tree rli_size_so_far            PARAMS ((record_layout_info));
 extern void normalize_rli              PARAMS ((record_layout_info));
@@ -2487,6 +2504,7 @@ extern void init_function_for_compilation PARAMS ((void));
 extern void init_function_start                PARAMS ((tree, char *, int));
 extern void assign_parms               PARAMS ((tree));
 extern void put_var_into_stack         PARAMS ((tree));
+extern void flush_addressof            PARAMS ((tree));
 extern void uninitialized_vars_warning PARAMS ((tree));
 extern void setjmp_args_warning                PARAMS ((void));
 extern void mark_all_temps_used                PARAMS ((void));
@@ -2539,8 +2557,9 @@ extern struct rtx_def *emit_line_note             PARAMS ((const char *, int));
 extern struct rtx_def *emit_line_note_force    PARAMS ((const char *, int));
 
 /* In calls.c */
-extern void special_function_p         PARAMS ((tree, int *, int *,
-                                               int *, int *, int *));
+
+/* Flags used by special_function_p.  */
+extern int setjmp_call_p               PARAMS ((tree));
 
 /* In c-typeck.c */
 extern int mark_addressable            PARAMS ((tree));