diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2009-01-04 22:14:39 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2009-01-04 22:14:39 +0000 |
commit | 0009b473a0fe5c76e303f1cc34251df0cba2d478 (patch) | |
tree | 2afc7059c58e4a4029cc635e870740de81b70352 /gcc/tree-cfg.c | |
parent | 4f24c6d62f0818c402bcffb78186d1a64f2c5d1c (diff) | |
download | gcc-0009b473a0fe5c76e303f1cc34251df0cba2d478.zip gcc-0009b473a0fe5c76e303f1cc34251df0cba2d478.tar.gz gcc-0009b473a0fe5c76e303f1cc34251df0cba2d478.tar.bz2 |
tree.def (LSHIFT_EXPR, [...]): Add commentary.
gcc/
* tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
* tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
fixed-point types, and vectors of the same.
From-SVN: r143061
Diffstat (limited to 'gcc/tree-cfg.c')
-rw-r--r-- | gcc/tree-cfg.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index 3def9a2..875d123 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -3474,6 +3474,12 @@ verify_gimple_assign_binary (gimple stmt) case LSHIFT_EXPR: case RSHIFT_EXPR: + if (FIXED_POINT_TYPE_P (rhs1_type) + && INTEGRAL_TYPE_P (rhs2_type) + && useless_type_conversion_p (lhs_type, rhs1_type)) + return false; + /* Fall through. */ + case LROTATE_EXPR: case RROTATE_EXPR: { @@ -3495,7 +3501,8 @@ verify_gimple_assign_binary (gimple stmt) case VEC_RSHIFT_EXPR: { if (TREE_CODE (rhs1_type) != VECTOR_TYPE - || !INTEGRAL_TYPE_P (TREE_TYPE (rhs1_type)) + || !(INTEGRAL_TYPE_P (TREE_TYPE (rhs1_type)) + || FIXED_POINT_TYPE_P (TREE_TYPE (rhs1_type))) || (!INTEGRAL_TYPE_P (rhs2_type) && (TREE_CODE (rhs2_type) != VECTOR_TYPE || !INTEGRAL_TYPE_P (TREE_TYPE (rhs2_type)))) |