bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: stdlib tweak


From: Eric Blake
Subject: Re: stdlib tweak
Date: Wed, 23 Dec 2009 17:04:17 +0000 (UTC)
User-agent: Loom/3.14 (http://gmane.org/)

Eric Blake <ebb9 <at> byu.net> writes:

> I can go either way on static vs. non-static - the use of _GL_UNUSED is
> not that hard (and I've already run a sed script to make the change, so I
> have a candidate commit either way).

By factoring into a common macro, going static was much easier (and transparent 
to the call sites).  It does indeed look nicer via a macro.  Here's the current 
state of my patch (it is a Work In Progress, because the test/macros.h 
factorization needs to go in first, at which point I remove the edits to 
m4/gnulib-common.m4 and instead put them in test/macros.h).  But that also 
means that test/macros.h must NOT include any system headers (so that 
SIGNATURE_CHECK can be invoked after config.h, macros.h, and exactly one system 
header has been included).

Oh, I just noticed I need to amend the ChangeLog and commit message, now that 
there are no instances of signature_check1.


From: Eric Blake <address@hidden>
Date: Tue, 22 Dec 2009 10:57:14 -0700
Subject: [PATCH] WIP: tests: add signature checks

waiting for tests/macros.h

These tests will help catch problems similar to the one recently
fixed for cygwin declaring getsubopt in the wrong header.

* tests/test-isfinite.c (isfinite): Ensure macro declaration.
* tests/test-isinf.c (isinf): Likewise.
* tests/test-isnan.c (isnan): Likewise.
* tests/test-signbit.c (signbit): Likewise.
* tests/test-atexit.c (signature_check): Ensure function is
declared with correct signature in correct header.
* tests/test-btowc.c (signature_check): Likewise.
* tests/test-canonicalize-lgpl.c (signature_check1)
(signature_check2): Likewise.
* tests/test-ceilf1.c (signature_check): Likewise.
* tests/test-ceill.c (signature_check): Likewise.
* tests/test-chown.c (signature_check): Likewise.
* tests/test-dprintf-posix.c (signature_check): Likewise.
* tests/test-dup2.c (signature_check): Likewise.
* tests/test-dup3.c (signature_check): Likewise.
* tests/test-duplocale.c (signature_check): Likewise.
* tests/test-fchdir.c (signature_check): Likewise.
* tests/test-fchownat.c (signature_check): Likewise.
* tests/test-fcntl.c (signature_check): Likewise.
* tests/test-fdopendir.c (signature_check): Likewise.
* tests/test-fflush.c (signature_check): Likewise.
* tests/test-flock.c (signature_check): Likewise.
* tests/test-floorf1.c (signature_check): Likewise.
* tests/test-floorl.c (signature_check): Likewise.
* tests/test-fnmatch.c (signature_check): Likewise.
* tests/test-fopen.c (signature_check): Likewise.
* tests/test-fprintf-posix.c (signature_check): Likewise.
* tests/test-freopen.c (signature_check): Likewise.
* tests/test-frexp.c (signature_check): Likewise.
* tests/test-frexpl.c (signature_check): Likewise.
* tests/test-fseek.c (signature_check): Likewise.
* tests/test-fseeko.c (signature_check): Likewise.
* tests/test-fstatat.c (signature_check): Likewise.
* tests/test-fsync.c (signature_check): Likewise.
* tests/test-ftell.c (signature_check): Likewise.
* tests/test-ftello.c (signature_check): Likewise.
* tests/test-futimens.c (signature_check): Likewise.
* tests/test-getaddrinfo.c (signature_check1, signature_check2)
(signature_check3): Likewise.
* tests/test-getcwd.c (signature_check): Likewise.
* tests/test-getdelim.c (signature_check): Likewise.
* tests/test-getdtablesize.c (signature_check): Likewise.
* tests/test-getgroups.c (signature_check): Likewise.
* tests/test-gethostname.c (signature_check): Likewise.
* tests/test-getline.c (signature_check): Likewise.
* tests/test-getopt.c (signature_check1, signature_check2)
(signature_check3): Likewise.
* tests/test-gettimeofday.c (signature_check): Likewise.
* tests/test-glob.c (signature_check1, signature_check2):
Likewise.
* tests/test-iconv.c (signature_check1, signature_check2)
(signature_check3): Likewise.
* tests/test-inet_ntop.c (signature_check): Likewise.
* tests/test-inet_pton.c (signature_check): Likewise.
* tests/test-isblank.c (signature_check): Likewise.
* tests/test-lchown.c (signature_check): Likewise.
* tests/test-ldexpl.c (signature_check): Likewise.
* tests/test-link.c (signature_check): Likewise.
* tests/test-linkat.c (signature_check): Likewise.
* tests/test-lseek.c (signature_check): Likewise.
* tests/test-lstat.c (signature_check): Likewise.
* tests/test-mbrtowc.c (signature_check): Likewise.
* tests/test-mbsinit.c (signature_check): Likewise.
* tests/test-mbsnrtowcs.c (signature_check): Likewise.
* tests/test-mbsrtowcs.c (signature_check): Likewise.
* tests/test-memchr.c (signature_check): Likewise.
* tests/test-memcmp.c (signature_check): Likewise.
* tests/test-memmem.c (signature_check): Likewise.
* tests/test-memrchr.c (signature_check): Likewise.
* tests/test-mkdir.c (signature_check): Likewise.
* tests/test-mkdirat.c (signature_check): Likewise.
* tests/test-mkfifo.c (signature_check): Likewise.
* tests/test-mkfifoat.c (signature_check1, signature_check2):
Likewise.
* tests/test-mknod.c (signature_check): Likewise.
* tests/test-nanosleep.c (signature_check): Likewise.
* tests/test-nl_langinfo.c (signature_check): Likewise.
* tests/test-obstack-printf.c (signature_check): Likewise.
* tests/test-open.c (signature_check): Likewise.
* tests/test-openat.c (signature_check): Likewise.
* tests/test-perror.c (signature_check): Likewise.
* tests/test-pipe2.c (signature_check): Likewise.
* tests/test-poll.c (signature_check): Likewise.
* tests/test-popen.c (signature_check1, signature_check2):
Likewise.
* tests/test-posix_spawn1.c (signature_check1, signature_check2)
(signature_check3, signature_check4, signature_check5)
(signature_check6, signature_check7, signature_check8)
(signature_check9, signature_check10): Likewise.
* tests/test-posix_spawn3.c (signature_check): Likewise.
* tests/test-pread.c (signature_check): Likewise.
* tests/test-printf-posix.c (signature_check): Likewise.
* tests/test-pty.c (signature_check1, signature_check2):
Likewise.
* tests/test-random_r.c (signature_check1, signature_check2)
(signature_check3, signature_check4): Likewise.
* tests/test-rawmemchr.c (signature_check): Likewise.
* tests/test-readlink.c (signature_check): Likewise.
* tests/test-remove.c (signature_check): Likewise.
* tests/test-rename.c (signature_check): Likewise.
* tests/test-renameat.c (signature_check): Likewise.
* tests/test-rmdir.c (signature_check): Likewise.
* tests/test-round1.c (signature_check): Likewise.
* tests/test-roundf1.c (signature_check): Likewise.
* tests/test-roundl.c (signature_check): Likewise.
* tests/test-select.c (signature_check): Likewise.
* tests/test-setenv.c (signature_check): Likewise.
* tests/test-sigaction.c (signature_check): Likewise.
* tests/test-sleep.c (signature_check): Likewise.
* tests/test-snprintf.c (signature_check): Likewise.
* tests/test-sprintf-posix.c (signature_check): Likewise.
* tests/test-stat.c (signature_check): Likewise.
* tests/test-stpncpy.c (signature_check): Likewise.
* tests/test-strcasestr.c (signature_check): Likewise.
* tests/test-strchrnul.c (signature_check): Likewise.
* tests/test-strerror.c (signature_check): Likewise.
* tests/test-strsignal.c (signature_check): Likewise.
* tests/test-strstr.c (signature_check): Likewise.
* tests/test-strtod.c (signature_check): Likewise.
* tests/test-strverscmp.c (signature_check): Likewise.
* tests/test-symlink.c (signature_check): Likewise.
* tests/test-symlinkat.c (signature_check1, signature_check2):
Likewise.
* tests/test-times.c (signature_check): Likewise.
* tests/test-trunc1.c (signature_check): Likewise.
* tests/test-truncf1.c (signature_check): Likewise.
* tests/test-truncl.c (signature_check): Likewise.
* tests/test-tsearch.c (signature_check1, signature_check2)
(signature_check3, signature_check4): Likewise.
* tests/test-uname.c (signature_check): Likewise.
* tests/test-unlink.c (signature_check): Likewise.
* tests/test-unlinkat.c (signature_check): Likewise.
* tests/test-unsetenv.c (signature_check): Likewise.
* tests/test-usleep.c (signature_check): Likewise.
* tests/test-utimensat.c (signature_check): Likewise.
* tests/test-vasprintf.c (signature_check1, signature_check2):
Likewise.
* tests/test-vdprintf-posix.c (signature_check): Likewise.
* tests/test-vfprintf-posix.c (signature_check): Likewise.
* tests/test-vprintf-posix.c (signature_check): Likewise.
* tests/test-vsnprintf.c (signature_check): Likewise.
* tests/test-vsprintf-posix.c (signature_check): Likewise.
* tests/test-wcrtomb.c (signature_check): Likewise.
* tests/test-wcsnrtombs.c (signature_check): Likewise.
* tests/test-wcsrtombs.c (signature_check): Likewise.
* tests/test-wcwidth.c (signature_check): Likewise.

Signed-off-by: Eric Blake <address@hidden>
---
 ChangeLog                      |  150 ++++++++++++++++++++++++++++++++++++++++
 m4/gnulib-common.m4            |    9 +++
 tests/test-atexit.c            |    5 +-
 tests/test-btowc.c             |    4 +-
 tests/test-canonicalize-lgpl.c |    3 +
 tests/test-ceilf1.c            |    4 +-
 tests/test-ceill.c             |    2 +
 tests/test-chown.c             |    2 +
 tests/test-dprintf-posix.c     |    2 +
 tests/test-dup2.c              |    2 +
 tests/test-dup3.c              |    2 +
 tests/test-duplocale.c         |    2 +
 tests/test-fchdir.c            |    2 +
 tests/test-fchownat.c          |    2 +
 tests/test-fcntl.c             |    2 +
 tests/test-fdopendir.c         |    2 +
 tests/test-fflush.c            |    3 +
 tests/test-flock.c             |    8 ++-
 tests/test-floorf1.c           |    4 +-
 tests/test-floorl.c            |    2 +
 tests/test-fnmatch.c           |    2 +
 tests/test-fopen.c             |    2 +
 tests/test-fprintf-posix.c     |    4 +-
 tests/test-freopen.c           |    5 +-
 tests/test-frexp.c             |    4 +-
 tests/test-frexpl.c            |    2 +
 tests/test-fseek.c             |    3 +
 tests/test-fseeko.c            |    3 +
 tests/test-fstatat.c           |    2 +
 tests/test-fsync.c             |    5 +-
 tests/test-ftell.c             |    3 +
 tests/test-ftello.c            |    3 +
 tests/test-futimens.c          |    2 +
 tests/test-getaddrinfo.c       |    7 ++
 tests/test-getcwd.c            |    2 +
 tests/test-getdelim.c          |    3 +
 tests/test-getdtablesize.c     |    4 +-
 tests/test-getgroups.c         |    2 +
 tests/test-gethostname.c       |    3 +
 tests/test-getline.c           |    3 +
 tests/test-getopt.c            |   14 ++++
 tests/test-gettimeofday.c      |    3 +
 tests/test-glob.c              |    4 +
 tests/test-iconv.c             |   12 +++-
 tests/test-inet_ntop.c         |    3 +
 tests/test-inet_pton.c         |    2 +
 tests/test-isblank.c           |    2 +
 tests/test-isfinite.c          |   10 ++-
 tests/test-isinf.c             |   10 ++-
 tests/test-isnan.c             |    5 ++
 tests/test-lchown.c            |    2 +
 tests/test-ldexpl.c            |    2 +
 tests/test-link.c              |    2 +
 tests/test-linkat.c            |    2 +
 tests/test-lseek.c             |    7 ++-
 tests/test-lstat.c             |    6 ++
 tests/test-mbrtowc.c           |    5 +-
 tests/test-mbsinit.c           |    4 +-
 tests/test-mbsnrtowcs.c        |    5 +-
 tests/test-mbsrtowcs.c         |    5 +-
 tests/test-memchr.c            |    2 +
 tests/test-memcmp.c            |    2 +
 tests/test-memmem.c            |    2 +
 tests/test-memrchr.c           |    2 +
 tests/test-mkdir.c             |    2 +
 tests/test-mkdirat.c           |    2 +
 tests/test-mkfifo.c            |    2 +
 tests/test-mkfifoat.c          |    3 +
 tests/test-mknod.c             |    2 +
 tests/test-nanosleep.c         |    2 +
 tests/test-nl_langinfo.c       |    2 +
 tests/test-obstack-printf.c    |    4 +
 tests/test-open.c              |    2 +
 tests/test-openat.c            |    2 +
 tests/test-perror.c            |    4 +-
 tests/test-pipe2.c             |    2 +
 tests/test-poll.c              |    5 +-
 tests/test-popen.c             |    3 +
 tests/test-posix_spawn1.c      |   21 ++++++
 tests/test-posix_spawn3.c      |    4 +
 tests/test-pread.c             |    2 +
 tests/test-printf-posix.c      |    4 +-
 tests/test-pty.c               |    5 ++
 tests/test-random_r.c          |   10 +++-
 tests/test-rawmemchr.c         |    2 +
 tests/test-readlink.c          |    2 +
 tests/test-remove.c            |    2 +
 tests/test-rename.c            |    5 +-
 tests/test-renameat.c          |    2 +
 tests/test-rmdir.c             |    2 +
 tests/test-round1.c            |    4 +-
 tests/test-roundf1.c           |    4 +-
 tests/test-roundl.c            |    2 +
 tests/test-select.c            |    5 ++
 tests/test-setenv.c            |    2 +
 tests/test-sigaction.c         |    3 +
 tests/test-signbit.c           |    5 ++
 tests/test-sleep.c             |    2 +
 tests/test-snprintf.c          |    4 +-
 tests/test-sprintf-posix.c     |    4 +-
 tests/test-stat.c              |    6 ++
 tests/test-stpncpy.c           |    5 +-
 tests/test-strcasestr.c        |    4 +-
 tests/test-strchrnul.c         |    2 +
 tests/test-strerror.c          |    5 +-
 tests/test-strsignal.c         |    5 +-
 tests/test-strstr.c            |    2 +
 tests/test-strtod.c            |    2 +
 tests/test-strverscmp.c        |    2 +
 tests/test-symlink.c           |    2 +
 tests/test-symlinkat.c         |    3 +
 tests/test-times.c             |    5 +-
 tests/test-trunc1.c            |    4 +-
 tests/test-truncf1.c           |    4 +-
 tests/test-truncl.c            |    2 +
 tests/test-tsearch.c           |   11 +++-
 tests/test-uname.c             |    2 +
 tests/test-unlink.c            |    2 +
 tests/test-unlinkat.c          |    2 +
 tests/test-unsetenv.c          |    2 +
 tests/test-usleep.c            |    2 +
 tests/test-utimensat.c         |    3 +
 tests/test-vasprintf.c         |    5 +-
 tests/test-vdprintf-posix.c    |    2 +
 tests/test-vfprintf-posix.c    |    4 +-
 tests/test-vprintf-posix.c     |    4 +-
 tests/test-vsnprintf.c         |    4 +-
 tests/test-vsprintf-posix.c    |    4 +-
 tests/test-wcrtomb.c           |    4 +-
 tests/test-wcsnrtombs.c        |    5 +-
 tests/test-wcsrtombs.c         |    5 +-
 tests/test-wcwidth.c           |    4 +-
 132 files changed, 590 insertions(+), 50 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 2133dc5..55f9f22 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,153 @@
+2009-12-22  Eric Blake  <address@hidden>
+
+       tests: add signature checks
+       * tests/test-isfinite.c (isfinite): Ensure macro declaration.
+       * tests/test-isinf.c (isinf): Likewise.
+       * tests/test-isnan.c (isnan): Likewise.
+       * tests/test-signbit.c (signbit): Likewise.
+       * tests/test-atexit.c (signature_check): Ensure function is
+       declared with correct signature in correct header.
+       * tests/test-btowc.c (signature_check): Likewise.
+       * tests/test-canonicalize-lgpl.c (signature_check1)
+       (signature_check2): Likewise.
+       * tests/test-ceilf1.c (signature_check): Likewise.
+       * tests/test-ceill.c (signature_check): Likewise.
+       * tests/test-chown.c (signature_check): Likewise.
+       * tests/test-dprintf-posix.c (signature_check): Likewise.
+       * tests/test-dup2.c (signature_check): Likewise.
+       * tests/test-dup3.c (signature_check): Likewise.
+       * tests/test-duplocale.c (signature_check): Likewise.
+       * tests/test-fchdir.c (signature_check): Likewise.
+       * tests/test-fchownat.c (signature_check): Likewise.
+       * tests/test-fcntl.c (signature_check): Likewise.
+       * tests/test-fdopendir.c (signature_check): Likewise.
+       * tests/test-fflush.c (signature_check): Likewise.
+       * tests/test-flock.c (signature_check): Likewise.
+       * tests/test-floorf1.c (signature_check): Likewise.
+       * tests/test-floorl.c (signature_check): Likewise.
+       * tests/test-fnmatch.c (signature_check): Likewise.
+       * tests/test-fopen.c (signature_check): Likewise.
+       * tests/test-fprintf-posix.c (signature_check): Likewise.
+       * tests/test-freopen.c (signature_check): Likewise.
+       * tests/test-frexp.c (signature_check): Likewise.
+       * tests/test-frexpl.c (signature_check): Likewise.
+       * tests/test-fseek.c (signature_check): Likewise.
+       * tests/test-fseeko.c (signature_check): Likewise.
+       * tests/test-fstatat.c (signature_check): Likewise.
+       * tests/test-fsync.c (signature_check): Likewise.
+       * tests/test-ftell.c (signature_check): Likewise.
+       * tests/test-ftello.c (signature_check): Likewise.
+       * tests/test-futimens.c (signature_check): Likewise.
+       * tests/test-getaddrinfo.c (signature_check1, signature_check2)
+       (signature_check3): Likewise.
+       * tests/test-getcwd.c (signature_check): Likewise.
+       * tests/test-getdelim.c (signature_check): Likewise.
+       * tests/test-getdtablesize.c (signature_check): Likewise.
+       * tests/test-getgroups.c (signature_check): Likewise.
+       * tests/test-gethostname.c (signature_check): Likewise.
+       * tests/test-getline.c (signature_check): Likewise.
+       * tests/test-getopt.c (signature_check1, signature_check2)
+       (signature_check3): Likewise.
+       * tests/test-gettimeofday.c (signature_check): Likewise.
+       * tests/test-glob.c (signature_check1, signature_check2):
+       Likewise.
+       * tests/test-iconv.c (signature_check1, signature_check2)
+       (signature_check3): Likewise.
+       * tests/test-inet_ntop.c (signature_check): Likewise.
+       * tests/test-inet_pton.c (signature_check): Likewise.
+       * tests/test-isblank.c (signature_check): Likewise.
+       * tests/test-lchown.c (signature_check): Likewise.
+       * tests/test-ldexpl.c (signature_check): Likewise.
+       * tests/test-link.c (signature_check): Likewise.
+       * tests/test-linkat.c (signature_check): Likewise.
+       * tests/test-lseek.c (signature_check): Likewise.
+       * tests/test-lstat.c (signature_check): Likewise.
+       * tests/test-mbrtowc.c (signature_check): Likewise.
+       * tests/test-mbsinit.c (signature_check): Likewise.
+       * tests/test-mbsnrtowcs.c (signature_check): Likewise.
+       * tests/test-mbsrtowcs.c (signature_check): Likewise.
+       * tests/test-memchr.c (signature_check): Likewise.
+       * tests/test-memcmp.c (signature_check): Likewise.
+       * tests/test-memmem.c (signature_check): Likewise.
+       * tests/test-memrchr.c (signature_check): Likewise.
+       * tests/test-mkdir.c (signature_check): Likewise.
+       * tests/test-mkdirat.c (signature_check): Likewise.
+       * tests/test-mkfifo.c (signature_check): Likewise.
+       * tests/test-mkfifoat.c (signature_check1, signature_check2):
+       Likewise.
+       * tests/test-mknod.c (signature_check): Likewise.
+       * tests/test-nanosleep.c (signature_check): Likewise.
+       * tests/test-nl_langinfo.c (signature_check): Likewise.
+       * tests/test-obstack-printf.c (signature_check): Likewise.
+       * tests/test-open.c (signature_check): Likewise.
+       * tests/test-openat.c (signature_check): Likewise.
+       * tests/test-perror.c (signature_check): Likewise.
+       * tests/test-pipe2.c (signature_check): Likewise.
+       * tests/test-poll.c (signature_check): Likewise.
+       * tests/test-popen.c (signature_check1, signature_check2):
+       Likewise.
+       * tests/test-posix_spawn1.c (signature_check1, signature_check2)
+       (signature_check3, signature_check4, signature_check5)
+       (signature_check6, signature_check7, signature_check8)
+       (signature_check9, signature_check10): Likewise.
+       * tests/test-posix_spawn3.c (signature_check): Likewise.
+       * tests/test-pread.c (signature_check): Likewise.
+       * tests/test-printf-posix.c (signature_check): Likewise.
+       * tests/test-pty.c (signature_check1, signature_check2):
+       Likewise.
+       * tests/test-random_r.c (signature_check1, signature_check2)
+       (signature_check3, signature_check4): Likewise.
+       * tests/test-rawmemchr.c (signature_check): Likewise.
+       * tests/test-readlink.c (signature_check): Likewise.
+       * tests/test-remove.c (signature_check): Likewise.
+       * tests/test-rename.c (signature_check): Likewise.
+       * tests/test-renameat.c (signature_check): Likewise.
+       * tests/test-rmdir.c (signature_check): Likewise.
+       * tests/test-round1.c (signature_check): Likewise.
+       * tests/test-roundf1.c (signature_check): Likewise.
+       * tests/test-roundl.c (signature_check): Likewise.
+       * tests/test-select.c (signature_check): Likewise.
+       * tests/test-setenv.c (signature_check): Likewise.
+       * tests/test-sigaction.c (signature_check): Likewise.
+       * tests/test-sleep.c (signature_check): Likewise.
+       * tests/test-snprintf.c (signature_check): Likewise.
+       * tests/test-sprintf-posix.c (signature_check): Likewise.
+       * tests/test-stat.c (signature_check): Likewise.
+       * tests/test-stpncpy.c (signature_check): Likewise.
+       * tests/test-strcasestr.c (signature_check): Likewise.
+       * tests/test-strchrnul.c (signature_check): Likewise.
+       * tests/test-strerror.c (signature_check): Likewise.
+       * tests/test-strsignal.c (signature_check): Likewise.
+       * tests/test-strstr.c (signature_check): Likewise.
+       * tests/test-strtod.c (signature_check): Likewise.
+       * tests/test-strverscmp.c (signature_check): Likewise.
+       * tests/test-symlink.c (signature_check): Likewise.
+       * tests/test-symlinkat.c (signature_check1, signature_check2):
+       Likewise.
+       * tests/test-times.c (signature_check): Likewise.
+       * tests/test-trunc1.c (signature_check): Likewise.
+       * tests/test-truncf1.c (signature_check): Likewise.
+       * tests/test-truncl.c (signature_check): Likewise.
+       * tests/test-tsearch.c (signature_check1, signature_check2)
+       (signature_check3, signature_check4): Likewise.
+       * tests/test-uname.c (signature_check): Likewise.
+       * tests/test-unlink.c (signature_check): Likewise.
+       * tests/test-unlinkat.c (signature_check): Likewise.
+       * tests/test-unsetenv.c (signature_check): Likewise.
+       * tests/test-usleep.c (signature_check): Likewise.
+       * tests/test-utimensat.c (signature_check): Likewise.
+       * tests/test-vasprintf.c (signature_check1, signature_check2):
+       Likewise.
+       * tests/test-vdprintf-posix.c (signature_check): Likewise.
+       * tests/test-vfprintf-posix.c (signature_check): Likewise.
+       * tests/test-vprintf-posix.c (signature_check): Likewise.
+       * tests/test-vsnprintf.c (signature_check): Likewise.
+       * tests/test-vsprintf-posix.c (signature_check): Likewise.
+       * tests/test-wcrtomb.c (signature_check): Likewise.
+       * tests/test-wcsnrtombs.c (signature_check): Likewise.
+       * tests/test-wcsrtombs.c (signature_check): Likewise.
+       * tests/test-wcwidth.c (signature_check): Likewise.
+
 2009-12-23  Bruno Haible  <address@hidden>

        localename: More tests.
diff --git a/m4/gnulib-common.m4 b/m4/gnulib-common.m4
index 63c6300..e555ae4 100644
--- a/m4/gnulib-common.m4
+++ b/m4/gnulib-common.m4
@@ -35,6 +35,15 @@ AC_DEFUN([gl_COMMON_BODY], [
    is a misnomer outside of parameter lists.  */
 #define _UNUSED_PARAMETER_ _GL_UNUSED
 ])
+  AH_VERBATIM([temporary],
+[/* Used in unit tests, until we have tests/macros.h.  */
+#define SIGNATURE_CHECK(fn, ret, args) \
+  SIGNATURE_CHECK1 (fn, ret, args, __LINE__)
+#define SIGNATURE_CHECK1(fn, ret, args, id) \
+  SIGNATURE_CHECK2 (fn, ret, args, id) /* macroexpand line */
+#define SIGNATURE_CHECK2(fn, ret, args, id) \
+static ret (* _GL_UNUSED signature_check ## id) args = fn
+])
 ])

 # gl_MODULE_INDICATOR([modulename])
