OSDN Git Service

* config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
[pf3gnuchains/gcc-fork.git] / gcc / c-common.h
index 263b227..aab0e33 100644 (file)
@@ -33,6 +33,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
       DECL_PRETTY_FUNCTION_P (in VAR_DECL)
       NEW_FOR_SCOPE_P (in FOR_STMT)
       ASM_INPUT_P (in ASM_STMT)
+      STMT_EXPR_NO_SCOPE (in STMT_EXPR)
    1: C_DECLARED_LABEL_FLAG (in LABEL_DECL)
       STMT_IS_FULL_EXPR_P (in _STMT)
    2: STMT_LINENO_FOR_FN_P (in _STMT)
@@ -57,7 +58,7 @@ enum rid
   RID_VOLATILE, RID_SIGNED,  RID_AUTO,  RID_RESTRICT,
 
   /* C extensions */
-  RID_BOUNDED, RID_UNBOUNDED, RID_COMPLEX,
+  RID_BOUNDED, RID_UNBOUNDED, RID_COMPLEX, RID_THREAD,
 
   /* C++ */
   RID_FRIEND, RID_VIRTUAL, RID_EXPLICIT, RID_EXPORT, RID_MUTABLE,
@@ -327,6 +328,8 @@ extern tree gettags                         PARAMS ((void));
 extern int (*lang_missing_noreturn_ok_p)       PARAMS ((tree));
 
 extern int yyparse                             PARAMS ((void));
+extern void free_parser_stacks                 PARAMS ((void));
+
 extern stmt_tree current_stmt_tree              PARAMS ((void));
 extern tree *current_scope_stmt_stack           PARAMS ((void));
 extern void begin_stmt_tree                     PARAMS ((tree *));
@@ -375,6 +378,14 @@ extern c_language_kind c_language;
 /* Nonzero if prepreprocessing only.  */
 extern int flag_preprocess_only;
 
+/* Nonzero if an ISO standard was selected.  It rejects macros in the
+   user's namespace.  */
+extern int flag_iso;
+
+/* Nonzero if -undef was given.  It suppresses target built-in macros
+   and assertions.  */
+extern int flag_undef;
+
 /* Nonzero means give string constants the type `const char *', rather
    than `char *'.  */
 
@@ -388,6 +399,9 @@ extern int flag_short_double;
 
 extern int flag_short_wchar;
 
+/* Nonzero means warn about use of multicharacter literals.  */
+extern int warn_multichar;
+
 /* Warn about *printf or *scanf format/argument anomalies.  */
 
 extern int warn_format;
@@ -400,6 +414,10 @@ extern int warn_format_y2k;
 
 extern int warn_format_extra_args;
 
+/* Warn about zero-length formats.  */
+
+extern int warn_format_zero_length;
+
 /* Warn about non-literal format arguments.  */
 
 extern int warn_format_nonliteral;
@@ -408,6 +426,11 @@ extern int warn_format_nonliteral;
 
 extern int warn_format_security;
 
+/* Warn about NULL being passed to argument slots marked as requiring
+   non-NULL.  */
+
+extern int warn_nonnull;
+
 /* Warn about possible violations of sequence point rules.  */
 
 extern int warn_sequence_point;
@@ -483,6 +506,10 @@ extern int warn_long_long;
    what operator was specified for it.  */
 #define C_EXP_ORIGINAL_CODE(exp) ((enum tree_code) TREE_COMPLEXITY (exp))
 
