diff options
author | Richard Henderson <rth@gcc.gnu.org> | 2004-12-22 10:51:24 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2004-12-22 10:51:24 -0800 |
commit | ad50bc8d803c56fc9ec9a81b70877e74d61c7c14 (patch) | |
tree | 0cb8336d9cec3f258c1db3f86494f5469b7908b8 /gcc/ada/trans.c | |
parent | ba9ce455bb060016e01dfd1aecf97cbe51623ee9 (diff) | |
download | gcc-ad50bc8d803c56fc9ec9a81b70877e74d61c7c14.zip gcc-ad50bc8d803c56fc9ec9a81b70877e74d61c7c14.tar.gz gcc-ad50bc8d803c56fc9ec9a81b70877e74d61c7c14.tar.bz2 |
[multiple changes]
2004-12-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
2004-12-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* tree.h (TYPE_SIZES_GIMPLIFIED): New.
* function.c (gimplify_parm_type): Don't gimplify type if already done.
* gimplify.c (gimplify_decl_expr): Likewise.
(gimplify_type_sizes): Set TYPE_SIZES_GIMPLIFIED. Examine nested
array types.
2004-12-22 Richard Henderson <rth@redhat.com>
* gimplify.c (eval_save_expr): Remove.
(gimplify_one_sizepos): Unshare expr before gimplifying.
* stor-layout.c (variable_size): Revert 2004-12-19 change.
(layout_decl): Revert 2004-12-18 change.
(layout_type): Revert 2004-12-21 change.
From-SVN: r92495
Diffstat (limited to 'gcc/ada/trans.c')
-rw-r--r-- | gcc/ada/trans.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/gcc/ada/trans.c b/gcc/ada/trans.c index e3d5f47..0db1709 100644 --- a/gcc/ada/trans.c +++ b/gcc/ada/trans.c @@ -4283,9 +4283,10 @@ add_decl_expr (tree gnu_decl, Entity_Id gnat_entity) } } -/* Utility function to mark nodes with TREE_VISITED. Called from walk_tree. - We use this to indicate all variable sizes and positions in global types - may not be shared by any subprogram. */ +/* Utility function to mark nodes with TREE_VISITED and types as having their + sized gimplified. Called from walk_tree. We use this to indicate all + variable sizes and positions in global types may not be shared by any + subprogram. */ static tree mark_visited (tree *tp, int *walk_subtrees, void *data ATTRIBUTE_UNUSED) @@ -4298,6 +4299,9 @@ mark_visited (tree *tp, int *walk_subtrees, void *data ATTRIBUTE_UNUSED) else if (!TYPE_IS_DUMMY_P (*tp)) TREE_VISITED (*tp) = 1; + if (TYPE_P (*tp)) + TYPE_SIZES_GIMPLIFIED (*tp) = 1; + return NULL_TREE; } |