diff options
author | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-04-12 21:25:55 +0000 |
---|---|---|
committer | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-04-12 21:25:55 +0000 |
commit | ab7083b087473d1769d3b41c7788bc9b13bd871c (patch) | |
tree | fc6c6b14412060a9d6d90d3f45c768a4648b7f4b /gcc/c-semantics.c | |
parent | 26b2607c247c694960db8c54ca04f12aceb131e3 (diff) | |
download | gcc-ab7083b087473d1769d3b41c7788bc9b13bd871c.tar.gz |
* c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
TYPE_DECL.
* c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
* stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
* stor-layout.c (variable_size): Don't check for MINUS_EXPR.
Use skip_simple_arithmetic to find SAVE_EXPR.
(force_type_save_exprs, force_type_save_exprs_1): New functions.
* tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
Properly chain multiple pointers.
(copy_tree_r): Copy a TYPE_DECL.
* tree.c (variably_modified_type_p): Add some missing tests and
make some other minor changes.
* tree.h (force_type_save_exprs): New declaration.
* gcc.c-torture/execute/20040411-1.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@80629 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/c-semantics.c')
-rw-r--r-- | gcc/c-semantics.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/c-semantics.c b/gcc/c-semantics.c index 17a301cffff..a8693f9b3f1 100644 --- a/gcc/c-semantics.c +++ b/gcc/c-semantics.c @@ -389,6 +389,8 @@ genrtl_decl_stmt (tree t) else if (TREE_CODE (decl) == LABEL_DECL && C_DECLARED_LABEL_FLAG (decl)) declare_nonlocal_label (decl); + else if (TREE_CODE (decl) == TYPE_DECL) + force_type_save_exprs (TREE_TYPE (decl)); else if (lang_expand_decl_stmt) (*lang_expand_decl_stmt) (t); } |