diff options
| author | zadeck <zadeck@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-11-22 13:55:53 +0000 |
|---|---|---|
| committer | zadeck <zadeck@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-11-22 13:55:53 +0000 |
| commit | 69c1cbfadeb18db8a0b2cd80b3d2dc655222e65b (patch) | |
| tree | b7c2fda72425910e7742e745ac401f33119c0744 | |
| parent | 57b5438ac697cd364455365a6f060fbbac0b1111 (diff) | |
| download | ppe42-gcc-69c1cbfadeb18db8a0b2cd80b3d2dc655222e65b.tar.gz ppe42-gcc-69c1cbfadeb18db8a0b2cd80b3d2dc655222e65b.zip | |
2013-11-22 zadeck@naturalbridge.com
* store-layout.c
(place-field): Fix hwi test and accessor mismatch.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205260 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 4 | ||||
| -rw-r--r-- | gcc/stor-layout.c | 6 |
2 files changed, 7 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d1b3d54d70e..3ae6ec9cf0a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2013-11-22 zadeck@naturalbridge.com + * store-layout.c + (place-field): Fix hwi test and accessor mismatch. + 2013-11-22 Jakub Jelinek <jakub@redhat.com> * expr.c (store_constructor): Allow CONSTRUCTOR with VECTOR_TYPE diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c index 6138b63d2d9..0a1194e2ef3 100644 --- a/gcc/stor-layout.c +++ b/gcc/stor-layout.c @@ -1204,7 +1204,7 @@ place_field (record_layout_info rli, tree field) unsigned int type_align = TYPE_ALIGN (type); tree dsize = DECL_SIZE (field); HOST_WIDE_INT field_size = tree_to_uhwi (dsize); - HOST_WIDE_INT offset = tree_to_shwi (rli->offset); + HOST_WIDE_INT offset = tree_to_uhwi (rli->offset); HOST_WIDE_INT bit_offset = tree_to_shwi (rli->bitpos); #ifdef ADJUST_FIELD_ALIGN @@ -1248,7 +1248,7 @@ place_field (record_layout_info rli, tree field) unsigned int type_align = TYPE_ALIGN (type); tree dsize = DECL_SIZE (field); HOST_WIDE_INT field_size = tree_to_uhwi (dsize); - HOST_WIDE_INT offset = tree_to_shwi (rli->offset); + HOST_WIDE_INT offset = tree_to_uhwi (rli->offset); HOST_WIDE_INT bit_offset = tree_to_shwi (rli->bitpos); #ifdef ADJUST_FIELD_ALIGN @@ -1304,7 +1304,7 @@ place_field (record_layout_info rli, tree field) && !integer_zerop (DECL_SIZE (field)) && !integer_zerop (DECL_SIZE (rli->prev_field)) && tree_fits_shwi_p (DECL_SIZE (rli->prev_field)) - && tree_fits_shwi_p (TYPE_SIZE (type)) + && tree_fits_uhwi_p (TYPE_SIZE (type)) && simple_cst_equal (TYPE_SIZE (type), TYPE_SIZE (prev_type))) { /* We're in the middle of a run of equal type size fields; make |

