aboutsummaryrefslogtreecommitdiff
path: root/gcc/combine.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2014-07-08 17:39:36 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2014-07-08 17:39:36 +0200
commit7e6d8fd9f6f2d3ef1a3c4d439b669b6de574aed9 (patch)
treea31e38df1a632b7487f21d3ab0c13016818f1191 /gcc/combine.c
parente4a452b2150b6b19c6e58612111495bef66156b3 (diff)
downloadgcc-7e6d8fd9f6f2d3ef1a3c4d439b669b6de574aed9.zip
gcc-7e6d8fd9f6f2d3ef1a3c4d439b669b6de574aed9.tar.gz
gcc-7e6d8fd9f6f2d3ef1a3c4d439b669b6de574aed9.tar.bz2
re PR rtl-optimization/61673 (Miscompilation of _gnutls_hostname_compare on s390)
PR rtl-optimization/61673 * combine.c (simplify_comparison): Test just mode's sign bit in tmode rather than the sign bit and any bits above it. * gcc.c-torture/execute/pr61673.c: New test. From-SVN: r212364
Diffstat (limited to 'gcc/combine.c')
-rw-r--r--gcc/combine.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/combine.c b/gcc/combine.c
index 4e7ef55..08f5638 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -11981,7 +11981,7 @@ simplify_comparison (enum rtx_code code, rtx *pop0, rtx *pop1)
= (unsigned HOST_WIDE_INT) 1 << (GET_MODE_BITSIZE (mode) - 1);
op0 = simplify_gen_binary (AND, tmode,
gen_lowpart (tmode, op0),
- gen_int_mode (sign, mode));
+ gen_int_mode (sign, tmode));
code = (code == LT) ? NE : EQ;
break;
}