diff options
-rw-r--r-- | gcc/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/stor-layout.c | 4 |
2 files changed, 5 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 64935f63fb6..e8684138e92 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ 2004-12-18 Richard Henderson <rth@redhat.com> + * stor-layout.c (layout_decl): Unshare size expressions copied + from the type. + * fold-const.c (multiple_of_p): Handle BIT_AND_EXPR when BOTTOM is a power of two. diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c index ac7fb744f66..b2f73f000d0 100644 --- a/gcc/stor-layout.c +++ b/gcc/stor-layout.c @@ -325,8 +325,8 @@ layout_decl (tree decl, unsigned int known_align) if (DECL_SIZE (decl) == 0) { - DECL_SIZE (decl) = TYPE_SIZE (type); - DECL_SIZE_UNIT (decl) = TYPE_SIZE_UNIT (type); + DECL_SIZE (decl) = unsave_expr (TYPE_SIZE (type)); + DECL_SIZE_UNIT (decl) = unsave_expr (TYPE_SIZE_UNIT (type)); } else if (DECL_SIZE_UNIT (decl) == 0) DECL_SIZE_UNIT (decl) |