diff options
| author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-07-10 02:24:27 +0000 |
|---|---|---|
| committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-07-10 02:24:27 +0000 |
| commit | 4ac297c8a004b2e775503899daa35b4eb729627d (patch) | |
| tree | 51f4ee95f722240f3d4dc04e828383dded783010 | |
| parent | 7d70572731950bf0ddb0f642e0a801d1b5b94cbc (diff) | |
| download | ppe42-gcc-4ac297c8a004b2e775503899daa35b4eb729627d.tar.gz ppe42-gcc-4ac297c8a004b2e775503899daa35b4eb729627d.zip | |
* tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
with prejudice.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84436 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 3 | ||||
| -rw-r--r-- | gcc/tree-ssa-ccp.c | 11 |
2 files changed, 13 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3fb67e77a89..47ada40da06 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -2,6 +2,9 @@ * builtins.c (expand_builtin_stpcpy): Don't modify len. + * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs + with prejudice. + 2004-07-10 Kelley Cook <kcook@gcc.gnu.org> * flags.h: Delete redundant prototypes that are being generated diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c index d2c503d6ceb..01da8f88e07 100644 --- a/gcc/tree-ssa-ccp.c +++ b/gcc/tree-ssa-ccp.c @@ -2405,7 +2405,16 @@ ccp_fold_builtin (tree stmt, tree fn) } if (result && ignore) - STRIP_NOPS (result); + { + /* STRIP_NOPS isn't strong enough -- it'll stop when we change modes, + but given that we're ignoring the result, we don't care what type + is being returned by the transformed function. */ + while (TREE_CODE (result) == NOP_EXPR + || TREE_CODE (result) == CONVERT_EXPR + || TREE_CODE (result) == NON_LVALUE_EXPR) + result = TREE_OPERAND (result, 0); + } + return result; } |

