diff options
author | Richard Guenther <rguenther@suse.de> | 2010-02-03 11:13:17 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2010-02-03 11:13:17 +0000 |
commit | bf8e3b779b1b243380234ae11f1be99b83ee1178 (patch) | |
tree | b08b53403968aea320bed98029aab502cbe235c3 /gcc/tree-cfg.c | |
parent | bde17fdc4d567a35701b35f26ac511ae42b8ec91 (diff) | |
download | gcc-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.c | 6 |
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"); |