From 734508eae57528457d34df6762c38ded3843bfa5 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Tue, 12 Dec 2000 13:23:04 -0800 Subject: [PATCH] Fix for ia64-linux glibc miscompilation of nan tests. * rtlanal.c (may_trap_p): Check operand modes of LE, LT, GE, and GT. From-SVN: r38209 --- gcc/rtlanal.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c index 88b49fe649e..073f37c438c 100644 --- a/gcc/rtlanal.c +++ b/gcc/rtlanal.c @@ -1947,8 +1947,16 @@ may_trap_p (x) certainly may trap. */ return 1; + case GE: + case GT: + case LE: + case LT: case COMPARE: - /* Any floating comparison may trap. */ + /* Some floating point comparisons may trap. */ + /* ??? There is no machine independent way to check for tests that trap + when COMPARE is used, though many targets do make this distinction. + For instance, sparc uses CCFPE for compares which generate exceptions + and CCFP for compares which do not generate exceptions. */ if (GET_MODE_CLASS (GET_MODE (x)) == MODE_FLOAT) return 1; /* But often the compare has some CC mode, so check operand -- 2.30.2