diff options
author | Roger Sayle <roger@eyesopen.com> | 2004-05-21 16:39:38 +0000 |
---|---|---|
committer | Roger Sayle <sayle@gcc.gnu.org> | 2004-05-21 16:39:38 +0000 |
commit | b953ebd647221fbd17b033b90eaa5503e66b0019 (patch) | |
tree | af2a13e6a162140aa8964ae9fc1f946d529774e2 /gcc/builtins.c | |
parent | 17abdabcf3d4261dbebcc88cfaa1810b20811fe9 (diff) | |
download | gcc-b953ebd647221fbd17b033b90eaa5503e66b0019.zip gcc-b953ebd647221fbd17b033b90eaa5503e66b0019.tar.gz gcc-b953ebd647221fbd17b033b90eaa5503e66b0019.tar.bz2 |
fold-const.c (fold, [...]): Use fold_convert instead of convert.
* fold-const.c (fold, fold_relational_hi_lo,
nondestructive_fold_binary_to_constant,
fold_read_from_constant_string): Use fold_convert instead of convert.
* builtins.c (simplify_builtin, simplify_builtin_strstr,
simplify_builtin_strchr, simplify_builtin_strrchr,
simplify_builtin_strpbrk): Use fold_convert instead of convert.
From-SVN: r82102
Diffstat (limited to 'gcc/builtins.c')
-rw-r--r-- | gcc/builtins.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c index 7643b2d..0357ca9 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -8020,7 +8020,7 @@ simplify_builtin (tree exp, int ignore) } if (val) - val = convert (TREE_TYPE (exp), val); + val = fold_convert (TREE_TYPE (exp), val); return val; } @@ -8061,13 +8061,13 @@ simplify_builtin_strstr (tree arglist) { const char *r = strstr (p1, p2); - /* Return an offset into the constant string argument. */ if (r == NULL) - return integer_zero_node; - else - return fold (build (PLUS_EXPR, TREE_TYPE (s1), - s1, convert (TREE_TYPE (s1), - ssize_int (r - p1)))); + return fold_convert (TREE_TYPE (s1), integer_zero_node); + + /* Return an offset into the constant string argument. */ + return fold (build2 (PLUS_EXPR, TREE_TYPE (s1), + s1, fold_convert (TREE_TYPE (s1), + ssize_int (r - p1)))); } if (p2[0] == '\0') @@ -8130,12 +8130,12 @@ simplify_builtin_strchr (tree arglist) r = strchr (p1, c); if (r == NULL) - return integer_zero_node; + return fold_convert (TREE_TYPE (s1), integer_zero_node); /* Return an offset into the constant string argument. */ return fold (build (PLUS_EXPR, TREE_TYPE (s1), - s1, convert (TREE_TYPE (s1), - ssize_int (r - p1)))); + s1, fold_convert (TREE_TYPE (s1), + ssize_int (r - p1)))); } /* FIXME: Should use here strchrM optab so that ports can optimize @@ -8187,12 +8187,12 @@ simplify_builtin_strrchr (tree arglist) r = strrchr (p1, c); if (r == NULL) - return integer_zero_node; + return fold_convert (TREE_TYPE (s1), integer_zero_node); /* Return an offset into the constant string argument. */ return fold (build (PLUS_EXPR, TREE_TYPE (s1), - s1, convert (TREE_TYPE (s1), - ssize_int (r - p1)))); + s1, fold_convert (TREE_TYPE (s1), + ssize_int (r - p1)))); } if (! integer_zerop (s2)) @@ -8245,12 +8245,12 @@ simplify_builtin_strpbrk (tree arglist) const char *r = strpbrk (p1, p2); if (r == NULL) - return integer_zero_node; + return fold_convert (TREE_TYPE (s1), integer_zero_node); /* Return an offset into the constant string argument. */ return fold (build (PLUS_EXPR, TREE_TYPE (s1), - s1, convert (TREE_TYPE (s1), - ssize_int (r - p1)))); + s1, fold_convert (TREE_TYPE (s1), + ssize_int (r - p1)))); } if (p2[0] == '\0') |