tree.c, tree.h (build_parse_node): Remove; was identical to build_nt.
[gcc.git] / gcc / tree.h
index 17f09a13acf37094320c41483d88b946bacadb87..1ff74410a94fa71ff315bbcc7b3faa5f5fed0f83 100644 (file)
@@ -713,7 +713,7 @@ struct tree_string
   struct rtx_def *rtl; /* acts as link to register transfer language
                                   (rtl) info */
   int length;
-  char *pointer;
+  const char *pointer;
 };
 
 /* In a COMPLEX_CST node.  */
@@ -1715,6 +1715,7 @@ enum tree_index
     
   TI_INTEGER_ZERO,
   TI_INTEGER_ONE,
+  TI_INTEGER_MINUS_ONE,
   TI_NULL_POINTER,
 
   TI_SIZE_ZERO,
@@ -1739,6 +1740,8 @@ enum tree_index
   TI_PTRDIFF_TYPE,
   TI_VA_LIST_TYPE,
 
+  TI_VOID_LIST_NODE,
+
   TI_V4SF_TYPE,
   TI_V4SI_TYPE,
   TI_V8QI_TYPE,
@@ -1768,6 +1771,7 @@ extern tree global_trees[TI_MAX];
 
 #define integer_zero_node              global_trees[TI_INTEGER_ZERO]
 #define integer_one_node               global_trees[TI_INTEGER_ONE]
+#define integer_minus_one_node         global_trees[TI_INTEGER_MINUS_ONE]
 #define size_zero_node                 global_trees[TI_SIZE_ZERO]
 #define size_one_node                  global_trees[TI_SIZE_ONE]
 #define bitsize_zero_node              global_trees[TI_BITSIZE_ZERO]
@@ -1793,6 +1797,13 @@ extern tree global_trees[TI_MAX];
 #define ptrdiff_type_node              global_trees[TI_PTRDIFF_TYPE]
 #define va_list_type_node              global_trees[TI_VA_LIST_TYPE]
 
+/* The node that should be placed at the end of a parameter list to
+   indicate that the function does not take a variable number of
+   arguments.  The TREE_VALUE will be void_type_node and there will be
+   no TREE_CHAIN.  Language-independent code should not assume
+   anything else about this node.  */
+#define void_list_node                  global_trees[TI_VOID_LIST_NODE]
+
 #define main_identifier_node           global_trees[TI_MAIN_IDENTIFIER]
 #define MAIN_NAME_P(NODE) (IDENTIFIER_NODE_CHECK (NODE) == main_identifier_node)
 
@@ -1852,6 +1863,10 @@ extern tree integer_types[itk_none];
 extern int exact_log2_wide             PARAMS ((unsigned HOST_WIDE_INT));
 extern int floor_log2_wide             PARAMS ((unsigned HOST_WIDE_INT));
 
+/* Approximate positive square root of a host double.  This is for
+   statistical reports, not code generation.  */
+extern double approx_sqrt              PARAMS ((double));
+
 extern char *permalloc                 PARAMS ((int));
 extern char *expralloc                 PARAMS ((int));
 
@@ -1900,7 +1915,6 @@ extern tree maybe_get_identifier  PARAMS ((const char *));
 
 extern tree build                      PARAMS ((enum tree_code, tree, ...));
 extern tree build_nt                   PARAMS ((enum tree_code, ...));
-extern tree build_parse_node           PARAMS ((enum tree_code, ...));
 
 extern tree build_int_2_wide           PARAMS ((unsigned HOST_WIDE_INT, HOST_WIDE_INT));
 extern tree build_real                 PARAMS ((tree, REAL_VALUE_TYPE));
@@ -1923,6 +1937,7 @@ extern tree signed_or_unsigned_type       PARAMS ((int, tree));
 extern void fixup_unsigned_type                PARAMS ((tree));
 extern tree build_pointer_type         PARAMS ((tree));
 extern tree build_reference_type       PARAMS ((tree));
+extern tree build_type_no_quals        PARAMS ((tree));
 extern tree build_index_type           PARAMS ((tree));
 extern tree build_index_2_type         PARAMS ((tree, tree));
 extern tree build_array_type           PARAMS ((tree, tree));
@@ -2250,7 +2265,11 @@ extern void (*lang_unsave_expr_now)     PARAMS ((tree));
 /* Return 0 if it is safe to evaluate EXPR multiple times,
    return 1 if it is safe if EXPR is unsaved afterward, or
    return 2 if it is completely unsafe.  */
