]> gcc.gnu.org Git - gcc.git/blobdiff - gcc/c-tree.h
(assertdir): Use $(tooldir)/include for this.
[gcc.git] / gcc / c-tree.h
index 7b71e2bf88155bf14520278acbe0df16c2ad1897..1450b300efbcce099f8f1aca66c9fce4959d7a4d 100644 (file)
@@ -19,9 +19,13 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 #ifndef _C_TREE_H
 #define _C_TREE_H
-#if 0 /* I fear this may cause failures on some systems,
-        so I turned off the few prototypes that needed it -- rms. */
-#include <stdio.h>
+
+#ifndef STDIO_PROTO
+#ifdef BUFSIZ
+#define STDIO_PROTO(ARGS) PROTO(ARGS)
+#else
+#define STDIO_PROTO(ARGS) ()
+#endif
 #endif
 
 /* Language-dependent contents of an identifier.  */
@@ -137,9 +141,23 @@ struct lang_type
        || TYPE_MAIN_VARIANT (t) == unsigned_char_type_node     \
        || TYPE_MAIN_VARIANT (t) == short_integer_type_node     \
        || TYPE_MAIN_VARIANT (t) == short_unsigned_type_node))
+
+/* In a VAR_DECL, means the variable is really an iterator.  */
+#define ITERATOR_P(D) (DECL_LANG_FLAG_4(D))
+
+/* In a VAR_DECL for an iterator, means we are within
+   an explicit loop over that iterator.  */
+#define ITERATOR_BOUND_P(NODE) ((NODE)->common.readonly_flag)
 \f
-extern int maybe_objc_comptypes                 PROTO((tree, tree));
+/* in c-lang.c and objc-act.c */
+extern tree lookup_interface                   PROTO((tree));
+extern tree is_class_name                      PROTO((tree));
+extern void maybe_objc_check_decl              PROTO((tree));
+extern int maybe_objc_comptypes                 PROTO((tree, tree, int));
 extern tree maybe_building_objc_message_expr    PROTO((void));
+extern tree maybe_objc_method_name             PROTO((tree));
+extern int recognize_objc_keyword              PROTO((void));
+extern tree build_objc_string                  PROTO((int, char *));
 \f
 /* in c-aux-info.c */
 extern void gen_aux_info_record                 PROTO((tree, int, int, int));
@@ -157,14 +175,10 @@ extern void constant_expression_warning         PROTO((tree));
 extern void decl_attributes                     PROTO((tree, tree));
 extern void declare_function_name               PROTO((void));
 extern tree convert_and_check                  PROTO((tree, tree));
-extern void constant_expression_warning                PROTO((tree));
 extern void overflow_warning                   PROTO((tree));
 extern void unsigned_conversion_warning                PROTO((tree, tree));
 /* Read the rest of the current #-directive line.  */
-#if 0
-extern char *get_directive_line                 PROTO((FILE *));
-#endif
-extern char *get_directive_line ();
+extern char *get_directive_line                 STDIO_PROTO((FILE *));
 /* Subroutine of build_binary_op, used for comparison operations.
    See if the operands have both been converted from subword integer types
    and, if so, perhaps change them both back to their original type.  */
@@ -205,6 +219,10 @@ extern tree long_integer_type_node;
 extern tree long_long_integer_type_node;
 extern tree long_long_unsigned_type_node;
 extern tree long_unsigned_type_node;
+extern tree complex_integer_type_node;
+extern tree complex_float_type_node;
+extern tree complex_double_type_node;
+extern tree complex_long_double_type_node;
 extern tree ptr_type_node;
 extern tree ptrdiff_type_node;
 extern tree short_integer_type_node;
@@ -259,6 +277,7 @@ extern void keep_next_level                     PROTO((void));
 extern int  kept_level_p                        PROTO((void));
 extern tree lookup_label                        PROTO((tree));
 extern tree lookup_name                         PROTO((tree));
+extern tree lookup_name_current_level          PROTO((tree));
 extern tree maybe_build_cleanup                 PROTO((tree));
 extern void parmlist_tags_warning               PROTO((void));
 extern void pending_xref_error                  PROTO((void));
@@ -266,9 +285,8 @@ extern void pop_c_function_context              PROTO((void));
 extern void pop_label_level                     PROTO((void));
 extern tree poplevel                            PROTO((int, int, int));
 extern void print_lang_decl                     PROTO((void));
-#if 0
-extern void print_lang_identifier               PROTO((FILE *, tree, int));
-#endif
+extern void print_lang_identifier               STDIO_PROTO((FILE *, tree,
+                                                            int));
 extern void print_lang_type                     PROTO((void));
 extern void push_c_function_context             PROTO((void));
 extern void push_label_level                    PROTO((void));
@@ -310,8 +328,17 @@ extern tree common_type                         PROTO((tree, tree));
 extern tree default_conversion                  PROTO((tree));
 extern tree digest_init                         PROTO((tree, tree, tree *, int, int, char *));
 extern tree parser_build_binary_op              PROTO((enum tree_code, tree, tree));
+extern tree require_complete_type              PROTO((tree));
 extern void store_init_value                    PROTO((tree, tree));
 
+/* in c-iterate.c */
+extern void iterator_expand                    PROTO((tree));
+extern void iterator_for_loop_start            PROTO((tree));
+extern void iterator_for_loop_end              PROTO((tree));
+extern void iterator_for_loop_record           PROTO((tree));
+extern void push_iterator_stack                        PROTO((void));
+extern void pop_iterator_stack                 PROTO((void));
+
 /* Set to 0 at beginning of a function definition, set to 1 if
    a return statement that specifies a return value is seen.  */
 
@@ -400,6 +427,10 @@ extern int flag_traditional;
 
 extern int warn_parentheses;
 
+/* Warn if initializer is not completely bracketed.  */
+
+extern int warn_missing_braces;
+
 /* Nonzero means this is a function to call to perform comptypes
    on two record types.  */
 
@@ -409,4 +440,8 @@ extern int (*comptypes_record_hook) ();
 
 extern int system_header_p;
 
+/* Nonzero enables objc features.  */
+
+extern int doing_objc_thang;
+
 #endif /* not _C_TREE_H */
This page took 0.030417 seconds and 5 git commands to generate.