Current glibc headers only declare fputs_unlocked for _GNU_SOURCE, so define it to obtain an official prototype.
Add a fallback prototype declaration for other systems that do not have fputs_unlocked. This seems to the most straightforward approach to avoid an implicit function declaration, without reducing test coverage and introducing ongoing maintenance requirements (e.g.g, FreeBSD added fputs_unlocked support fairly recently). gcc/testsuite/ * gcc.c-torture/execute/builtins/fputs.c (_GNU_SOURCE): Define. (fputs_unlocked): Declare. --- gcc/testsuite/gcc.c-torture/execute/builtins/fputs.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/fputs.c b/gcc/testsuite/gcc.c-torture/execute/builtins/fputs.c index 93fa9736449..a94ea993364 100644 --- a/gcc/testsuite/gcc.c-torture/execute/builtins/fputs.c +++ b/gcc/testsuite/gcc.c-torture/execute/builtins/fputs.c @@ -5,9 +5,13 @@ Written by Kaveh R. Ghazi, 10/30/2000. */ +#define _GNU_SOURCE /* For fputs_unlocked. */ #include <stdio.h> extern void abort(void); +/* Not all systems have fputs_unlocked. See fputs-lib.c. */ +extern int (fputs_unlocked) (const char *, FILE *); + int i; void base-commit: 0e29c6f65523dad20068ba69cd03d8f6f82cab41