From: dje Date: Mon, 4 Apr 2005 22:50:53 +0000 (+0000) Subject: 2005-04-02 David Edelsohn X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8e97b01776aa48f2b1e4120d65d4b2aaaa484668;p=thirdparty%2Fgcc.git 2005-04-02 David Edelsohn Daniel Jacobowitz * tree-eh.c (tree_could_trap_p): Allow non-constant floating point trapping divide. * rtlanal.c (may_trap_p): Same. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@97582 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2a114c59d380..36608c762564 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2005-04-04 David Edelsohn + Daniel Jacobowitz + + * tree-eh.c (tree_could_trap_p): Allow non-constant floating point + trapping divide. + * rtlanal.c (may_trap_p): Same. + 2005-04-04 Dale Johannesen * ChangeLog: remove reference to ChangeLog.12. diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c index 0686af8c65bc..da9774e488be 100644 --- a/gcc/rtlanal.c +++ b/gcc/rtlanal.c @@ -2105,11 +2105,9 @@ may_trap_p (rtx x) case UMOD: if (HONOR_SNANS (GET_MODE (x))) return 1; - if (! CONSTANT_P (XEXP (x, 1)) - || (GET_MODE_CLASS (GET_MODE (x)) == MODE_FLOAT - && flag_trapping_math)) - return 1; - if (XEXP (x, 1) == const0_rtx) + if (GET_MODE_CLASS (GET_MODE (x)) == MODE_FLOAT) + return flag_trapping_math; + if (!CONSTANT_P (XEXP (x, 1)) || (XEXP (x, 1) == const0_rtx)) return 1; break; diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c index ab945ff97017..3dbcfa87ef9a 100644 --- a/gcc/tree-eh.c +++ b/gcc/tree-eh.c @@ -1787,8 +1787,8 @@ tree_could_trap_p (tree expr) case RDIV_EXPR: if (honor_snans || honor_trapv) return true; - if (fp_operation && flag_trapping_math) - return true; + if (fp_operation) + return flag_trapping_math; t = TREE_OPERAND (expr, 1); if (!TREE_CONSTANT (t) || integer_zerop (t)) return true;