+/* Attribute table common to the C front ends.  */
+extern const struct attribute_spec c_common_attribute_table[];
+extern const struct attribute_spec c_common_format_attribute_table[];
+
 /* Pointer to function to lazily generate the VAR_DECL for __FUNCTION__ etc.
    ID is the identifier to use, NAME is the string.
    TYPE_DEP indicates whether it depends on type of the function or not
@@ -500,6 +527,12 @@ extern const char *fname_as_string         PARAMS ((int));
 extern tree fname_decl                         PARAMS ((unsigned, tree));
 extern const char *fname_string                        PARAMS ((unsigned));
 
+extern void check_function_arguments           PARAMS ((tree, tree));
+extern void check_function_arguments_recurse   PARAMS ((void (*) (void *,
+                                                                  tree,
+                                                                  unsigned HOST_WIDE_INT),
+                                                        void *, tree,
+                                                        unsigned HOST_WIDE_INT));
 extern void check_function_format              PARAMS ((int *, tree, tree));
 extern void set_Wformat                                PARAMS ((int));
 extern tree handle_format_attribute            PARAMS ((tree *, tree, tree,
@@ -510,6 +543,10 @@ extern void c_common_insert_default_attributes     PARAMS ((tree));
 extern tree c_common_type_for_mode             PARAMS ((enum machine_mode,
                                                         int));
 extern tree c_common_type_for_size             PARAMS ((unsigned int, int));
+extern tree c_common_unsigned_type             PARAMS ((tree));
+extern tree c_common_signed_type               PARAMS ((tree));
+extern tree c_common_signed_or_unsigned_type   PARAMS ((int, tree));
+extern tree c_common_truthvalue_conversion     PARAMS ((tree));
 extern void c_apply_type_quals_to_decl         PARAMS ((int, tree));
 extern tree c_sizeof                           PARAMS ((tree));
 extern tree c_alignof                          PARAMS ((tree));
@@ -521,12 +558,13 @@ extern tree c_expand_expr_stmt                    PARAMS ((tree));
 extern void c_expand_start_cond                        PARAMS ((tree, int, tree));
 extern void c_finish_then                       PARAMS ((void));
 extern void c_expand_start_else                        PARAMS ((void));
-extern void c_finish_else                   PARAMS ((void));
+extern void c_finish_else                      PARAMS ((void));
 extern void c_expand_end_cond                  PARAMS ((void));
 /* Validate the expression after `case' and apply default promotions.  */
 extern tree check_case_value                   PARAMS ((tree));
-/* Concatenate a list of STRING_CST nodes into one STRING_CST.  */
-extern tree combine_strings                    PARAMS ((tree));
+extern tree fix_string_type                    PARAMS ((tree));
+struct varray_head_tag;
+extern tree combine_strings            PARAMS ((struct varray_head_tag *));
 extern void constant_expression_warning                PARAMS ((tree));
 extern tree convert_and_check                  PARAMS ((tree, tree));
 extern void overflow_warning                   PARAMS ((tree));
@@ -559,11 +597,10 @@ 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 void c_common_parse_file                        PARAMS ((void));
+extern void c_common_parse_file                        PARAMS ((int));
 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));
 extern tree strip_array_types                   PARAMS ((tree));
 
 /* These macros provide convenient access to the various _STMT nodes.  */
@@ -650,6 +687,10 @@ extern tree strip_array_types                   PARAMS ((tree));
 /* STMT_EXPR accessor.  */
 #define STMT_EXPR_STMT(NODE)    TREE_OPERAND (STMT_EXPR_CHECK (NODE), 0)
 
+/* Nonzero if this statement-expression does not have an associated scope.  */
+#define STMT_EXPR_NO_SCOPE(NODE) \
+   TREE_LANG_FLAG_0 (STMT_EXPR_CHECK (NODE))
+
 /* LABEL_STMT accessor. This gives access to the label associated with
    the given label statement.  */
 #define LABEL_STMT_LABEL(NODE)  TREE_OPERAND (LABEL_STMT_CHECK (NODE), 0)
@@ -762,7 +803,7 @@ extern void genrtl_compound_stmt                PARAMS ((tree));
 extern void genrtl_asm_stmt                     PARAMS ((tree, tree,
                                                         tree, tree,
                                                         tree, int));
-extern void genrtl_decl_cleanup                 PARAMS ((tree, tree));
+extern void genrtl_decl_cleanup                 PARAMS ((tree));
 extern int stmts_are_full_exprs_p               PARAMS ((void));
 extern int anon_aggr_type_p                     PARAMS ((tree));
 
@@ -855,6 +896,8 @@ extern int c_staticp                            PARAMS ((tree));
 
 extern int c_common_unsafe_for_reeval          PARAMS ((tree));
 
+extern const char *init_c_lex                  PARAMS ((const char *));
+
 /* Information recorded about each file examined during compilation.  */
 
 struct c_fileinfo