diff options
Diffstat (limited to 'gl/stdio.in.h')
-rw-r--r-- | gl/stdio.in.h | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/gl/stdio.in.h b/gl/stdio.in.h index dcb8ee57..80b9dbfd 100644 --- a/gl/stdio.in.h +++ b/gl/stdio.in.h | |||
@@ -63,6 +63,10 @@ | |||
63 | 63 | ||
64 | /* The definition of _GL_WARN_ON_USE is copied here. */ | 64 | /* The definition of _GL_WARN_ON_USE is copied here. */ |
65 | 65 | ||
66 | /* Macros for stringification. */ | ||
67 | #define _GL_STDIO_STRINGIZE(token) #token | ||
68 | #define _GL_STDIO_MACROEXPAND_AND_STRINGIZE(token) _GL_STDIO_STRINGIZE(token) | ||
69 | |||
66 | 70 | ||
67 | #if @GNULIB_DPRINTF@ | 71 | #if @GNULIB_DPRINTF@ |
68 | # if @REPLACE_DPRINTF@ | 72 | # if @REPLACE_DPRINTF@ |
@@ -640,16 +644,26 @@ _GL_WARN_ON_USE (popen, "popen is buggy on some platforms - " | |||
640 | #if @GNULIB_PRINTF_POSIX@ || @GNULIB_PRINTF@ | 644 | #if @GNULIB_PRINTF_POSIX@ || @GNULIB_PRINTF@ |
641 | # if (@GNULIB_PRINTF_POSIX@ && @REPLACE_PRINTF@) \ | 645 | # if (@GNULIB_PRINTF_POSIX@ && @REPLACE_PRINTF@) \ |
642 | || (@GNULIB_PRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@) | 646 | || (@GNULIB_PRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@) |
643 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | 647 | # if defined __GNUC__ |
648 | # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | ||
644 | /* Don't break __attribute__((format(printf,M,N))). */ | 649 | /* Don't break __attribute__((format(printf,M,N))). */ |
645 | # define printf __printf__ | 650 | # define printf __printf__ |
646 | # endif | 651 | # endif |
647 | # define GNULIB_overrides_printf 1 | ||
648 | _GL_FUNCDECL_RPL_1 (__printf__, int, | 652 | _GL_FUNCDECL_RPL_1 (__printf__, int, |
649 | (const char *format, ...) | 653 | (const char *format, ...) |
654 | __asm__ (@ASM_SYMBOL_PREFIX@ | ||
655 | _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf)) | ||
650 | __attribute__ ((__format__ (__printf__, 1, 2))) | 656 | __attribute__ ((__format__ (__printf__, 1, 2))) |
651 | _GL_ARG_NONNULL ((1))); | 657 | _GL_ARG_NONNULL ((1))); |
652 | _GL_CXXALIAS_RPL_1 (printf, __printf__, int, (const char *format, ...)); | 658 | _GL_CXXALIAS_RPL_1 (printf, __printf__, int, (const char *format, ...)); |
659 | # else | ||
660 | _GL_FUNCDECL_RPL (printf, int, | ||
661 | (const char *format, ...) | ||
662 | __attribute__ ((__format__ (__printf__, 1, 2))) | ||
663 | _GL_ARG_NONNULL ((1))); | ||
664 | _GL_CXXALIAS_RPL (printf, int, (const char *format, ...)); | ||
665 | # endif | ||
666 | # define GNULIB_overrides_printf 1 | ||
653 | # else | 667 | # else |
654 | _GL_CXXALIAS_SYS (printf, int, (const char *format, ...)); | 668 | _GL_CXXALIAS_SYS (printf, int, (const char *format, ...)); |
655 | # endif | 669 | # endif |