mirror of git://git.musl-libc.org/musl
add format argument attributes to gettext function prototypes
their absence completely breaks format string warnings in programs with gettext message translations: -Wformat gives no results, and -Wformat-nonliteral produces spurious warnings. with gcc, the problem manifests only in standards-conforming profiles; otherwise gcc sets these attributes by default for the gettext family. with clang, the problem always manifests; clang has no such defaults.
This commit is contained in:
parent
64b6684ddd
commit
ccc71e0ea8
|
@ -8,16 +8,24 @@ extern "C" {
|
||||||
#define __USE_GNU_GETTEXT 1
|
#define __USE_GNU_GETTEXT 1
|
||||||
#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 1 : -1)
|
#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 1 : -1)
|
||||||
|
|
||||||
char *gettext(const char *);
|
#if __GNUC__ >= 3
|
||||||
char *dgettext(const char *, const char *);
|
#define __fa(n) __attribute__ ((__format_arg__ (n)))
|
||||||
char *dcgettext(const char *, const char *, int);
|
#else
|
||||||
char *ngettext(const char *, const char *, unsigned long);
|
#define __fa(n)
|
||||||
char *dngettext(const char *, const char *, const char *, unsigned long);
|
#endif
|
||||||
char *dcngettext(const char *, const char *, const char *, unsigned long, int);
|
|
||||||
|
char *gettext(const char *) __fa(1);
|
||||||
|
char *dgettext(const char *, const char *) __fa(2);
|
||||||
|
char *dcgettext(const char *, const char *, int) __fa(2);
|
||||||
|
char *ngettext(const char *, const char *, unsigned long) __fa(1) __fa(2);
|
||||||
|
char *dngettext(const char *, const char *, const char *, unsigned long) __fa(2) __fa(3);
|
||||||
|
char *dcngettext(const char *, const char *, const char *, unsigned long, int) __fa(2) __fa(3);
|
||||||
char *textdomain(const char *);
|
char *textdomain(const char *);
|
||||||
char *bindtextdomain (const char *, const char *);
|
char *bindtextdomain (const char *, const char *);
|
||||||
char *bind_textdomain_codeset(const char *, const char *);
|
char *bind_textdomain_codeset(const char *, const char *);
|
||||||
|
|
||||||
|
#undef __fa
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue