diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-09-19 23:27:02 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-09-19 23:27:02 +0000 |
commit | b3744b6b4edf4790eb8d69e25eb29f867c3acc5a (patch) | |
tree | bf68cba9a0bcd3905cd9990cc6ba8f391559f0f1 /gcc/fold-const.c | |
parent | 5c61dffde4155ade15ba96592de9c109114853ed (diff) | |
download | gcc-b3744b6b4edf4790eb8d69e25eb29f867c3acc5a.tar.gz |
* fold-const.c (fold): Fix typo in COND_EXPR handling code.
(invert_truthvalue): Enable truthvalue inversion for
floating-point operands if -ffast-math.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22488 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fold-const.c')
-rw-r--r-- | gcc/fold-const.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/fold-const.c b/gcc/fold-const.c index 8a289a81709..5eab6562282 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -2230,7 +2230,7 @@ invert_truthvalue (arg) if (TREE_CODE_CLASS (code) == '<') { if (FLOAT_TYPE_P (TREE_TYPE (TREE_OPERAND (arg, 0))) - && code != NE_EXPR && code != EQ_EXPR) + && !flag_fast_math && code != NE_EXPR && code != EQ_EXPR) return build1 (TRUTH_NOT_EXPR, type, arg); else return build (invert_tree_comparison (code), type, @@ -5824,7 +5824,8 @@ fold (expr) t = build (code, type, tem, TREE_OPERAND (t, 2), TREE_OPERAND (t, 1)); arg0 = tem; - arg1 = TREE_OPERAND (t, 2); + /* arg1 should be the first argument of the new T. */ + arg1 = TREE_OPERAND (t, 1); STRIP_NOPS (arg1); } } |