diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/gimple-fold.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c index 58b6ea4..a821b64 100644 --- a/gcc/gimple-fold.c +++ b/gcc/gimple-fold.c @@ -4327,7 +4327,7 @@ clear_padding_union (clear_padding_struct *buf, tree type, HOST_WIDE_INT sz) } for (tree field = TYPE_FIELDS (type); field; field = DECL_CHAIN (field)) - if (TREE_CODE (field) == FIELD_DECL) + if (TREE_CODE (field) == FIELD_DECL && !DECL_PADDING_P (field)) { if (DECL_SIZE_UNIT (field) == NULL_TREE) { @@ -4455,13 +4455,11 @@ clear_padding_type (clear_padding_struct *buf, tree type, HOST_WIDE_INT sz) HOST_WIDE_INT cur_pos; cur_pos = 0; for (tree field = TYPE_FIELDS (type); field; field = DECL_CHAIN (field)) - if (TREE_CODE (field) == FIELD_DECL) + if (TREE_CODE (field) == FIELD_DECL && !DECL_PADDING_P (field)) { tree ftype = TREE_TYPE (field); if (DECL_BIT_FIELD (field)) { - if (DECL_NAME (field) == NULL_TREE) - continue; HOST_WIDE_INT fldsz = TYPE_PRECISION (ftype); if (fldsz == 0) continue; |