aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-cfg.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2010-02-03 11:13:17 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2010-02-03 11:13:17 +0000
commitbf8e3b779b1b243380234ae11f1be99b83ee1178 (patch)
treeb08b53403968aea320bed98029aab502cbe235c3 /gcc/tree-cfg.c
parentbde17fdc4d567a35701b35f26ac511ae42b8ec91 (diff)
downloadgcc-bf8e3b779b1b243380234ae11f1be99b83ee1178.zip
gcc-bf8e3b779b1b243380234ae11f1be99b83ee1178.tar.gz
gcc-bf8e3b779b1b243380234ae11f1be99b83ee1178.tar.bz2
re PR tree-optimization/42927 (type mismatch in shift expression produces ice with -O3)
2010-02-03 Richard Guenther <rguenther@suse.de> PR middle-end/42927 * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification. * gcc.c-torture/compile/pr42927.c: New testcase. From-SVN: r156464
Diffstat (limited to 'gcc/tree-cfg.c')
-rw-r--r--gcc/tree-cfg.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index 361b46e..e5ed9ec 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -3287,13 +3287,13 @@ verify_gimple_assign_binary (gimple stmt)
if ((!INTEGRAL_TYPE_P (rhs1_type)
&& !FIXED_POINT_TYPE_P (rhs1_type)
&& !(TREE_CODE (rhs1_type) == VECTOR_TYPE
- && TREE_CODE (TREE_TYPE (rhs1_type)) == INTEGER_TYPE))
+ && INTEGRAL_TYPE_P (TREE_TYPE (rhs1_type))))
|| (!INTEGRAL_TYPE_P (rhs2_type)
/* Vector shifts of vectors are also ok. */
&& !(TREE_CODE (rhs1_type) == VECTOR_TYPE
- && TREE_CODE (TREE_TYPE (rhs1_type)) == INTEGER_TYPE
+ && INTEGRAL_TYPE_P (TREE_TYPE (rhs1_type))
&& TREE_CODE (rhs2_type) == VECTOR_TYPE
- && TREE_CODE (TREE_TYPE (rhs2_type)) == INTEGER_TYPE))
+ && INTEGRAL_TYPE_P (TREE_TYPE (rhs2_type))))
|| !useless_type_conversion_p (lhs_type, rhs1_type))
{
error ("type mismatch in shift expression");