aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-sra.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2008-12-05 17:57:08 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2008-12-05 17:57:08 +0100
commit2d95ef974eece42ec7423bd57760db4286e3d19c (patch)
tree4139a4107d1e0bfdde7ef28e7e6d451b2db4ece4 /gcc/tree-sra.c
parent997f78fb1d6c1b54fa4d914267333d9882e28d1b (diff)
downloadgcc-2d95ef974eece42ec7423bd57760db4286e3d19c.zip
gcc-2d95ef974eece42ec7423bd57760db4286e3d19c.tar.gz
gcc-2d95ef974eece42ec7423bd57760db4286e3d19c.tar.bz2
tree-sra.c (sra_explode_bitfield_assignment): Always call unsigned_type_for...
* tree-sra.c (sra_explode_bitfield_assignment): Always call unsigned_type_for, if the precision is higher than needed, call build_nonstandard_integer_type. From-SVN: r142483
Diffstat (limited to 'gcc/tree-sra.c')
-rw-r--r--gcc/tree-sra.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index 3225d10..8cada85 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)
{