OSDN Git Service

* rtl.h (mem_attrs): Rename decl to expr; adjust all users.
[pf3gnuchains/gcc-fork.git] / gcc / c-common.h
index 89a4ae7..1ce21a1 100644 (file)
@@ -177,7 +177,7 @@ enum c_tree_index
     CTI_MAX
 };
 
-#define C_RID_CODE(id) (((struct c_common_identifier *) (id))->rid_code)
+#define C_RID_CODE(id) (((struct c_common_identifier *) (id))->node.rid_code)
 
 /* Identifier part common to the C front ends.  Inherits from
    tree_identifier, despite appearances.  */
@@ -185,7 +185,6 @@ struct c_common_identifier
 {
   struct tree_common common;
   struct cpp_hashnode node;
-  ENUM_BITFIELD(rid) rid_code: CHAR_BIT;
 };
 
 #define wchar_type_node                        c_global_trees[CTI_WCHAR_TYPE]
@@ -401,6 +400,9 @@ extern int warn_missing_format_attribute;
 
 extern int warn_pointer_arith;
 
+/* Nonzero means to warn about compile-time division by zero.  */
+extern int warn_div_by_zero;
+
 /* Nonzero means do some things the same way PCC does.  */
 
 extern int flag_traditional;
@@ -455,14 +457,6 @@ extern int warn_long_long;
 #define C_TYPE_FUNCTION_P(type) \
   (TREE_CODE (type) == FUNCTION_TYPE)
 
-/* Return the qualifiers that apply to this type.  In C++, that means
-   descending through array types.  Note that this macro evaluates its
-   arguments mor than once.  */
-#define C_TYPE_QUALS(TYPE)                             \
-  (TYPE_QUALS ((TREE_CODE (TYPE) == ARRAY_TYPE         \
-               && c_language == clk_cplusplus)         \
-              ? strip_array_types (TYPE) : TYPE))
-
 /* For convenience we define a single macro to identify the class of
    object or incomplete types.  */
 #define C_TYPE_OBJECT_OR_INCOMPLETE_P(type) \
@@ -536,10 +530,15 @@ extern tree c_build_qualified_type              PARAMS ((tree, int));
    frontends.  */
 extern void c_common_nodes_and_builtins                PARAMS ((void));
 
-extern tree build_va_arg                       PARAMS ((tree, tree));
+extern void disable_builtin_function           PARAMS ((const char *));
 
-extern void c_common_lang_init                 PARAMS ((void));
+extern tree build_va_arg                       PARAMS ((tree, tree));
 
+extern void c_common_init_options              PARAMS ((enum c_language_kind));
+extern void c_common_post_options              PARAMS ((void));
+extern const char *c_common_init               PARAMS ((const char *));
+extern void c_common_finish                    PARAMS ((void));
+extern HOST_WIDE_INT c_common_get_alias_set    PARAMS ((tree));
 extern bool c_promoting_integer_type_p         PARAMS ((tree));
 extern int self_promoting_args_p               PARAMS ((tree));
 extern tree simple_type_promotes_to            PARAMS ((tree));
@@ -553,14 +552,14 @@ extern tree strip_array_types                   PARAMS ((tree));
    will always be false, since there are no destructors.)  */
 #define STMT_IS_FULL_EXPR_P(NODE) TREE_LANG_FLAG_1 ((NODE))
 
-/* IF_STMT accessors. These give access to the condtion of the if
+/* IF_STMT accessors. These give access to the condition of the if
    statement, the then block of the if statement, and the else block
-   of the if stsatement if it exists.  */
+   of the if statement if it exists.  */
 #define IF_COND(NODE)           TREE_OPERAND (IF_STMT_CHECK (NODE), 0)
 #define THEN_CLAUSE(NODE)       TREE_OPERAND (IF_STMT_CHECK (NODE), 1)
 #define ELSE_CLAUSE(NODE)       TREE_OPERAND (IF_STMT_CHECK (NODE), 2)
 
-/* WHILE_STMT accessors. These give access to the condtion of the
+/* WHILE_STMT accessors. These give access to the condition of the
    while statement and the body of the while statement, respectively.  */
 #define WHILE_COND(NODE)        TREE_OPERAND (WHILE_STMT_CHECK (NODE), 0)
 #define WHILE_BODY(NODE)        TREE_OPERAND (WHILE_STMT_CHECK (NODE), 1)
