OSDN Git Service

* LANGUAGES: Follow spelling conventions.
[pf3gnuchains/gcc-fork.git] / gcc / tree.h
index 795abeb..ad34098 100644 (file)
@@ -19,8 +19,12 @@ along with GCC; see the file COPYING.  If not, write to the Free
 Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 02111-1307, USA.  */
 
+#ifndef GCC_TREE_H
+#define GCC_TREE_H
+
 #include "machmode.h"
 #include "version.h"
+#include "location.h"
 
 /* Codes of tree nodes */
 
@@ -49,7 +53,7 @@ enum tree_code {
 extern const char tree_code_type[];
 #define TREE_CODE_CLASS(CODE)  tree_code_type[(int) (CODE)]
 
-/* Returns non-zero iff CLASS is the tree-code class of an
+/* Returns nonzero iff CLASS is the tree-code class of an
    expression.  */
 
 #define IS_EXPR_CODE_CLASS(CLASS) \
@@ -722,10 +726,10 @@ struct tree_int_cst GTY(())
 
 #define TREE_CST_RTL(NODE) (CST_OR_CONSTRUCTOR_CHECK (NODE)->real_cst.rtl)
 
-/* In a REAL_CST node.  struct realvaluetype is an opaque entity, with
+/* In a REAL_CST node.  struct real_value is an opaque entity, with
    manipulators defined in real.h.  We don't want tree.h depending on
    real.h and transitively on tm.h.  */
-struct realvaluetype;
+struct real_value;
 
 #define TREE_REAL_CST_PTR(NODE) (REAL_CST_CHECK (NODE)->real_cst.real_cst_ptr)
 #define TREE_REAL_CST(NODE) (*TREE_REAL_CST_PTR (NODE))
@@ -734,7 +738,7 @@ struct tree_real_cst GTY(())
 {
   struct tree_common common;
   rtx rtl;     /* acts as link to register transfer language (rtl) info */
-  struct realvaluetype * real_cst_ptr;
+  struct real_value * real_cst_ptr;
 };
 
 /* In a STRING_CST */
@@ -885,7 +889,7 @@ struct tree_exp GTY(())
   struct tree_common common;
   int complexity;
   tree GTY ((special ("tree_exp"), 
-            length ("TREE_CODE_LENGTH (TREE_CODE ((tree) &%h))"))) 
+            desc ("TREE_CODE ((tree) &%0)"))) 
     operands[1];
 };
 \f
@@ -1371,7 +1375,7 @@ struct tree_type GTY(())
    as DECL_NAME.  It is an IDENTIFIER_NODE.  */
 #define DECL_ASSEMBLER_NAME(NODE) decl_assembler_name (NODE)
 
-/* Returns non-zero if the DECL_ASSEMBLER_NAME for NODE has been set.  If zero,
+/* Returns nonzero if the DECL_ASSEMBLER_NAME for NODE has been set.  If zero,
    the NODE might still have a DECL_ASSEMBLER_NAME -- it just hasn't been set
    yet.  */
 #define DECL_ASSEMBLER_NAME_SET_P(NODE) \
@@ -1449,8 +1453,9 @@ struct tree_type GTY(())
    was.  If the declaration appears in several places (as for a C
    function that is declared first and then defined later), this
    information should refer to the definition.  */
-#define DECL_SOURCE_FILE(NODE) (DECL_CHECK (NODE)->decl.filename)
-#define DECL_SOURCE_LINE(NODE) (DECL_CHECK (NODE)->decl.linenum)
+#define DECL_SOURCE_LOCATION(NODE) (DECL_CHECK (NODE)->decl.locus)
+#define DECL_SOURCE_FILE(NODE) (DECL_SOURCE_LOCATION (NODE).file)
+#define DECL_SOURCE_LINE(NODE) (DECL_SOURCE_LOCATION (NODE).line)
 /* Holds the size of the datum, in bits, as a tree expression.
    Need not be constant.  */
 #define DECL_SIZE(NODE) (DECL_CHECK (NODE)->decl.size)
@@ -1490,7 +1495,7 @@ struct tree_type GTY(())
    : (make_decl_rtl (NODE, NULL), (NODE)->decl.rtl))
 /* Set the DECL_RTL for NODE to RTL.  */
 #define SET_DECL_RTL(NODE, RTL) (DECL_CHECK (NODE)->decl.rtl = (RTL))
-/* Returns non-zero if the DECL_RTL for NODE has already been set.  */
+/* Returns nonzero if the DECL_RTL for NODE has already been set.  */
 #define DECL_RTL_SET_P(NODE)  (DECL_CHECK (NODE)->decl.rtl != NULL)
 /* Copy the RTL from NODE1 to NODE2.  If the RTL was not set for
    NODE1, it will not be set for NODE2; this is a lazy copy.  */
@@ -1603,7 +1608,7 @@ struct tree_type GTY(())
 /* In a FIELD_DECL, indicates this field should be bit-packed.  */
 #define DECL_PACKED(NODE) (FIELD_DECL_CHECK (NODE)->decl.regdecl_flag)
 
-/* In a FUNCTION_DECL with a non-zero DECL_CONTEXT, indicates that a
+/* In a FUNCTION_DECL with a nonzero DECL_CONTEXT, indicates that a
    static chain is not needed.  */
 #define DECL_NO_STATIC_CHAIN(NODE) \
   (FUNCTION_DECL_CHECK (NODE)->decl.regdecl_flag)
