diff options
| author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-12-05 16:57:08 +0000 |
|---|---|---|
| committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-12-05 16:57:08 +0000 |
| commit | 65a7503cefef58f13f95bb67e677a5511d808827 (patch) | |
| tree | 4139a4107d1e0bfdde7ef28e7e6d451b2db4ece4 | |
| parent | 7aeb4db5145ab262f8a0f5a4bb9c9c83fe140eae (diff) | |
| download | ppe42-gcc-65a7503cefef58f13f95bb67e677a5511d808827.tar.gz ppe42-gcc-65a7503cefef58f13f95bb67e677a5511d808827.zip | |
* tree-sra.c (sra_explode_bitfield_assignment): Always
call unsigned_type_for, if the precision is higher than
needed, call build_nonstandard_integer_type.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@142483 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 4 | ||||
| -rw-r--r-- | gcc/tree-sra.c | 6 |
2 files changed, 6 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0f47e6a9a63..0b9eb7094e4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2008-12-05 Jakub Jelinek <jakub@redhat.com> + * tree-sra.c (sra_explode_bitfield_assignment): Always + call unsigned_type_for, if the precision is higher than + needed, call build_nonstandard_integer_type. + PR debug/38367 * function.c (assign_parm_find_stack_rtl): If promoted_mode is wider than DECL_MODE, adjust MEM_OFFSET (stack_parm) for diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c index 3225d103854..8cada854094 100644 --- a/gcc/tree-sra.c +++ b/gcc/tree-sra.c @@ -3013,11 +3013,9 @@ sra_explode_bitfield_assignment (tree var, tree vpos, bool to_var, infld = fld->replacement; - type = TREE_TYPE (infld); + type = unsigned_type_for (TREE_TYPE (infld)); if (TYPE_PRECISION (type) != TREE_INT_CST_LOW (flen)) - type = lang_hooks.types.type_for_size (TREE_INT_CST_LOW (flen), 1); - else - type = unsigned_type_for (type); + type = build_nonstandard_integer_type (TREE_INT_CST_LOW (flen), 1); if (TREE_CODE (infld) == BIT_FIELD_REF) { |

