diff options
author | Thomas Preud'homme <thomas.preudhomme@arm.com> | 2015-02-04 08:22:45 +0000 |
---|---|---|
committer | Thomas Preud'homme <thopre01@gcc.gnu.org> | 2015-02-04 08:22:45 +0000 |
commit | cc9ef6a6419a8c343a5f0d233405411e8c5ca4cc (patch) | |
tree | e96e1033253fd235a5ba2291f141bd766024c589 /gcc/tree-ssa-sccvn.c | |
parent | 6a5fd0f8c1ecdae5c74fd058c524efdc44f87b80 (diff) | |
download | gcc-cc9ef6a6419a8c343a5f0d233405411e8c5ca4cc.zip gcc-cc9ef6a6419a8c343a5f0d233405411e8c5ca4cc.tar.gz gcc-cc9ef6a6419a8c343a5f0d233405411e8c5ca4cc.tar.bz2 |
re PR middle-end/62103 (Incorrect folding of bitfield in a union on big endian targets)
2015-02-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/
PR middle-end/62103
* tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
to compute size of referenced value in the constant case.
gcc/testsuite/
PR middle-end/62103
* gcc.c-torture/execute/bitfld-7.c: New test adapted from bitfld-6.c
to use 24 bits for bitfield b.
From-SVN: r220390
Diffstat (limited to 'gcc/tree-ssa-sccvn.c')
-rw-r--r-- | gcc/tree-ssa-sccvn.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c index 25c67d0..0f1299a 100644 --- a/gcc/tree-ssa-sccvn.c +++ b/gcc/tree-ssa-sccvn.c @@ -1352,7 +1352,7 @@ fully_constant_vn_reference_p (vn_reference_t ref) || TYPE_PRECISION (ref->type) % BITS_PER_UNIT == 0)) { HOST_WIDE_INT off = 0; - HOST_WIDE_INT size = tree_to_shwi (TYPE_SIZE (ref->type)); + HOST_WIDE_INT size = TYPE_PRECISION (ref->type); if (size % BITS_PER_UNIT != 0 || size > MAX_BITSIZE_MODE_ANY_MODE) return NULL_TREE; |