summaryrefslogtreecommitdiff
path: root/gcc/c-tree.h
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-03-02 02:34:14 +0000
committerRichard Stallman <rms@gnu.org>1993-03-02 02:34:14 +0000
commit429819203e1a237e28bda2c99c0a49d5501590e2 (patch)
treef80a5871cf179543ad51a95eec8f4fd1e8412752 /gcc/c-tree.h
parent726b521731885478cd6638150f69062715b06b92 (diff)
downloadgcc-429819203e1a237e28bda2c99c0a49d5501590e2.tar.gz
(ITERATOR_P, ITERATOR_BOUND_P): New macros.
From-SVN: r3584
Diffstat (limited to 'gcc/c-tree.h')
-rw-r--r--gcc/c-tree.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/gcc/c-tree.h b/gcc/c-tree.h
index 7257888a8ad..876f728d23e 100644
--- a/gcc/c-tree.h
+++ b/gcc/c-tree.h
@@ -137,6 +137,13 @@ 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)
extern int maybe_objc_comptypes PROTO((tree, tree));
extern tree maybe_building_objc_message_expr PROTO((void));
@@ -312,6 +319,14 @@ extern tree digest_init PROTO((tree, tree, tree *, int,
extern tree parser_build_binary_op PROTO((enum tree_code, tree, 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. */