Analogous to __printflike and __scanflike, add the macro __format_arg which
expands to the GCC format_arg attribute if supported. This fixes a syntax error in <nl_types.h> for compilers/tools not implementing the GCC __attribute__ extensions.
This commit is contained in:
parent
c74da55a0e
commit
3acb8d3f94
@ -97,8 +97,7 @@ typedef __nl_item nl_item;
|
||||
|
||||
__BEGIN_DECLS
|
||||
nl_catd catopen(const char *, int);
|
||||
char *catgets(nl_catd, int, int, const char *)
|
||||
__attribute__((__format_arg__(4)));
|
||||
char *catgets(nl_catd, int, int, const char *) __format_arg(4);
|
||||
int catclose(nl_catd);
|
||||
__END_DECLS
|
||||
|
||||
|
@ -328,12 +328,7 @@ char *tempnam(const char *, const char *);
|
||||
int asprintf(char **, const char *, ...) __printflike(2, 3);
|
||||
char *ctermid_r(char *);
|
||||
char *fgetln(FILE *, size_t *);
|
||||
#if __GNUC__ == 2 && __GNUC_MINOR__ >= 7 || __GNUC__ >= 3
|
||||
#define __ATTR_FORMAT_ARG __attribute__((__format_arg__(2)))
|
||||
#else
|
||||
#define __ATTR_FORMAT_ARG
|
||||
#endif
|
||||
__const char *fmtcheck(const char *, const char *) __ATTR_FORMAT_ARG;
|
||||
__const char *fmtcheck(const char *, const char *) __format_arg(2);
|
||||
int fpurge(FILE *);
|
||||
void setbuffer(FILE *, char *, int);
|
||||
int setlinebuf(FILE *);
|
||||
|
@ -324,11 +324,13 @@
|
||||
#if !__GNUC_PREREQ__(2, 7) && !defined(__INTEL_COMPILER)
|
||||
#define __printflike(fmtarg, firstvararg)
|
||||
#define __scanflike(fmtarg, firstvararg)
|
||||
#define __format_arg(fmtarg)
|
||||
#else
|
||||
#define __printflike(fmtarg, firstvararg) \
|
||||
__attribute__((__format__ (__printf__, fmtarg, firstvararg)))
|
||||
#define __scanflike(fmtarg, firstvararg) \
|
||||
__attribute__((__format__ (__scanf__, fmtarg, firstvararg)))
|
||||
#define __format_arg(fmtarg) __attribute__((__format_arg__ (fmtarg)))
|
||||
#endif
|
||||
|
||||
/* Compiler-dependent macros that rely on FreeBSD-specific extensions. */
|
||||
|
Loading…
Reference in New Issue
Block a user