diff --git a/tests/test-atexit.c b/tests/test-atexit.c
index 97afff5..d195f5d 100644
--- a/tests/test-atexit.c
+++ b/tests/test-atexit.c
@@ -1,5 +1,5 @@
 /* Test of execution of program termination handlers.
-   Copyright (C) 2007 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -19,6 +19,9 @@
 #include <config.h>

 #include <stdlib.h>
+
+SIGNATURE_CHECK (atexit, int, (void (*) (void)));
+
 #include <unistd.h>

 #define TEMPFILE "t-atexit.tmp"
diff --git a/tests/test-btowc.c b/tests/test-btowc.c
index b447d05..b182076 100644
--- a/tests/test-btowc.c
+++ b/tests/test-btowc.c
@@ -1,5 +1,5 @@
 /* Test of conversion of unibyte character to wide character.
-   Copyright (C) 2008 Free Software Foundation, Inc.
+   Copyright (C) 2008, 2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,8 @@

 #include <wchar.h>

+SIGNATURE_CHECK (btowc, wint_t, (int));
+
 #include <locale.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/test-canonicalize-lgpl.c b/tests/test-canonicalize-lgpl.c
index 7667983..4c6f3fa 100644
--- a/tests/test-canonicalize-lgpl.c
+++ b/tests/test-canonicalize-lgpl.c
@@ -20,6 +20,9 @@

 #include <stdlib.h>

+SIGNATURE_CHECK (realpath, char *, (const char *, char *));
+SIGNATURE_CHECK (canonicalize_file_name, char *, (const char *));
+
 #include <errno.h>
 #include <fcntl.h>
 #include <stdio.h>
diff --git a/tests/test-ceilf1.c b/tests/test-ceilf1.c
index 3241936..436a3c8 100644
--- a/tests/test-ceilf1.c
+++ b/tests/test-ceilf1.c
@@ -1,5 +1,5 @@
 /* Test of rounding towards positive infinity.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,8 @@

 #include <math.h>

+SIGNATURE_CHECK (ceilf, float, (float));
+
 #include <stdio.h>
 #include <stdlib.h>

diff --git a/tests/test-ceill.c b/tests/test-ceill.c
index 764d2be..2956d2d 100644
--- a/tests/test-ceill.c
+++ b/tests/test-ceill.c
@@ -20,6 +20,8 @@

 #include <math.h>

+SIGNATURE_CHECK (ceill, long double, (long double));
+
 #include <float.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/test-chown.c b/tests/test-chown.c
index 4265970..d7108cb 100644
--- a/tests/test-chown.c
+++ b/tests/test-chown.c
@@ -20,6 +20,8 @@

 #include <unistd.h>

+SIGNATURE_CHECK (chown, int, (char const *, uid_t, gid_t));
+
 #include <fcntl.h>
 #include <errno.h>
 #include <stdbool.h>
diff --git a/tests/test-dprintf-posix.c b/tests/test-dprintf-posix.c
index 384d1ef..4fceb94 100644
--- a/tests/test-dprintf-posix.c
+++ b/tests/test-dprintf-posix.c
@@ -20,6 +20,8 @@

 #include <stdio.h>

+SIGNATURE_CHECK (dprintf, int, (int, const char *, ...));
+
 #include <stddef.h>
 #include <stdint.h>
 #include <stdlib.h>
diff --git a/tests/test-dup2.c b/tests/test-dup2.c
index b22d1e6..d030b2b 100644
--- a/tests/test-dup2.c
+++ b/tests/test-dup2.c
@@ -20,6 +20,8 @@

 #include <unistd.h>

+SIGNATURE_CHECK (dup2, int, (int, int));
+
 #include <errno.h>
 #include <fcntl.h>
 #include <stdio.h>
diff --git a/tests/test-dup3.c b/tests/test-dup3.c
index 41fc16d..f65b70e 100644
--- a/tests/test-dup3.c
+++ b/tests/test-dup3.c
@@ -21,6 +21,8 @@

 #include <unistd.h>

+SIGNATURE_CHECK (dup3, int, (int, int, int));
+
 #include <errno.h>
 #include <fcntl.h>
 #include <stdbool.h>
diff --git a/tests/test-duplocale.c b/tests/test-duplocale.c
index 354e13e..c4122e9 100644
--- a/tests/test-duplocale.c
+++ b/tests/test-duplocale.c
@@ -22,6 +22,8 @@

 #if HAVE_DUPLOCALE

+SIGNATURE_CHECK (duplocale, locale_t, (locale_t));
+
 #include <langinfo.h>
 #include <monetary.h>
 #include <stdio.h>
diff --git a/tests/test-fchdir.c b/tests/test-fchdir.c
index 75819eb..23605b2 100644
--- a/tests/test-fchdir.c
+++ b/tests/test-fchdir.c
@@ -20,6 +20,8 @@

 #include <unistd.h>

+SIGNATURE_CHECK (fchdir, int, (int));
+
 #include <errno.h>
 #include <fcntl.h>
 #include <stdio.h>
diff --git a/tests/test-fchownat.c b/tests/test-fchownat.c
index 2dbc857..41f800b 100644
--- a/tests/test-fchownat.c
+++ b/tests/test-fchownat.c
@@ -20,6 +20,8 @@

 #include <unistd.h>

+SIGNATURE_CHECK (fchownat, int, (int, char const *, uid_t, gid_t, int));
+
 #include <fcntl.h>
 #include <errno.h>
 #include <stdbool.h>
diff --git a/tests/test-fcntl.c b/tests/test-fcntl.c
index c06b41e..7c69211 100644
--- a/tests/test-fcntl.c
+++ b/tests/test-fcntl.c
@@ -21,6 +21,8 @@
 /* Specification.  */
 #include <fcntl.h>