@@ -1770,8 +1775,7 @@ struct function;
 struct tree_decl GTY(())
 {
   struct tree_common common;
-  const char *filename;
-  int linenum;
+  location_t locus;
   unsigned int uid;
   tree size;
   ENUM_BITFIELD(machine_mode) mode : 8;
@@ -1964,6 +1968,7 @@ enum tree_index
   TI_UV2SI_TYPE,
   TI_UV2SF_TYPE,
   TI_UV2DI_TYPE,
+  TI_UV1DI_TYPE,
   TI_UV16QI_TYPE,
 
   TI_V4SF_TYPE,
@@ -1976,6 +1981,7 @@ enum tree_index
   TI_V2SF_TYPE,
   TI_V2DF_TYPE,
   TI_V2DI_TYPE,
+  TI_V1DI_TYPE,
   TI_V16QI_TYPE,
 
   TI_MAIN_IDENTIFIER,
@@ -2044,6 +2050,7 @@ extern GTY(()) tree global_trees[TI_MAX];
 #define unsigned_V4HI_type_node                global_trees[TI_UV4HI_TYPE]
 #define unsigned_V2SI_type_node                global_trees[TI_UV2SI_TYPE]
 #define unsigned_V2DI_type_node                global_trees[TI_UV2DI_TYPE]
+#define unsigned_V1DI_type_node                global_trees[TI_UV1DI_TYPE]
 
 #define V16QI_type_node                        global_trees[TI_V16QI_TYPE]
 #define V4SF_type_node                 global_trees[TI_V4SF_TYPE]
@@ -2056,6 +2063,7 @@ extern GTY(()) tree global_trees[TI_MAX];
 #define V2DI_type_node                 global_trees[TI_V2DI_TYPE]
 #define V2DF_type_node                 global_trees[TI_V2DF_TYPE]
 #define V16SF_type_node                        global_trees[TI_V16SF_TYPE]
+#define V1DI_type_node                 global_trees[TI_V1DI_TYPE]
 
 /* An enumeration of the standard C integer types.  These must be
    ordered so that shorter types appear before longer ones, and so
@@ -2102,8 +2110,6 @@ extern GTY(()) tree integer_types[itk_none];
    statistical reports, not code generation.  */
 extern double approx_sqrt              PARAMS ((double));
 
-extern char *permalloc                 PARAMS ((int));
-extern char *expralloc                 PARAMS ((int));
 extern tree decl_assembler_name                PARAMS ((tree));
 
 /* Compute the number of bytes occupied by 'node'.  This routine only
@@ -2311,7 +2317,7 @@ extern tree strip_attrs                   PARAMS ((tree));
 
 extern int valid_machine_attribute     PARAMS ((tree, tree, tree, tree));
 
-/* Given a tree node and a string, return non-zero if the tree node is
+/* Given a tree node and a string, return nonzero if the tree node is
    a valid attribute name for the string.  */
 
 extern int is_attribute_p              PARAMS ((const char *, tree));
@@ -2397,6 +2403,8 @@ typedef struct record_layout_info_s
   /* The static variables (i.e., class variables, as opposed to
      instance variables) encountered in T.  */
   tree pending_statics;
+  /* Bits remaining in the current alignment group */
+  int remaining_in_alignment;
   int packed_maybe_necessary;
 } *record_layout_info;
 
@@ -2508,7 +2516,7 @@ extern void put_pending_sizes             PARAMS ((tree));
 /* If nonzero, an upper limit on alignment of structure fields, in bits.  */
 extern unsigned int maximum_field_alignment;
 
-/* If non-zero, the alignment of a bitstring or (power-)set value, in bits.  */
+/* If nonzero, the alignment of a bitstring or (power-)set value, in bits.  */
 extern unsigned int set_alignment;
 
 /* Concatenate two lists (chains of TREE_LIST nodes) X and Y
@@ -2729,7 +2737,6 @@ extern tree builtin_function              PARAMS ((const char *, tree, int,
                                               const char *, tree));
 \f
 /* In tree.c */
-extern char *perm_calloc                       PARAMS ((int, long));
 extern void clean_symbol_name                  PARAMS ((char *));
 extern tree get_file_function_name_long        PARAMS ((const char *));
 extern tree get_set_constructor_bits           PARAMS ((tree, char *, int));
@@ -2890,7 +2897,7 @@ extern int real_onep                      PARAMS ((tree));
 extern int real_twop                   PARAMS ((tree));
 extern int real_minus_onep             PARAMS ((tree));
 extern void gcc_obstack_init           PARAMS ((struct obstack *));
-extern void init_obstacks              PARAMS ((void));
+extern void init_ttree                 PARAMS ((void));
 extern void build_common_tree_nodes    PARAMS ((int));
 extern void build_common_tree_nodes_2  PARAMS ((int));
 
@@ -2898,7 +2905,6 @@ extern void build_common_tree_nodes_2     PARAMS ((int));
 extern void setjmp_protect_args                PARAMS ((void));
 extern void setjmp_protect             PARAMS ((tree));
 extern void expand_main_function       PARAMS ((void));
-extern void mark_varargs               PARAMS ((void));
 extern void init_dummy_function_start  PARAMS ((void));
 extern void expand_dummy_function_end  PARAMS ((void));
 extern void init_function_for_compilation      PARAMS ((void));
@@ -3101,3 +3107,5 @@ extern const char *dump_flag_name PARAMS ((enum tree_dump_index));
 extern void fancy_abort PARAMS ((const char *, int, const char *))
     ATTRIBUTE_NORETURN;
 #define abort() fancy_abort (__FILE__, __LINE__, __FUNCTION__)
+
+#endif  /* GCC_TREE_H  */