@@ -601,10 +600,12 @@ extern tree strip_array_types                   PARAMS ((tree));
 /* GOTO_STMT accessor. This gives access to the label associated with
    a goto statement.  */
 #define GOTO_DESTINATION(NODE)  TREE_OPERAND (GOTO_STMT_CHECK (NODE), 0)
+/* True for goto created artifically by the compiler.  */
+#define GOTO_FAKE_P(NODE)      (TREE_LANG_FLAG_0 (GOTO_STMT_CHECK (NODE)))
 
 /* COMPOUND_STMT accessor. This gives access to the TREE_LIST of
-   statements assocated with a compound statement. The result is the
-   first statement in the list. Succeeding nodes can be acccessed by
+   statements associated with a compound statement. The result is the
+   first statement in the list. Succeeding nodes can be accessed by
    calling TREE_CHAIN on a node in the list.  */
 #define COMPOUND_BODY(NODE)     TREE_OPERAND (COMPOUND_STMT_CHECK (NODE), 0)
 
@@ -646,7 +647,7 @@ extern tree strip_array_types                   PARAMS ((tree));
   (SCOPE_STMT_BLOCK ((NODE)) == NULL_TREE)
 
 /* Nonzero for a SCOPE_STMT which represents a lexical scope, but
-   which should be treated as non-existant from the point of view of
+   which should be treated as non-existent from the point of view of
    running cleanup actions.  */
 #define SCOPE_NO_CLEANUPS_P(NODE) \
   (TREE_LANG_FLAG_3 (SCOPE_STMT_CHECK (NODE)))
@@ -803,56 +804,17 @@ extern tree lookup_label                  PARAMS ((tree));
    in C.  */
 extern void (*back_end_hook) PARAMS ((tree));
 
-#ifdef RTX_CODE
+/* enum expand_modified is in expr.h, as is the macro below.  */
 
-extern struct rtx_def *c_expand_expr            PARAMS ((tree, rtx,
-                                                        enum machine_mode,
-                                                        enum expand_modifier));
+#ifdef QUEUED_VAR
+extern rtx c_expand_expr            PARAMS ((tree, rtx, enum machine_mode,
+                                            enum expand_modifier));
+#endif
 
 extern int c_safe_from_p                        PARAMS ((rtx, tree));
-#endif
 
 extern int c_unsafe_for_reeval                 PARAMS ((tree));
 
-/* In c-dump.c */
-
-/* Different tree dump places.  When you add new tree dump places,
-   extend the DUMP_FILES array in c-dump.c */
-enum tree_dump_index
-{
-  TDI_all,                     /* dump the whole translation unit */
-  TDI_class,                   /* dump class heirarchy */
-  TDI_original,                        /* dump each function before optimizing it */
-  TDI_optimized,               /* dump each function after optimizing it */
-  TDI_inlined,                 /* dump each function after inlining
-                                  within it.  */
-  TDI_end
-};
-
-/* Bit masks to control tree dumping. Not all values are applicable to
-   all tree dumps. Add new ones at the end. When you define new
-   values, extend the DUMP_OPTIONS array in c-dump.c */
-#define TDF_ADDRESS    (1 << 0)        /* dump node addresses */
-#define TDF_SLIM       (1 << 1)        /* don't go wild following links */
-
-typedef struct dump_info *dump_info_p;
-
-/* A callback function used dump language-specific parts of tree
-   nodes.  Returns non-zero if it does not want the usual dumping of
-   the second argument.  */
-
-typedef int (*dump_tree_fn) PARAMS ((dump_info_p, tree));
-
-extern dump_tree_fn lang_dump_tree;
-
-extern int dump_flag                   PARAMS ((dump_info_p, int, tree));
-extern int dump_enabled_p              PARAMS ((enum tree_dump_index));
-extern FILE *dump_begin                        PARAMS ((enum tree_dump_index, int *));
-extern void dump_end                   PARAMS ((enum tree_dump_index, FILE *));
-extern void dump_node                  PARAMS ((tree, int, FILE *));
-extern int dump_switch_p                PARAMS ((const char *));
-extern const char *dump_flag_name      PARAMS ((enum tree_dump_index));
-
 /* Information recorded about each file examined during compilation.  */
 
 struct c_fileinfo