diff options
author | echristo <echristo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-11-24 20:12:06 +0000 |
---|---|---|
committer | echristo <echristo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-11-24 20:12:06 +0000 |
commit | d9cf68bf7f8e2752432f76987ccee33de4d3ff96 (patch) | |
tree | 4b0dd5bf92fd53863d57bb29f006b3c57aff1bf0 /gcc/c-tree.h | |
parent | ef8a1eb2c7a0c9f0209f79f1938f01d7fa966eb4 (diff) | |
download | gcc-d9cf68bf7f8e2752432f76987ccee33de4d3ff96.tar.gz |
2003-11-24 Eric Christopher <echristo@redhat.com>
PR C/13014
* c-decl.c (c_in_iteration_stmt, c_in_case_stmt): New.
(start_function): Use.
(c_push_function_context): Ditto.
(c-pop_function_context): Ditto.
(language_function): Move...
* c-tree.h: ... here. Add x_in_iteration_stmt, and
x_in_case_stmt.
* c-parse.in (do_stmt_start, select_or_iter_stmt, stmt): Use
c_in_iteration_stmt, c_in_case_stmt for parser state. Move
check for valid break or continue statment here...
* c-semantics.c (genrtl_break_stmt, genrtl_continue_stmt): From
here. Change original errors to abort.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@73887 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/c-tree.h')
-rw-r--r-- | gcc/c-tree.h | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/gcc/c-tree.h b/gcc/c-tree.h index 3ba495395b2..f04e7b4edfa 100644 --- a/gcc/c-tree.h +++ b/gcc/c-tree.h @@ -44,12 +44,12 @@ struct lang_identifier GTY(()) /* The resulting tree type. */ -union lang_tree_node +union lang_tree_node GTY((desc ("TREE_CODE (&%h.generic) == IDENTIFIER_NODE"), chain_next ("TREE_CODE (&%h.generic) == INTEGER_TYPE ? (union lang_tree_node *)TYPE_NEXT_VARIANT (&%h.generic) : (union lang_tree_node *)TREE_CHAIN (&%h.generic)"))) { - union tree_node GTY ((tag ("0"), - desc ("tree_node_structure (&%h)"))) + union tree_node GTY ((tag ("0"), + desc ("tree_node_structure (&%h)"))) generic; struct lang_identifier GTY ((tag ("1"))) identifier; }; @@ -106,7 +106,7 @@ struct lang_decl GTY(()) /* In a RECORD_TYPE, a sorted array of the fields of the type. */ struct lang_type GTY(()) { - struct sorted_fields_type * GTY ((reorder ("resort_sorted_fields"))) s; + struct sorted_fields_type * GTY ((reorder ("resort_sorted_fields"))) s; }; /* Record whether a type or decl was written with nonconstant size. @@ -152,6 +152,22 @@ struct lang_type GTY(()) #define KEEP_YES 1 #define KEEP_MAYBE 2 +/* Save and restore the variables in this file and elsewhere + that keep track of the progress of compilation of the current function. + Used for nested functions. */ + +struct language_function GTY(()) +{ + struct c_language_function base; + int returns_value; + int returns_null; + int returns_abnormally; + int warn_about_return_type; + int extern_inline; + int x_in_iteration_stmt; + int x_in_case_stmt; +}; + /* in c-parse.in */ extern void c_parse_init (void); |