diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1997-01-27 09:05:06 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1997-01-27 09:05:06 -0500 |
commit | 8e3df5dce2b3501e9f556fe8c7b956b0592022dd (patch) | |
tree | faa7d4469326a350c8a6c4c73a9013c78802a79e /gcc/fold-const.c | |
parent | 12dd565fc59325e34df949b19aca788026616bf1 (diff) | |
download | gcc-8e3df5dce2b3501e9f556fe8c7b956b0592022dd.zip gcc-8e3df5dce2b3501e9f556fe8c7b956b0592022dd.tar.gz gcc-8e3df5dce2b3501e9f556fe8c7b956b0592022dd.tar.bz2 |
(fold): Don't make COND_EXPR when both expr and one part are comparisons.
From-SVN: r13553
Diffstat (limited to 'gcc/fold-const.c')
-rw-r--r-- | gcc/fold-const.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/fold-const.c b/gcc/fold-const.c index dedbeed..e76d6b9 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -3756,7 +3756,8 @@ fold (expr) fold (build (code, type, arg0, TREE_OPERAND (arg1, 1)))); else if (TREE_CODE (arg1) == COND_EXPR - || TREE_CODE_CLASS (TREE_CODE (arg1)) == '<') + || (TREE_CODE_CLASS (TREE_CODE (arg1)) == '<' + && TREE_CODE_CLASS (code) != '<')) { tree test, true_value, false_value; @@ -3812,7 +3813,8 @@ fold (expr) return build (COMPOUND_EXPR, type, TREE_OPERAND (arg0, 0), fold (build (code, type, TREE_OPERAND (arg0, 1), arg1))); else if (TREE_CODE (arg0) == COND_EXPR - || TREE_CODE_CLASS (TREE_CODE (arg0)) == '<') + || (TREE_CODE_CLASS (TREE_CODE (arg0)) == '<' + && TREE_CODE_CLASS (code) != '<')) { tree test, true_value, false_value; |