-extern int unsafe_for_reeval PARAMS ((tree));
+extern int unsafe_for_reeval           PARAMS ((tree));
+
+/* If non-null, these are language-specific helper functions for
+   unsafe_for_reeval.  Return negative to not handle some tree.  */
+extern int (*lang_unsafe_for_reeval)   PARAMS ((tree));
 
 /* Return 1 if EXP contains a PLACEHOLDER_EXPR; i.e., if it represents a size
    or offset that depends on a field within a record.
@@ -2460,8 +2479,10 @@ extern void expand_start_else                    PARAMS ((void));
 extern void expand_start_elseif                        PARAMS ((tree));
 extern struct nesting *expand_start_loop       PARAMS ((int));
 extern struct nesting *expand_start_loop_continue_elsewhere    PARAMS ((int));
+extern struct nesting *expand_start_null_loop  PARAMS ((void));
 extern void expand_loop_continue_here          PARAMS ((void));
 extern void expand_end_loop                    PARAMS ((void));
+extern void expand_end_null_loop               PARAMS ((void));
 extern int expand_continue_loop                        PARAMS ((struct nesting *));
 extern int expand_exit_loop                    PARAMS ((struct nesting *));
 extern int expand_exit_loop_if_false           PARAMS ((struct nesting *,
@@ -2548,22 +2569,15 @@ extern tree invert_truthvalue   PARAMS ((tree));
    change.  Required by any language that supports variadic arguments.  */
 
 extern tree (*lang_type_promotes_to)   PARAMS ((tree));
+extern tree fold_builtin               PARAMS ((tree));
 \f
 /* The language front-end must define these functions.  */
 
-/* Function of no arguments for initializing options.  */
-extern void lang_init_options                  PARAMS ((void));
-
 /* Function of no arguments for initializing lexical scanning.  */
 extern void init_lex                           PARAMS ((void));
 /* Function of no arguments for initializing the symbol table.  */
 extern void init_decl_processing               PARAMS ((void));
 
-/* Functions called with no arguments at the beginning and end or processing
-   the input source file.  */
-extern void lang_init                          PARAMS ((void));
-extern void lang_finish                                PARAMS ((void));
-
 /* Function to identify which front-end produced the output file. */
 extern const char *lang_identify                       PARAMS ((void));
 
@@ -2576,11 +2590,6 @@ extern void copy_lang_decl                       PARAMS ((tree));
 
 /* Function called with no arguments to parse and compile the input.  */
 extern int yyparse                             PARAMS ((void));
-/* Function called with option as argument
-   to decode options starting with -f or -W or +.
-   It should return nonzero if it handles the option.  */
-extern int lang_decode_option                  PARAMS ((int, char **));
-
 /* Functions for processing symbol declarations.  */
 /* Function to enter a new lexical scope.
    Takes one argument: always zero when called from outside the front end.  */
@@ -2611,6 +2620,10 @@ extern void rest_of_type_compilation PARAMS ((tree, int));
 /* In alias.c */
 extern void record_component_aliases           PARAMS ((tree));
 extern HOST_WIDE_INT get_alias_set             PARAMS ((tree));
+extern int alias_sets_conflict_p               PARAMS ((HOST_WIDE_INT,
+                                                        HOST_WIDE_INT));
+extern int readonly_fields_p                   PARAMS ((tree));
+extern int objects_must_conflict_p             PARAMS ((tree, tree));
 
 /* In c-common.c */
 extern HOST_WIDE_INT lang_get_alias_set                PARAMS ((tree));
@@ -2637,7 +2650,6 @@ extern tree type_hash_lookup              PARAMS ((unsigned int, tree));
 extern void type_hash_add              PARAMS ((unsigned int, tree));
 extern unsigned int type_hash_list     PARAMS ((tree));
 extern int simple_cst_list_equal       PARAMS ((tree, tree));
-extern void init_tree_codes            PARAMS ((void));
 extern void dump_tree_statistics       PARAMS ((void));
 extern void print_obstack_statistics   PARAMS ((const char *,
                                                struct obstack *));
@@ -2655,6 +2667,7 @@ extern void gcc_obstack_init              PARAMS ((struct obstack *));
 extern void init_obstacks              PARAMS ((void));
 extern void build_common_tree_nodes    PARAMS ((int));
 extern void build_common_tree_nodes_2  PARAMS ((int));
+extern void mark_tree_hashtable         PARAMS ((void *));
 
 /* In function.c */
 extern void setjmp_protect_args                PARAMS ((void));
@@ -2755,7 +2768,7 @@ extern void set_yydebug                   PARAMS ((int));
 extern void fixup_signed_type          PARAMS ((tree));
 
 /* varasm.c */
-extern void make_decl_rtl              PARAMS ((tree, const char *, int));
+extern void make_decl_rtl              PARAMS ((tree, const char *));
 extern void make_decl_one_only         PARAMS ((tree));
 extern int supports_one_only           PARAMS ((void));
 extern void variable_section           PARAMS ((tree, int));