diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/builtins.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/stdio-opt-1.c | 2 |
4 files changed, 16 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 596e91e0984..5e130ce0383 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-03-23 Arpad Beszedes <beszedes@cc.u-szeged.hu> + + * builtins.c (expand_builtin_fputs): When optimizing for size, + don't transform fputs into fwrite. + 2003-03-23 Glen Nakamura <glen@imodulo.com> PR c/8224 diff --git a/gcc/builtins.c b/gcc/builtins.c index 244249d8ecc..b6fe4b4fbe6 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -3796,8 +3796,12 @@ expand_builtin_fputs (arglist, ignore, unlocked) /* FALLTHROUGH */ case 1: /* length is greater than 1, call fwrite. */ { - tree string_arg = TREE_VALUE (arglist); + tree string_arg; + /* If optimizing for size keep fputs. */ + if (optimize_size) + return 0; + string_arg = TREE_VALUE (arglist); /* New argument list transforming fputs(string, stream) to fwrite(string, 1, len, stream). */ arglist = build_tree_list (NULL_TREE, TREE_VALUE (TREE_CHAIN (arglist))); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9db85358f04..8b85ee44344 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2003-03-23 Arpad Beszedes <beszedes@cc.u-szeged.hu> + + * gcc.c-torture/execute/stdio-opt-1.c: Adjust test for change to + builtin fputs. + 2003-03-23 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz> PR c/8224 diff --git a/gcc/testsuite/gcc.c-torture/execute/stdio-opt-1.c b/gcc/testsuite/gcc.c-torture/execute/stdio-opt-1.c index f5316d41863..fc43c5721e8 100644 --- a/gcc/testsuite/gcc.c-torture/execute/stdio-opt-1.c +++ b/gcc/testsuite/gcc.c-torture/execute/stdio-opt-1.c @@ -54,7 +54,7 @@ int main() return 0; } -#ifdef __OPTIMIZE__ +#if defined (__OPTIMIZE__) && ! defined (__OPTIMIZE_SIZE__) /* When optimizing, all the above cases should be transformed into something else. So any remaining calls to the original function should abort. */ |