+SIGNATURE_CHECK (fcntl, int, (int, int, ...));
+
 /* Helpers.  */
 #include <errno.h>
 #include <stdarg.h>
diff --git a/tests/test-fdopendir.c b/tests/test-fdopendir.c
index 7e0b3ee..30fa600 100644
--- a/tests/test-fdopendir.c
+++ b/tests/test-fdopendir.c
@@ -20,6 +20,8 @@

 #include <dirent.h>

+SIGNATURE_CHECK (fdopendir, DIR *, (int));
+
 #include <errno.h>
 #include <fcntl.h>
 #include <stdio.h>
diff --git a/tests/test-fflush.c b/tests/test-fflush.c
index 8e33c9f..655eef4 100644
--- a/tests/test-fflush.c
+++ b/tests/test-fflush.c
@@ -19,6 +19,9 @@
 #include <config.h>

 #include <stdio.h>
+
+SIGNATURE_CHECK (fflush, int, (FILE *));
+
 #include <unistd.h>

 int
diff --git a/tests/test-flock.c b/tests/test-flock.c
index e0147e8..12b5021 100644
--- a/tests/test-flock.c
+++ b/tests/test-flock.c
@@ -1,5 +1,5 @@
 /* Test of flock() function.
-   Copyright (C) 2008 Free Software Foundation, Inc.
+   Copyright (C) 2008, 2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -16,14 +16,16 @@

 #include <config.h>

+#include <sys/file.h>
+
+SIGNATURE_CHECK (flock, int, (int, int));
+
 #include <fcntl.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
 #include <errno.h>

-#include <sys/file.h>
-
 #define ASSERT(expr) \
   do                                                                    \
     {                                                                   \
diff --git a/tests/test-floorf1.c b/tests/test-floorf1.c
index 373724a..f64367a 100644
--- a/tests/test-floorf1.c
+++ b/tests/test-floorf1.c
@@ -1,5 +1,5 @@
 /* Test of rounding towards negative infinity.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,8 @@

 #include <math.h>

+SIGNATURE_CHECK (floorf, float, (float));
+
 #include <stdio.h>
 #include <stdlib.h>

diff --git a/tests/test-floorl.c b/tests/test-floorl.c
index 7afea04..412a7a3 100644
--- a/tests/test-floorl.c
+++ b/tests/test-floorl.c
@@ -20,6 +20,8 @@

 #include <math.h>

+SIGNATURE_CHECK (floorl, long double, (long double));
+
 #include <float.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/test-fnmatch.c b/tests/test-fnmatch.c
index 3e21d9d..334d89f 100644
--- a/tests/test-fnmatch.c
+++ b/tests/test-fnmatch.c
@@ -20,6 +20,8 @@

 #include <fnmatch.h>

+SIGNATURE_CHECK (fnmatch, int, (char const *, char const *, int));
+
 #include <stdio.h>
 #include <stdlib.h>

diff --git a/tests/test-fopen.c b/tests/test-fopen.c
index 29d7839..23927a4 100644
--- a/tests/test-fopen.c
+++ b/tests/test-fopen.c
@@ -20,6 +20,8 @@

 #include <stdio.h>

+SIGNATURE_CHECK (fopen, FILE *, (char const *, char const *));
+
 #define BASE "test-fopen.t"

 #include "test-fopen.h"
diff --git a/tests/test-fprintf-posix.c b/tests/test-fprintf-posix.c
index 4133e40..89a8d28 100644
--- a/tests/test-fprintf-posix.c
+++ b/tests/test-fprintf-posix.c
@@ -1,5 +1,5 @@
 /* Test of POSIX compatible fprintf() function.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,8 @@

 #include <stdio.h>

+SIGNATURE_CHECK (fprintf, int, (FILE *, char const *, ...));
+
 #include <stdarg.h>
 #include <stddef.h>
 #include <stdint.h>
diff --git a/tests/test-freopen.c b/tests/test-freopen.c
index 23f2af5..a14d490 100644
--- a/tests/test-freopen.c
+++ b/tests/test-freopen.c
@@ -1,5 +1,5 @@
 /* Test of opening a file stream.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -19,6 +19,9 @@
 #include <config.h>

 #include <stdio.h>
+
+SIGNATURE_CHECK (freopen, FILE *, (char const *, char const *, FILE *));
+
 #include <stdlib.h>

 #define ASSERT(expr) \
diff --git a/tests/test-frexp.c b/tests/test-frexp.c
index 47ddab2..d640a83 100644
--- a/tests/test-frexp.c
+++ b/tests/test-frexp.c
@@ -1,5 +1,5 @@
 /* Test of splitting a double into fraction and mantissa.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,8 @@

 #include <math.h>

+SIGNATURE_CHECK (frexp, double, (double, int *));
+
 #include <float.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/test-frexpl.c b/tests/test-frexpl.c
index e4367f6..1b4e08c 100644
--- a/tests/test-frexpl.c
+++ b/tests/test-frexpl.c
@@ -20,6 +20,8 @@

 #include <math.h>

+SIGNATURE_CHECK (frexpl, long double, (long double, int *));
+
 #include <float.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/test-fseek.c b/tests/test-fseek.c
index 04fc966..fc023d7 100644
--- a/tests/test-fseek.c
+++ b/tests/test-fseek.c
@@ -19,6 +19,9 @@
 #include <config.h>

 #include <stdio.h>
+
+SIGNATURE_CHECK (fseek, int, (FILE *, long, int));
+
 #include <stdlib.h>

 #define ASSERT(expr) \
diff --git a/tests/test-fseeko.c b/tests/test-fseeko.c
index bdf025f..57f3e8c 100644
--- a/tests/test-fseeko.c
+++ b/tests/test-fseeko.c
@@ -26,6 +26,9 @@
 #endif

 #include <stdio.h>
+
+SIGNATURE_CHECK (fseeko, int, (FILE *, off_t, int));
+
 #include <stdlib.h>

 #define ASSERT(expr) \
diff --git a/tests/test-fstatat.c b/tests/test-fstatat.c
index e965997..6c9f0d5 100644
--- a/tests/test-fstatat.c
+++ b/tests/test-fstatat.c
@@ -20,6 +20,8 @@

 #include <sys/stat.h>

+SIGNATURE_CHECK (fstatat, int, (int, char const *, struct stat *, int));
+
 #include <fcntl.h>
 #include <errno.h>
 #include <stdbool.h>
diff --git a/tests/test-fsync.c b/tests/test-fsync.c
index c00d54f..23b10e5 100644
--- a/tests/test-fsync.c
+++ b/tests/test-fsync.c
@@ -16,10 +16,13 @@

 #include <config.h>

+#include <unistd.h>
+
+SIGNATURE_CHECK (fsync, int, (int));
+
 #include <errno.h>
 #include <stdio.h>
 #include <fcntl.h>
-#include <unistd.h>

 #define ASSERT(expr) \
   do                                                                         \
diff --git a/tests/test-ftell.c b/tests/test-ftell.c
index 0662865..deec2d2 100644
--- a/tests/test-ftell.c
+++ b/tests/test-ftell.c
@@ -19,6 +19,9 @@
 #include <config.h>

 #include <stdio.h>
+
+SIGNATURE_CHECK (ftell, long, (FILE *));
+
 #include <stdlib.h>

 #include "binary-io.h"
diff --git a/tests/test-ftello.c b/tests/test-ftello.c
index dfe5be0..9f59d8b 100644
--- a/tests/test-ftello.c
+++ b/tests/test-ftello.c
@@ -19,6 +19,9 @@
 #include <config.h>

 #include <stdio.h>
+
+SIGNATURE_CHECK (ftello, off_t, (FILE *));
+
 #include <stdlib.h>

 #include "binary-io.h"
diff --git a/tests/test-futimens.c b/tests/test-futimens.c
index 4e049bd..5a4c8f8 100644
--- a/tests/test-futimens.c
+++ b/tests/test-futimens.c
@@ -20,6 +20,8 @@

 #include <sys/stat.h>

+SIGNATURE_CHECK (futimens, int, (int, struct timespec const[2]));
+
 #include <fcntl.h>
 #include <errno.h>
 #include <stdbool.h>
diff --git a/tests/test-getaddrinfo.c b/tests/test-getaddrinfo.c
index 7464ec2..b544110 100644
--- a/tests/test-getaddrinfo.c
+++ b/tests/test-getaddrinfo.c
@@ -18,8 +18,15 @@
 /* Written by Simon Josefsson.  */

 #include <config.h>
