From: Kaveh R. Ghazi Date: Thu, 1 Dec 2005 02:31:49 +0000 (+0000) Subject: re PR middle-end/25158 (FAIL: gcc.c-torture/execute/builtins/fprintf.c compilation) X-Git-Tag: releases/gcc-4.2.0~5654 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=625a34391b5f4ade156cd99b88fd5184011d2a29;p=thirdparty%2Fgcc.git re PR middle-end/25158 (FAIL: gcc.c-torture/execute/builtins/fprintf.c compilation) PR middle-end/25158 * builtins.c (fold_builtin_fputs): Defer check for missing replacement functions. From-SVN: r107762 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1d8646a161bd..5832c4ecf2b9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-11-30 Kaveh R. Ghazi + + PR middle-end/25158 + * builtins.c (fold_builtin_fputs): Defer check for missing + replacement functions. + 2005-11-30 Kean Johnston * config/i386/i386.c: Check the value of SUPPORTS_ONE_ONLY, not diff --git a/gcc/builtins.c b/gcc/builtins.c index aff2499d6eda..2e42f468e44e 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -9327,9 +9327,8 @@ fold_builtin_fputs (tree arglist, bool ignore, bool unlocked, tree len) tree const fn_fwrite = unlocked ? built_in_decls[BUILT_IN_FWRITE_UNLOCKED] : implicit_built_in_decls[BUILT_IN_FWRITE]; - /* If the return value is used, or the replacement _DECL isn't - initialized, don't do the transformation. */ - if (!ignore || !fn_fputc || !fn_fwrite) + /* If the return value is used, don't do the transformation. */ + if (!ignore) return 0; /* Verify the arguments in the original call. */ @@ -9391,6 +9390,11 @@ fold_builtin_fputs (tree arglist, bool ignore, bool unlocked, tree len) gcc_unreachable (); } + /* If the replacement _DECL isn't initialized, don't do the + transformation. */ + if (!fn) + return 0; + /* These optimizations are only performed when the result is ignored, hence there's no need to cast the result to integer_type_node. */ return build_function_call_expr (fn, arglist);