From: Jakub Jelinek Date: Fri, 22 Jun 2018 21:18:32 +0000 (+0200) Subject: backport: re PR tree-optimization/85446 (wrong-code on riscv64) X-Git-Tag: releases/gcc-7.4.0~331 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fd64a8a1e0a80947225b67d5bd10b426cab558d7;p=thirdparty%2Fgcc.git backport: re PR tree-optimization/85446 (wrong-code on riscv64) Backported from mainline 2018-04-19 Jakub Jelinek PR tree-optimization/85446 * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Require the integral and pointer types to have the same precision. From-SVN: r261958 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9381393fe812..957bf2021f90 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,6 +1,12 @@ 2018-06-22 Jakub Jelinek Backported from mainline + 2018-04-19 Jakub Jelinek + + PR tree-optimization/85446 + * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Require + the integral and pointer types to have the same precision. + 2018-04-18 David Malcolm PR jit/85384 @@ -9,9 +15,6 @@ it when generating GCC_DRIVER_NAME. * configure: Regenerate. -2018-06-22 Jakub Jelinek - - Backported from mainline 2018-04-17 Jakub Jelinek PR rtl-optimization/85431 diff --git a/gcc/match.pd b/gcc/match.pd index 3a44ea7f628a..e405d9e84e90 100644 --- a/gcc/match.pd +++ b/gcc/match.pd @@ -2929,10 +2929,13 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) (for cmp (ne eq) (simplify (cmp (convert @0) INTEGER_CST@1) - (if ((POINTER_TYPE_P (TREE_TYPE (@0)) && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (@0))) - && INTEGRAL_TYPE_P (TREE_TYPE (@1))) - || (INTEGRAL_TYPE_P (TREE_TYPE (@0)) && POINTER_TYPE_P (TREE_TYPE (@1)) - && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (@1))))) + (if (((POINTER_TYPE_P (TREE_TYPE (@0)) + && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (@0))) + && INTEGRAL_TYPE_P (TREE_TYPE (@1))) + || (INTEGRAL_TYPE_P (TREE_TYPE (@0)) + && POINTER_TYPE_P (TREE_TYPE (@1)) + && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (@1))))) + && TYPE_PRECISION (TREE_TYPE (@0)) == TYPE_PRECISION (TREE_TYPE (@1))) (cmp @0 (convert @1))))) /* Non-equality compare simplifications from fold_binary */