+
 #include <netdb.h>

+SIGNATURE_CHECK (freeaddrinfo, void, (struct addrinfo *));
+SIGNATURE_CHECK (gai_strerror, char const *, (int));
+SIGNATURE_CHECK (getaddrinfo, int, (char const *, char const *,
+                                    struct addrinfo const *,
+                                    struct addrinfo **));
+
 #include <arpa/inet.h>
 #include <errno.h>
 #include <netinet/in.h>
diff --git a/tests/test-getcwd.c b/tests/test-getcwd.c
index debace7..2f7b276 100644
--- a/tests/test-getcwd.c
+++ b/tests/test-getcwd.c
@@ -18,6 +18,8 @@

 #include <unistd.h>

+SIGNATURE_CHECK (getcwd, char *, (char *, size_t));
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-getdelim.c b/tests/test-getdelim.c
index 8de43db..4bbca13 100644
--- a/tests/test-getdelim.c
+++ b/tests/test-getdelim.c
@@ -20,6 +20,9 @@
 #include <config.h>

 #include <stdio.h>
+
+SIGNATURE_CHECK (getdelim, ssize_t, (char **, size_t *, int, FILE *));
+
 #include <stdlib.h>
 #include <string.h>

diff --git a/tests/test-getdtablesize.c b/tests/test-getdtablesize.c
index 577d329..12d923a 100644
--- a/tests/test-getdtablesize.c
+++ b/tests/test-getdtablesize.c
@@ -1,5 +1,5 @@
 /* Test of getdtablesize() function.
-   Copyright (C) 2008 Free Software Foundation, Inc.
+   Copyright (C) 2008, 2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,8 @@

 #include <unistd.h>

+SIGNATURE_CHECK (getdtablesize, int, (void));
+
 #include <stdio.h>
 #include <stdlib.h>

diff --git a/tests/test-getgroups.c b/tests/test-getgroups.c
index 6d4a514..e8e0503 100644
--- a/tests/test-getgroups.c
+++ b/tests/test-getgroups.c
@@ -20,6 +20,8 @@

 #include <unistd.h>

+SIGNATURE_CHECK (getgroups, int, (int, gid_t[]));
+
 #include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/test-gethostname.c b/tests/test-gethostname.c
index af1293b..b5e48fb 100644
--- a/tests/test-gethostname.c
+++ b/tests/test-gethostname.c
@@ -19,6 +19,9 @@

 /* Get gethostname() declaration.  */
 #include <unistd.h>
+
+SIGNATURE_CHECK (gethostname, int, (char *, size_t));
+
 /* Get HOST_NAME_MAX definition.  */
 #include <limits.h>

diff --git a/tests/test-getline.c b/tests/test-getline.c
index cc40c55..87a7e11 100644
--- a/tests/test-getline.c
+++ b/tests/test-getline.c
@@ -20,6 +20,9 @@
 #include <config.h>

 #include <stdio.h>
+
+SIGNATURE_CHECK (getline, ssize_t, (char **, size_t *, FILE *));
+
 #include <stdlib.h>
 #include <string.h>

diff --git a/tests/test-getopt.c b/tests/test-getopt.c
index 6811a02..c9ccd8a 100644
--- a/tests/test-getopt.c
+++ b/tests/test-getopt.c
@@ -27,9 +27,23 @@

 #if GNULIB_GETOPT_GNU
 # include <getopt.h>
+
+# ifndef __getopt_argv_const
+#  define __getopt_argv_const const
+# endif
+SIGNATURE_CHECK (getopt_long, int, (int, char *__getopt_argv_const *,
+                                    char const *, struct option const *,
+                                    int *));
+SIGNATURE_CHECK (getopt_long_only, int, (int, char *__getopt_argv_const *,
+                                         char const *, struct option const *,
+                                         int *));
+
 #endif
+
 #include <unistd.h>

+SIGNATURE_CHECK (getopt, int, (int, char * const[], char const *));
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-gettimeofday.c b/tests/test-gettimeofday.c
index 3b85879..bf8c2a0 100644
--- a/tests/test-gettimeofday.c
+++ b/tests/test-gettimeofday.c
@@ -18,6 +18,9 @@
 #include <config.h>

 #include <sys/time.h>
+
+SIGNATURE_CHECK (gettimeofday, int, (struct timeval *, void *));
+
 #include <time.h>

 #include <stdio.h>
diff --git a/tests/test-glob.c b/tests/test-glob.c
index 750d9d8..dc56fed 100644
--- a/tests/test-glob.c
+++ b/tests/test-glob.c
@@ -20,6 +20,10 @@

 #include <glob.h>

+SIGNATURE_CHECK (glob, int, (char const *, int, int (*) (char const *, int),
+                             glob_t *));
+SIGNATURE_CHECK (globfree, void, (glob_t *));
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-iconv.c b/tests/test-iconv.c
index e7e5742..490ee9f 100644
--- a/tests/test-iconv.c
+++ b/tests/test-iconv.c
@@ -1,5 +1,5 @@
 /* Test of character set conversion.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,16 @@

 #if HAVE_ICONV
 # include <iconv.h>
+
+# ifndef ICONV_CONST
+#  define ICONV_CONST /* empty */
+# endif
+
+SIGNATURE_CHECK (iconv, size_t, (iconv_t, ICONV_CONST char **, size_t *,
+                                 char **, size_t *));
+SIGNATURE_CHECK (iconv_close, int, (iconv_t x));
+SIGNATURE_CHECK (iconv_open, iconv_t, (char const *, char const *));
+
 #endif

 #include <errno.h>
diff --git a/tests/test-inet_ntop.c b/tests/test-inet_ntop.c
index 312163a..d5c4028 100644
--- a/tests/test-inet_ntop.c
+++ b/tests/test-inet_ntop.c
@@ -20,6 +20,9 @@

 #include <arpa/inet.h>

+SIGNATURE_CHECK (inet_ntop, char const *, (int, void const *, char *,
+                                           socklen_t));
+
 #include <netinet/in.h>
 #include <sys/socket.h>
 #include <stdio.h>
diff --git a/tests/test-inet_pton.c b/tests/test-inet_pton.c
index dc6401e..5a53084 100644
--- a/tests/test-inet_pton.c
+++ b/tests/test-inet_pton.c
@@ -20,6 +20,8 @@

 #include <arpa/inet.h>

+SIGNATURE_CHECK (inet_pton, int, (int, const char *, void *));
+
 #include <netinet/in.h>
 #include <sys/socket.h>
 #include <stdio.h>
diff --git a/tests/test-isblank.c b/tests/test-isblank.c
index f25d26d..2b686e0 100644
--- a/tests/test-isblank.c
+++ b/tests/test-isblank.c
@@ -20,6 +20,8 @@

 #include <ctype.h>

+SIGNATURE_CHECK (isblank, int, (int));
+
 #include <limits.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/test-isfinite.c b/tests/test-isfinite.c
index 03f5cac..ad4f87d 100644
--- a/tests/test-isfinite.c
+++ b/tests/test-isfinite.c
@@ -1,5 +1,5 @@
 /* Test of isfinite() substitute.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -19,9 +19,15 @@

 #include <config.h>

+#include <math.h>
+
+/* isfinite must be a macro.  */
+#ifndef isfinite
+# error missing declaration
+#endif
+
 #include <float.h>
 #include <limits.h>
-#include <math.h>

 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/test-isinf.c b/tests/test-isinf.c
index dffd990..912d583 100644
--- a/tests/test-isinf.c
+++ b/tests/test-isinf.c
@@ -1,5 +1,5 @@
 /* Test of isinf() substitute.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -19,9 +19,15 @@

 #include <config.h>

+#include <math.h>
+
+/* isinf must be a macro.  */
+#ifndef isinf
+# error missing declaration
+#endif
+
 #include <float.h>
 #include <limits.h>
-#include <math.h>

 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/test-isnan.c b/tests/test-isnan.c
index e9dd5e3..74bb9d9 100644
--- a/tests/test-isnan.c
+++ b/tests/test-isnan.c
@@ -21,6 +21,11 @@

 #include <math.h>

+/* isnan must be a macro.  */
+#ifndef isnan
+# error missing declaration
+#endif
+
 #include <float.h>
 #include <limits.h>
 #include <stdio.h>
diff --git a/tests/test-lchown.c b/tests/test-lchown.c
index 78c2940..bc54ee1 100644
--- a/tests/test-lchown.c
+++ b/tests/test-lchown.c
@@ -20,6 +20,8 @@

 #include <unistd.h>

+SIGNATURE_CHECK (lchown, int, (char const *, uid_t, gid_t));
+
 #include <fcntl.h>
 #include <errno.h>
 #include <stdbool.h>
diff --git a/tests/test-ldexpl.c b/tests/test-ldexpl.c
index 42faf60..5cfed1b 100644
--- a/tests/test-ldexpl.c
+++ b/tests/test-ldexpl.c
@@ -20,6 +20,8 @@

 #include <math.h>

+SIGNATURE_CHECK (ldexpl, long double, (long double, int));
+
 #include <float.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/test-link.c b/tests/test-link.c
index dd7df2e..0c801e0 100644
--- a/tests/test-link.c
+++ b/tests/test-link.c
@@ -18,6 +18,8 @@

 #include <unistd.h>

+SIGNATURE_CHECK (link, int, (char const *, char const *));
+
 #include <errno.h>
 #include <fcntl.h>
 #include <stdbool.h>
diff --git a/tests/test-linkat.c b/tests/test-linkat.c
index 11233fe..0640668 100644
--- a/tests/test-linkat.c
+++ b/tests/test-linkat.c
@@ -20,6 +20,8 @@

 #include <unistd.h>

+SIGNATURE_CHECK (linkat, int, (int, char const *, int, char const *, int));
+
 #include <fcntl.h>
 #include <errno.h>
 #include <stdbool.h>
diff --git a/tests/test-lseek.c b/tests/test-lseek.c
index e474a0b..35ee895 100644
--- a/tests/test-lseek.c
+++ b/tests/test-lseek.c
@@ -1,5 +1,5 @@
 /* Test of lseek() function.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -18,9 +18,12 @@

 #include <config.h>

+#include <unistd.h>
+
+SIGNATURE_CHECK (lseek, off_t, (int, off_t, int));
+
 #include <errno.h>
 #include <stdio.h>
-#include <unistd.h>

 #define ASSERT(expr) \
   do                                                                         \
diff --git a/tests/test-lstat.c b/tests/test-lstat.c
index 8c62bc1..75692f3 100644
--- a/tests/test-lstat.c
+++ b/tests/test-lstat.c
@@ -20,6 +20,12 @@

 #include <sys/stat.h>

+/* Caution: lstat may be a function-like macro.  Although this
+   signature check must pass, it may be the signature of the real (and
+   broken) lstat rather than rpl_lstat.  Most code should not use the
+   address of lstat.  */
+SIGNATURE_CHECK (lstat, int, (char const *, struct stat *));
+
 #include <fcntl.h>
 #include <errno.h>
 #include <stdbool.h>
diff --git a/tests/test-mbrtowc.c b/tests/test-mbrtowc.c
index 178e210..e5a641f 100644
--- a/tests/test-mbrtowc.c
+++ b/tests/test-mbrtowc.c
@@ -1,5 +1,5 @@
 /* Test of conversion of multibyte character to wide character.
-   Copyright (C) 2008 Free Software Foundation, Inc.
+   Copyright (C) 2008, 2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,9 @@

 #include <wchar.h>

+SIGNATURE_CHECK (mbrtowc, size_t, (wchar_t *, char const *, size_t,
+                                   mbstate_t *));
+
 #include <locale.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/test-mbsinit.c b/tests/test-mbsinit.c
index 392b853..7784de7 100644
--- a/tests/test-mbsinit.c
+++ b/tests/test-mbsinit.c
@@ -1,5 +1,5 @@
 /* Test of test for initial conversion state.
-   Copyright (C) 2008 Free Software Foundation, Inc.
+   Copyright (C) 2008, 2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,8 @@

 #include <wchar.h>

+SIGNATURE_CHECK (mbsinit, int, (const mbstate_t *));
+
 #include <locale.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/test-mbsnrtowcs.c b/tests/test-mbsnrtowcs.c
index 60a8e18..d76e51b 100644
--- a/tests/test-mbsnrtowcs.c
+++ b/tests/test-mbsnrtowcs.c
@@ -1,5 +1,5 @@
 /* Test of conversion of string to wide string.
-   Copyright (C) 2008 Free Software Foundation, Inc.
+   Copyright (C) 2008, 2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,9 @@

 #include <wchar.h>

+SIGNATURE_CHECK (mbsnrtowcs, size_t, (wchar_t *, char const **, size_t, size_t,
+                                      mbstate_t *));
+
 #include <locale.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/test-mbsrtowcs.c b/tests/test-mbsrtowcs.c
index 49cb78a..d0caa16 100644
--- a/tests/test-mbsrtowcs.c
+++ b/tests/test-mbsrtowcs.c
@@ -1,5 +1,5 @@
 /* Test of conversion of string to wide string.
-   Copyright (C) 2008 Free Software Foundation, Inc.
+   Copyright (C) 2008, 2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,9 @@

 #include <wchar.h>

+SIGNATURE_CHECK (mbsrtowcs, size_t, (wchar_t *, char const **, size_t,
+                                     mbstate_t *));
+
 #include <locale.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/test-memchr.c b/tests/test-memchr.c
index 582df89..60637ee 100644
--- a/tests/test-memchr.c
+++ b/tests/test-memchr.c
@@ -19,6 +19,8 @@

 #include <string.h>

+SIGNATURE_CHECK (memchr, void *, (void const *, int, size_t));
+
 #include <stdio.h>
 #include <stdlib.h>

diff --git a/tests/test-memcmp.c b/tests/test-memcmp.c
index 8740316..68170a4 100644
--- a/tests/test-memcmp.c
+++ b/tests/test-memcmp.c
@@ -19,6 +19,8 @@

 #include <string.h>

+SIGNATURE_CHECK (memcmp, int, (void const *, void const *, size_t));
+
 #include <stdio.h>
 #include <stdlib.h>

diff --git a/tests/test-memmem.c b/tests/test-memmem.c
index 75a2505..55c1b6d 100644
--- a/tests/test-memmem.c
+++ b/tests/test-memmem.c
@@ -19,6 +19,8 @@

 #include <string.h>

+SIGNATURE_CHECK (memmem, void *, (void const *, size_t, void const *, size_t));
+
 #include <signal.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/test-memrchr.c b/tests/test-memrchr.c
index 17bc1f6..889547c 100644
--- a/tests/test-memrchr.c
+++ b/tests/test-memrchr.c
@@ -19,6 +19,8 @@

 #include <string.h>

+SIGNATURE_CHECK (memrchr, void *, (void const *, int, size_t));
+
 #include <stdio.h>
 #include <stdlib.h>

diff --git a/tests/test-mkdir.c b/tests/test-mkdir.c
index 6a19c30..8ea505e 100644
--- a/tests/test-mkdir.c
+++ b/tests/test-mkdir.c
@@ -20,6 +20,8 @@

 #include <sys/stat.h>

+SIGNATURE_CHECK (mkdir, int, (char const *, mode_t));
+
 #include <fcntl.h>
 #include <errno.h>
 #include <stdbool.h>
diff --git a/tests/test-mkdirat.c b/tests/test-mkdirat.c
index 9b59f17..6704a46 100644
--- a/tests/test-mkdirat.c
+++ b/tests/test-mkdirat.c
@@ -20,6 +20,8 @@

 #include <sys/stat.h>

+SIGNATURE_CHECK (mkdirat, int, (int, char const *, mode_t));
+
 #include <fcntl.h>
 #include <errno.h>
 #include <stdbool.h>
diff --git a/tests/test-mkfifo.c b/tests/test-mkfifo.c
index 3a0336c..a031cd4 100644
--- a/tests/test-mkfifo.c
+++ b/tests/test-mkfifo.c
@@ -20,6 +20,8 @@

 #include <sys/stat.h>

+SIGNATURE_CHECK (mkfifo, int, (char const *, mode_t));
+
 #include <fcntl.h>
 #include <errno.h>
 #include <stdbool.h>
diff --git a/tests/test-mkfifoat.c b/tests/test-mkfifoat.c
index fca3411..4f16be3 100644
--- a/tests/test-mkfifoat.c
+++ b/tests/test-mkfifoat.c
@@ -20,6 +20,9 @@

 #include <sys/stat.h>

+SIGNATURE_CHECK (mkfifoat, int, (int, char const *, mode_t));
+SIGNATURE_CHECK (mknodat, int, (int, char const *, mode_t, dev_t));
+
 #include <fcntl.h>
 #include <errno.h>
 #include <stdbool.h>
diff --git a/tests/test-mknod.c b/tests/test-mknod.c
index 2e30883..f3a35e5 100644
--- a/tests/test-mknod.c
+++ b/tests/test-mknod.c
@@ -20,6 +20,8 @@

 #include <sys/stat.h>

+SIGNATURE_CHECK (mknod, int, (char const *, mode_t, dev_t));
+
 #include <fcntl.h>
 #include <errno.h>
 #include <stdbool.h>
diff --git a/tests/test-nanosleep.c b/tests/test-nanosleep.c
index 426ea99..4356ce0 100644
--- a/tests/test-nanosleep.c
+++ b/tests/test-nanosleep.c
@@ -20,6 +20,8 @@

 #include <time.h>

+SIGNATURE_CHECK (nanosleep, int, (struct timespec const *, struct timepec *));
+
 #include <errno.h>
 #include <signal.h>
 #include <stdio.h>
diff --git a/tests/test-nl_langinfo.c b/tests/test-nl_langinfo.c
index 337e6ec..f0f23f9 100644
--- a/tests/test-nl_langinfo.c
+++ b/tests/test-nl_langinfo.c
@@ -20,6 +20,8 @@

 #include <langinfo.h>

+SIGNATURE_CHECK (nl_langinfo, char *, (nl_item));
+
 #include <locale.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/test-obstack-printf.c b/tests/test-obstack-printf.c
index fdbdcfa..a268672 100644
--- a/tests/test-obstack-printf.c
+++ b/tests/test-obstack-printf.c
@@ -20,6 +20,10 @@

 #include <stdio.h>

+SIGNATURE_CHECK (obstack_printf, int, (struct obstack *, char const *, ...));
+SIGNATURE_CHECK (obstack_vprintf, int, (struct obstack *, char const *,
+                                        va_list));
+
 #include "obstack.h"
 #include "xalloc.h"

diff --git a/tests/test-open.c b/tests/test-open.c
index 37109a5..8683ee1 100644
--- a/tests/test-open.c
+++ b/tests/test-open.c
@@ -20,6 +20,8 @@

 #include <fcntl.h>

+SIGNATURE_CHECK (open, int, (char const *, int, ...));
+
 #include <errno.h>
 #include <stdbool.h>
 #include <stdio.h>
diff --git a/tests/test-openat.c b/tests/test-openat.c
index 77185cc..19af767 100644
--- a/tests/test-openat.c
+++ b/tests/test-openat.c
@@ -20,6 +20,8 @@

 #include <fcntl.h>

+SIGNATURE_CHECK (openat, int, (int, char const *, int, ...));
+
 #include <errno.h>
 #include <stdarg.h>
 #include <stdbool.h>
diff --git a/tests/test-perror.c b/tests/test-perror.c
index 2faa8ae..7086ff4 100644
--- a/tests/test-perror.c
+++ b/tests/test-perror.c
@@ -1,5 +1,5 @@
 /* Test of perror() function.
-   Copyright (C) 2008 Free Software Foundation, Inc.
+   Copyright (C) 2008, 2009 Free Software Foundation, Inc.

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -19,6 +19,8 @@

 #include <stdio.h>

+SIGNATURE_CHECK (perror, void, (char const *));
+
 #include <errno.h>

 int
diff --git a/tests/test-pipe2.c b/tests/test-pipe2.c
index 049af5d..c20a0b5 100644
--- a/tests/test-pipe2.c
+++ b/tests/test-pipe2.c
@@ -19,6 +19,8 @@

 #include <unistd.h>

+SIGNATURE_CHECK (pipe2, int, (int[2], int));
+
 #include <fcntl.h>
 #include <stdbool.h>

diff --git a/tests/test-poll.c b/tests/test-poll.c
index ed9bd9e..9a317e5 100644
--- a/tests/test-poll.c
+++ b/tests/test-poll.c
@@ -19,12 +19,15 @@

 #include <config.h>

+#include <poll.h>
+
+SIGNATURE_CHECK (poll, int, (struct pollfd[], nfds_t, int));
+
 #include <stdio.h>
 #include <string.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
-#include <poll.h>
 #include <fcntl.h>
 #include <stdlib.h>
 #include <stdbool.h>
diff --git a/tests/test-popen.c b/tests/test-popen.c
index 342e363..c75141a 100644
--- a/tests/test-popen.c
+++ b/tests/test-popen.c
@@ -21,4 +21,7 @@
 /* Specification.  */
 #include <stdio.h>

+SIGNATURE_CHECK (popen, FILE *, (char const *, char const *));
+SIGNATURE_CHECK (pclose, int, (FILE *));
+
 #include "test-popen.h"
diff --git a/tests/test-posix_spawn1.c b/tests/test-posix_spawn1.c
index 896c7c9..778ab6c 100644
--- a/tests/test-posix_spawn1.c
+++ b/tests/test-posix_spawn1.c
@@ -20,6 +20,27 @@

 #include <spawn.h>

+SIGNATURE_CHECK (posix_spawnp, int, (pid_t *, char const *,
+                                     posix_spawn_file_actions_t const *,
+                                     posix_spawnattr_t const *,
+                                     char *const[], char *const[]));
+SIGNATURE_CHECK (posix_spawnattr_init, int, (posix_spawnattr_t *));
+SIGNATURE_CHECK (posix_spawnattr_destroy, int, (posix_spawnattr_t *));
+SIGNATURE_CHECK (posix_spawnattr_setsigmask, int, (posix_spawnattr_t *,
+                                                   sigset_t const *));
+SIGNATURE_CHECK (posix_spawnattr_setflags, int, (posix_spawnattr_t *, short));
+SIGNATURE_CHECK (posix_spawn_file_actions_init, int,
+                 (posix_spawn_file_actions_t *));
+SIGNATURE_CHECK (posix_spawn_file_actions_destroy, int,
+                 (posix_spawn_file_actions_t *));
+SIGNATURE_CHECK (posix_spawn_file_actions_addclose, int,
+                 (posix_spawn_file_actions_t *, int));
+SIGNATURE_CHECK (posix_spawn_file_actions_addopen, int,
+                 (posix_spawn_file_actions_t *, int, char const *, int,
+                  mode_t));
+SIGNATURE_CHECK (posix_spawn_file_actions_adddup2, int,
+                 (posix_spawn_file_actions_t *, int, int));
+
 #include <errno.h>
 #include <fcntl.h>
 #include <signal.h>
diff --git a/tests/test-posix_spawn3.c b/tests/test-posix_spawn3.c
index af71068..e08d54d 100644
--- a/tests/test-posix_spawn3.c
+++ b/tests/test-posix_spawn3.c
@@ -23,6 +23,10 @@

 #include <spawn.h>

+SIGNATURE_CHECK (posix_spawn, int, (pid_t *, char const *,
+                                    posix_spawn_file_actions_t const *,
+                                    posix_spawnattr_t const *,
+                                    char *const[], char *const[]));
 #include <errno.h>
 #include <fcntl.h>
 #include <signal.h>
diff --git a/tests/test-pread.c b/tests/test-pread.c
index 0ef387d..75dc0e8 100644
--- a/tests/test-pread.c
+++ b/tests/test-pread.c
@@ -20,6 +20,8 @@

 #include <unistd.h>

+SIGNATURE_CHECK (pread, ssize_t, (int, void *, size_t, off_t));
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <sys/types.h>
diff --git a/tests/test-printf-posix.c b/tests/test-printf-posix.c
index 51f1bf7..c35d951 100644
--- a/tests/test-printf-posix.c
+++ b/tests/test-printf-posix.c
@@ -1,5 +1,5 @@
 /* Test of POSIX compatible printf() function.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,8 @@

 #include <stdio.h>

+SIGNATURE_CHECK (printf, int, (char const *, ...));
+
 #include <stddef.h>
 #include <stdint.h>
 #include <stdlib.h>
diff --git a/tests/test-pty.c b/tests/test-pty.c
index cd24f0d..3cacea6 100644
--- a/tests/test-pty.c
+++ b/tests/test-pty.c
@@ -20,6 +20,11 @@

 #include <pty.h>

+SIGNATURE_CHECK (forkpty, int, (int *, char *, struct termios *,
+                                struct winsize *));
+SIGNATURE_CHECK (openpty, int, (int *, int *, char *, struct termios *,
+                                struct winsize *));
+
 #include <stdio.h>

 int
diff --git a/tests/test-random_r.c b/tests/test-random_r.c
index 7488543..916d532 100644
--- a/tests/test-random_r.c
+++ b/tests/test-random_r.c
@@ -1,5 +1,5 @@
 /* Test random_r.
-   Copyright (C) 2008 Free Software Foundation, Inc.
+   Copyright (C) 2008, 2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -15,7 +15,15 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */

 #include <config.h>
+
 #include <stdlib.h>
+
+SIGNATURE_CHECK (srandom_r, int, (unsigned int, struct random_data *));
+SIGNATURE_CHECK (initstate_r, int, (unsigned int, char *, size_t,
+                                    struct random_data *));
+SIGNATURE_CHECK (setstate_r, int, (char *, struct random_data *));
+SIGNATURE_CHECK (random_r, int, (struct random_data *, int32_t *));
+
 #include <stdio.h>
 #include <time.h>

diff --git a/tests/test-rawmemchr.c b/tests/test-rawmemchr.c
index eece65f..efaacf2 100644
--- a/tests/test-rawmemchr.c
+++ b/tests/test-rawmemchr.c
@@ -19,6 +19,8 @@

 #include <string.h>

+SIGNATURE_CHECK (rawmemchr, void *, (void const *, int));
+
 #include <stdio.h>
 #include <stdlib.h>

diff --git a/tests/test-readlink.c b/tests/test-readlink.c
index 5e51cb6..2b37f71 100644
--- a/tests/test-readlink.c
+++ b/tests/test-readlink.c
@@ -20,6 +20,8 @@

 #include <unistd.h>

+SIGNATURE_CHECK (readlink, ssize_t, (char const *, char *, size_t));
+
 #include <fcntl.h>
 #include <errno.h>
 #include <stdbool.h>
diff --git a/tests/test-remove.c b/tests/test-remove.c
index 7781dfc..4c573eb 100644
--- a/tests/test-remove.c
+++ b/tests/test-remove.c
@@ -20,6 +20,8 @@

 #include <stdio.h>

+SIGNATURE_CHECK (remove, int, (char const *));
+
 #include <fcntl.h>
 #include <errno.h>
 #include <stdlib.h>
diff --git a/tests/test-rename.c b/tests/test-rename.c
index 0d51140..eb107f3 100644
--- a/tests/test-rename.c
+++ b/tests/test-rename.c
@@ -16,12 +16,13 @@

 #include <config.h>

-#include <unistd.h>
+#include <stdio.h>
+
+SIGNATURE_CHECK (rename, int, (char const *, char const *));

 #include <errno.h>
 #include <fcntl.h>
 #include <stdbool.h>
-#include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <sys/stat.h>
diff --git a/tests/test-renameat.c b/tests/test-renameat.c
index 7cde7be..6ca69c6 100644
--- a/tests/test-renameat.c
+++ b/tests/test-renameat.c
@@ -20,6 +20,8 @@

 #include <stdio.h>

+SIGNATURE_CHECK (renameat, int, (int, char const *, int, char const *));
+
 #include <fcntl.h>
 #include <errno.h>
 #include <stdbool.h>
diff --git a/tests/test-rmdir.c b/tests/test-rmdir.c
index 908b0e6..c8bcf63 100644
--- a/tests/test-rmdir.c
+++ b/tests/test-rmdir.c
@@ -20,6 +20,8 @@

 #include <unistd.h>

+SIGNATURE_CHECK (rmdir, int, (char const *));
+
 #include <fcntl.h>
 #include <errno.h>
 #include <stdbool.h>
diff --git a/tests/test-round1.c b/tests/test-round1.c
index 8e9e0ef..2ee70e5 100644
--- a/tests/test-round1.c
+++ b/tests/test-round1.c
@@ -1,5 +1,5 @@
 /* Test of rounding to nearest, breaking ties away from zero.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -22,6 +22,8 @@

 #include <math.h>

+SIGNATURE_CHECK (round, double, (double));
+
 #include <stdio.h>
 #include <stdlib.h>

diff --git a/tests/test-roundf1.c b/tests/test-roundf1.c
index cbf3f9e..9c5a24d 100644
--- a/tests/test-roundf1.c
+++ b/tests/test-roundf1.c
@@ -1,5 +1,5 @@
 /* Test of rounding to nearest, breaking ties away from zero.
-   Copyright (C) 2007, 2008 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -22,6 +22,8 @@

 #include <math.h>

+SIGNATURE_CHECK (roundf, float, (float));
+
 #include <stdio.h>
 #include <stdlib.h>

diff --git a/tests/test-roundl.c b/tests/test-roundl.c
index c4fcf0c..7e2eff8 100644
--- a/tests/test-roundl.c
+++ b/tests/test-roundl.c
@@ -22,6 +22,8 @@

 #include <math.h>

+SIGNATURE_CHECK (roundl, long double, (long double));
+
 #include <float.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/test-select.c b/tests/test-select.c
index 5ce7c7f..f4eefa4 100644
--- a/tests/test-select.c
+++ b/tests/test-select.c
@@ -20,6 +20,11 @@

 #include <sys/select.h>

+SIGNATURE_CHECK (select, int, (int, fd_set *, fd_set *, fd_set *,
+                               struct timeval *));
+/* Unspecified whether FD_CLR, FD_ISSET, FD_SET, and FD_ZERO are
+   macros or functions.  */
+
 #include <stdio.h>
 #include <string.h>
 #include <netinet/in.h>
diff --git a/tests/test-setenv.c b/tests/test-setenv.c
index eb1fe33..25a43f5 100644
--- a/tests/test-setenv.c
+++ b/tests/test-setenv.c
@@ -20,6 +20,8 @@

 #include <stdlib.h>

+SIGNATURE_CHECK (setenv, int, (char const *, char const *, int));
+
 #include <errno.h>
 #include <stdio.h>
 #include <string.h>
diff --git a/tests/test-sigaction.c b/tests/test-sigaction.c
index 55da288..5c1e327 100644
--- a/tests/test-sigaction.c
+++ b/tests/test-sigaction.c
@@ -20,6 +20,9 @@

 #include <signal.h>

+SIGNATURE_CHECK (sigaction, int, (int, struct sigaction const *,
+                                  struct sigaction *));
+
 #include <stdio.h>
 #include <stdlib.h>

diff --git a/tests/test-signbit.c b/tests/test-signbit.c
index acca7fd..4acb045 100644
--- a/tests/test-signbit.c
+++ b/tests/test-signbit.c
@@ -20,6 +20,11 @@

 #include <math.h>

+/* signbit must be a macro.  */
+#ifndef signbit
+# error missing declaration
+#endif
+
 #include <float.h>
 #include <limits.h>
 #include <stdio.h>
diff --git a/tests/test-sleep.c b/tests/test-sleep.c
index 8840142..58da124 100644
--- a/tests/test-sleep.c
+++ b/tests/test-sleep.c
@@ -20,6 +20,8 @@

 #include <unistd.h>

+SIGNATURE_CHECK (sleep, unsigned int, (unsigned int));
+
 #include <signal.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/test-snprintf.c b/tests/test-snprintf.c
index 55bca33..90d30a5 100644
--- a/tests/test-snprintf.c
+++ b/tests/test-snprintf.c
@@ -1,5 +1,5 @@
 /* Test of snprintf() function.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,8 @@

 #include <stdio.h>

+SIGNATURE_CHECK (snprintf, int, (char *, size_t, char const *, ...));
+
 #include <stdlib.h>
 #include <string.h>

diff --git a/tests/test-sprintf-posix.c b/tests/test-sprintf-posix.c
index e5dab35..e54d2be 100644
--- a/tests/test-sprintf-posix.c
+++ b/tests/test-sprintf-posix.c
@@ -1,5 +1,5 @@
 /* Test of POSIX compatible sprintf() function.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,8 @@

 #include <stdio.h>

+SIGNATURE_CHECK (sprintf, int, (char *, char const *, ...));
+
 #include <float.h>
 #include <stddef.h>
 #include <stdint.h>
diff --git a/tests/test-stat.c b/tests/test-stat.c
index fc11731..25f4117 100644
--- a/tests/test-stat.c
+++ b/tests/test-stat.c
@@ -20,6 +20,12 @@

 #include <sys/stat.h>

+/* Caution: stat may be a function-like macro.  Although this
+   signature check must pass, it may be the signature of the real (and
+   broken) stat rather than rpl_stat.  Most code should not use the
+   address of stat.  */
+SIGNATURE_CHECK (stat, int, (char const *, struct stat *));
+
 #include <fcntl.h>
 #include <errno.h>
 #include <stdbool.h>
