Commit 625a3439 by Kaveh R. Ghazi Committed by Kaveh Ghazi

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
parent 57fdce26
2005-11-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
PR middle-end/25158
* builtins.c (fold_builtin_fputs): Defer check for missing
replacement functions.
2005-11-30 Kean Johnston <jkj@sco.com> 2005-11-30 Kean Johnston <jkj@sco.com>
* config/i386/i386.c: Check the value of SUPPORTS_ONE_ONLY, not * config/i386/i386.c: Check the value of SUPPORTS_ONE_ONLY, not
......
...@@ -9327,9 +9327,8 @@ fold_builtin_fputs (tree arglist, bool ignore, bool unlocked, tree len) ...@@ -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] tree const fn_fwrite = unlocked ? built_in_decls[BUILT_IN_FWRITE_UNLOCKED]
: implicit_built_in_decls[BUILT_IN_FWRITE]; : implicit_built_in_decls[BUILT_IN_FWRITE];
/* If the return value is used, or the replacement _DECL isn't /* If the return value is used, don't do the transformation. */
initialized, don't do the transformation. */ if (!ignore)
if (!ignore || !fn_fputc || !fn_fwrite)
return 0; return 0;
/* Verify the arguments in the original call. */ /* Verify the arguments in the original call. */
...@@ -9391,6 +9390,11 @@ fold_builtin_fputs (tree arglist, bool ignore, bool unlocked, tree len) ...@@ -9391,6 +9390,11 @@ fold_builtin_fputs (tree arglist, bool ignore, bool unlocked, tree len)
gcc_unreachable (); 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, /* These optimizations are only performed when the result is ignored,
hence there's no need to cast the result to integer_type_node. */ hence there's no need to cast the result to integer_type_node. */
return build_function_call_expr (fn, arglist); return build_function_call_expr (fn, arglist);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment