diff options
author | Jakub Jelinek <jakub@redhat.com> | 2011-01-03 22:01:14 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2011-01-03 22:01:14 +0100 |
commit | 1ac12fa2a746eb6b004b604544d6da215770919c (patch) | |
tree | 1af17073eafbd986218e00720fb3527786e46d23 /gcc/tree-ssa-ccp.c | |
parent | 9766135bb18d75cd0d5257d21de485e953e3505e (diff) | |
download | gcc-1ac12fa2a746eb6b004b604544d6da215770919c.zip gcc-1ac12fa2a746eb6b004b604544d6da215770919c.tar.gz gcc-1ac12fa2a746eb6b004b604544d6da215770919c.tar.bz2 |
re PR tree-optimization/47155 (ccp caused miscompilation)
PR tree-optimization/47155
* tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
when computing uns.
* gcc.c-torture/execute/pr47155.c: New test.
From-SVN: r168440
Diffstat (limited to 'gcc/tree-ssa-ccp.c')
-rw-r--r-- | gcc/tree-ssa-ccp.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c index 29aa55c..b2494d7 100644 --- a/gcc/tree-ssa-ccp.c +++ b/gcc/tree-ssa-ccp.c @@ -1764,8 +1764,8 @@ bit_value_binop_1 (enum tree_code code, tree type, tree r1type, double_int r1val, double_int r1mask, tree r2type, double_int r2val, double_int r2mask) { - bool uns = (TREE_CODE (type) == INTEGER_TYPE - && TYPE_IS_SIZETYPE (type) ? 0 : TYPE_UNSIGNED (type)); + bool uns = (TREE_CODE (r1type) == INTEGER_TYPE + && TYPE_IS_SIZETYPE (r1type) ? 0 : TYPE_UNSIGNED (r1type)); /* Assume we'll get a constant result. Use an initial varying value, we fall back to varying in the end if necessary. */ *mask = double_int_minus_one; |