diff --git a/tests/test-stpncpy.c b/tests/test-stpncpy.c
index 128bee3..9437f84 100644
--- a/tests/test-stpncpy.c
+++ b/tests/test-stpncpy.c
@@ -1,5 +1,5 @@
 /* Test the system defined function stpncpy().
-   Copyright (C) 2003, 2008 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2008, 2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -17,6 +17,9 @@
 #include <config.h>

 #include <string.h>
+
+SIGNATURE_CHECK (stpncpy, char *, (char *, char const *, size_t));
+
 #include <stdio.h>

 int
diff --git a/tests/test-strcasestr.c b/tests/test-strcasestr.c
index 8ecd3a9..dfe634f 100644
--- a/tests/test-strcasestr.c
+++ b/tests/test-strcasestr.c
@@ -1,5 +1,5 @@
 /* Test of case-insensitive searching in a string.
-   Copyright (C) 2007, 2008 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,8 @@

 #include <string.h>

+SIGNATURE_CHECK (strcasestr, char *, (char const *, char const *));
+
 #include <signal.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/test-strchrnul.c b/tests/test-strchrnul.c
index ea882e5..97fc1dc 100644
--- a/tests/test-strchrnul.c
+++ b/tests/test-strchrnul.c
@@ -19,6 +19,8 @@

 #include <string.h>

+SIGNATURE_CHECK (strchrnul, char *, (char const *, int));
+
 #include <stdio.h>
 #include <stdlib.h>

diff --git a/tests/test-strerror.c b/tests/test-strerror.c
index ba23edc..7a2f147 100644
--- a/tests/test-strerror.c
+++ b/tests/test-strerror.c
@@ -19,10 +19,13 @@

 #include <config.h>

+#include <string.h>
+
+SIGNATURE_CHECK (strerror, char *, (int));
+
 #include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <string.h>

 #define ASSERT(expr) \
   do                                                                         \
diff --git a/tests/test-strsignal.c b/tests/test-strsignal.c
index 3b362dd..548a50d 100644
--- a/tests/test-strsignal.c
+++ b/tests/test-strsignal.c
@@ -19,10 +19,13 @@

 #include <config.h>

+#include <string.h>
+
+SIGNATURE_CHECK (strsignal, char *, (int));
+
 #include <signal.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <string.h>

 #define ASSERT(expr) \
   do                                                                         \
diff --git a/tests/test-strstr.c b/tests/test-strstr.c
index c89a1ac..13175c3 100644
--- a/tests/test-strstr.c
+++ b/tests/test-strstr.c
@@ -19,6 +19,8 @@

 #include <string.h>

+SIGNATURE_CHECK (strstr, char *, (char const *, char const *));
+
 #include <signal.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/test-strtod.c b/tests/test-strtod.c
index 14f73b9..0807d21 100644
--- a/tests/test-strtod.c
+++ b/tests/test-strtod.c
@@ -19,6 +19,8 @@

 #include <stdlib.h>

+SIGNATURE_CHECK (strtod, double, (char const *, char **));
+
 #include <errno.h>
 #include <float.h>
 #include <math.h>
diff --git a/tests/test-strverscmp.c b/tests/test-strverscmp.c
index 220f2d6..9a1f43c 100644
--- a/tests/test-strverscmp.c
+++ b/tests/test-strverscmp.c
@@ -21,6 +21,8 @@

 #include <string.h>

+SIGNATURE_CHECK (strverscmp, int, (const char *, const char *));
+
 #include <stdio.h>
 #include <stdlib.h>

diff --git a/tests/test-symlink.c b/tests/test-symlink.c
index 4b593b6..7170da1 100644
--- a/tests/test-symlink.c
+++ b/tests/test-symlink.c
@@ -20,6 +20,8 @@

 #include <unistd.h>

+SIGNATURE_CHECK (symlink, int, (char const *, char const *));
+
 #include <fcntl.h>
 #include <errno.h>
 #include <stdbool.h>
diff --git a/tests/test-symlinkat.c b/tests/test-symlinkat.c
index c76244f..33d5493 100644
--- a/tests/test-symlinkat.c
+++ b/tests/test-symlinkat.c
@@ -20,6 +20,9 @@

 #include <unistd.h>

+SIGNATURE_CHECK (symlinkat, int, (char const *, int, char const *));
+SIGNATURE_CHECK (readlinkat, ssize_t, (int, char const *, char *, size_t));
+
 #include <fcntl.h>
 #include <errno.h>
 #include <stdbool.h>
diff --git a/tests/test-times.c b/tests/test-times.c
index 496b9a8..22f9086 100644
--- a/tests/test-times.c
+++ b/tests/test-times.c
@@ -1,5 +1,5 @@
 /* Test of times function.
-   Copyright (C) 2008 Free Software Foundation, Inc.
+   Copyright (C) 2008, 2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -19,6 +19,9 @@
 #include <config.h>

 #include <sys/times.h>
+
+SIGNATURE_CHECK (times, clock_t, (struct tms *));
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdint.h>
diff --git a/tests/test-trunc1.c b/tests/test-trunc1.c
index 671d3f5..5093052 100644
--- a/tests/test-trunc1.c
+++ b/tests/test-trunc1.c
@@ -1,5 +1,5 @@
 /* Test of rounding towards zero.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,8 @@

 #include <math.h>

+SIGNATURE_CHECK (trunc, double, (double));
+
 #include <stdio.h>
 #include <stdlib.h>

diff --git a/tests/test-truncf1.c b/tests/test-truncf1.c
index 834899b..f67f20c 100644
--- a/tests/test-truncf1.c
+++ b/tests/test-truncf1.c
@@ -1,5 +1,5 @@
 /* Test of rounding towards zero.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,8 @@

 #include <math.h>

+SIGNATURE_CHECK (truncf, float, (float));
+
 #include <stdio.h>
 #include <stdlib.h>

diff --git a/tests/test-truncl.c b/tests/test-truncl.c
index 7e3dd17..d435560 100644
--- a/tests/test-truncl.c
+++ b/tests/test-truncl.c
@@ -20,6 +20,8 @@

 #include <math.h>

+SIGNATURE_CHECK (truncl, long double, (long double));
+
 #include <float.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/test-tsearch.c b/tests/test-tsearch.c
index 273f3ab..f878b04 100644
--- a/tests/test-tsearch.c
+++ b/tests/test-tsearch.c
@@ -1,5 +1,5 @@
 /* Test program for tsearch et al.
-   Copyright (C) 1997, 2000-2001, 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 1997, 2000-2001, 2007-2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.

    The GNU C Library is free software: you can redistribute it and/or
@@ -19,6 +19,15 @@

 #include <search.h>

+SIGNATURE_CHECK (tdelete, void *, (void const *, void **,
+                                   int (*) (void const *, void const *)));
+SIGNATURE_CHECK (tfind, void *, (void const *, void * const *,
+                                 int (*) (void const *, void const *)));
+SIGNATURE_CHECK (tsearch, void *, (void const *, void **,
+                                   int (*) (void const *, void const *)));
+SIGNATURE_CHECK (twalk, void, (void const *,
+                               void (*) (void const *, VISIT, int)));
+
 #include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/test-uname.c b/tests/test-uname.c
index a458698..483469a 100644
--- a/tests/test-uname.c
+++ b/tests/test-uname.c
@@ -20,6 +20,8 @@

 #include <sys/utsname.h>

+SIGNATURE_CHECK (uname, int, (struct utsname *));
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-unlink.c b/tests/test-unlink.c
index 447a014..3f12107 100644
--- a/tests/test-unlink.c
+++ b/tests/test-unlink.c
@@ -20,6 +20,8 @@

 #include <unistd.h>

+SIGNATURE_CHECK (unlink, int, (char const *));
+
 #include <fcntl.h>
 #include <errno.h>
 #include <stdbool.h>
diff --git a/tests/test-unlinkat.c b/tests/test-unlinkat.c
index a98dc8d..00b8b1c 100644
--- a/tests/test-unlinkat.c
+++ b/tests/test-unlinkat.c
@@ -20,6 +20,8 @@

 #include <unistd.h>

+SIGNATURE_CHECK (unlinkat, int, (int, char const *, int));
+
 #include <fcntl.h>
 #include <errno.h>
 #include <stdbool.h>
diff --git a/tests/test-unsetenv.c b/tests/test-unsetenv.c
index bd312a0..4b77a50 100644
--- a/tests/test-unsetenv.c
+++ b/tests/test-unsetenv.c
@@ -20,6 +20,8 @@

 #include <stdlib.h>

+SIGNATURE_CHECK (unsetenv, int, (char const *));
+
 #include <errno.h>
 #include <stdio.h>
 #include <string.h>
diff --git a/tests/test-usleep.c b/tests/test-usleep.c
index d6e62eb..a26cae0 100644
--- a/tests/test-usleep.c
+++ b/tests/test-usleep.c
@@ -20,6 +20,8 @@

 #include <unistd.h>

+SIGNATURE_CHECK (usleep, int, (useconds_t));
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <time.h>
diff --git a/tests/test-utimensat.c b/tests/test-utimensat.c
index 35fd1bf..09dfb42 100644
--- a/tests/test-utimensat.c
+++ b/tests/test-utimensat.c
@@ -20,6 +20,9 @@

 #include <sys/stat.h>

+SIGNATURE_CHECK (utimensat, int, (int, char const *, struct timespec const[2],
+                                  int));
+
 #include <fcntl.h>
 #include <errno.h>
 #include <stdbool.h>
diff --git a/tests/test-vasprintf.c b/tests/test-vasprintf.c
index a85ff8e..addcdb7 100644
--- a/tests/test-vasprintf.c
+++ b/tests/test-vasprintf.c
@@ -1,5 +1,5 @@
 /* Test of vasprintf() and asprintf() functions.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,9 @@

 #include <stdio.h>

+SIGNATURE_CHECK (asprintf, int, (char **, char const *, ...));
+SIGNATURE_CHECK (vasprintf, int, (char **, char const *, va_list));
+
 #include <stdarg.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-vdprintf-posix.c b/tests/test-vdprintf-posix.c
index 949665e..98a7285 100644
--- a/tests/test-vdprintf-posix.c
+++ b/tests/test-vdprintf-posix.c
@@ -20,6 +20,8 @@

 #include <stdio.h>

+SIGNATURE_CHECK (vdprintf, int, (int, char const *, va_list));
+
 #include <stdarg.h>
 #include <stddef.h>
 #include <stdint.h>
diff --git a/tests/test-vfprintf-posix.c b/tests/test-vfprintf-posix.c
index ae94fa7..b3f7620 100644
--- a/tests/test-vfprintf-posix.c
+++ b/tests/test-vfprintf-posix.c
@@ -1,5 +1,5 @@
 /* Test of POSIX compatible vfprintf() function.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,8 @@

 #include <stdio.h>

+SIGNATURE_CHECK (vfprintf, int, (FILE *, char const *, va_list));
+
 #include <stdarg.h>
 #include <stddef.h>
 #include <stdint.h>
diff --git a/tests/test-vprintf-posix.c b/tests/test-vprintf-posix.c
index 8522283..612c64c 100644
--- a/tests/test-vprintf-posix.c
+++ b/tests/test-vprintf-posix.c
@@ -1,5 +1,5 @@
 /* Test of POSIX compatible vfprintf() function.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,8 @@

 #include <stdio.h>

+SIGNATURE_CHECK (vprintf, int, (char const *, va_list));
+
 #include <stdarg.h>
 #include <stddef.h>
 #include <stdint.h>
diff --git a/tests/test-vsnprintf.c b/tests/test-vsnprintf.c
index f0d08ed..8c4c00c 100644
--- a/tests/test-vsnprintf.c
+++ b/tests/test-vsnprintf.c
@@ -1,5 +1,5 @@
 /* Test of vsnprintf() function.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,8 @@

 #include <stdio.h>

+SIGNATURE_CHECK (vsnprintf, int, (char *, size_t, char const *, va_list));
+
 #include <stdarg.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/test-vsprintf-posix.c b/tests/test-vsprintf-posix.c
index 3bb457f..ebdbbd8 100644
--- a/tests/test-vsprintf-posix.c
+++ b/tests/test-vsprintf-posix.c
@@ -1,5 +1,5 @@
 /* Test of POSIX compatible vsprintf() function.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,8 @@

 #include <stdio.h>

+SIGNATURE_CHECK (vsprintf, int, (char *, char const *, va_list));
+
 #include <float.h>
 #include <stdarg.h>
 #include <stddef.h>
diff --git a/tests/test-wcrtomb.c b/tests/test-wcrtomb.c
index 4fe972b..b15e92a 100644
--- a/tests/test-wcrtomb.c
+++ b/tests/test-wcrtomb.c
@@ -1,5 +1,5 @@
 /* Test of conversion of wide character to multibyte character.
-   Copyright (C) 2008 Free Software Foundation, Inc.
+   Copyright (C) 2008, 2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,8 @@

 #include <wchar.h>

+SIGNATURE_CHECK (wcrtomb, size_t, (char *, wchar_t, mbstate_t *));
+
 #include <locale.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/test-wcsnrtombs.c b/tests/test-wcsnrtombs.c
index 38c0441..3595f48 100644
--- a/tests/test-wcsnrtombs.c
+++ b/tests/test-wcsnrtombs.c
@@ -1,5 +1,5 @@
 /* Test of conversion of wide string to string.
-   Copyright (C) 2008 Free Software Foundation, Inc.
+   Copyright (C) 2008, 2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,9 @@

 #include <wchar.h>

+SIGNATURE_CHECK (wcsnrtombs, size_t, (char *, wchar_t const **, size_t, size_t,
+                                      mbstate_t *));
+
 #include <locale.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/test-wcsrtombs.c b/tests/test-wcsrtombs.c
index 3ceb7c0..51c8e01 100644
--- a/tests/test-wcsrtombs.c
+++ b/tests/test-wcsrtombs.c
@@ -1,5 +1,5 @@
 /* Test of conversion of wide string to string.
-   Copyright (C) 2008 Free Software Foundation, Inc.
+   Copyright (C) 2008, 2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,9 @@

 #include <wchar.h>

+SIGNATURE_CHECK (wcsrtombs, size_t, (char *, wchar_t const **, size_t,
+                                     mbstate_t *));
+
 #include <locale.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/test-wcwidth.c b/tests/test-wcwidth.c
index 5087b08..a179225 100644
--- a/tests/test-wcwidth.c
+++ b/tests/test-wcwidth.c
@@ -1,5 +1,5 @@
 /* Test of wcwidth() function.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,8 @@

 #include <wchar.h>

+SIGNATURE_CHECK (wcwidth, int, (wchar_t));
+
 #include <locale.h>
 #include <stdio.h>
 #include <stdlib.h>
-- 
1.6.4.2







reply via email to

[Prev in Thread] Current Thread [Next in Thread]