Define and use PRINTF_F_PTR
GCCs older than 3.1 understand __attribute__(printf(...)), but only with functions; it doesn't work with function pointers. This change uses PRINTF_F_PTR to remove the attribute from two function pointers. This change establishes GCC 3.0 as the minimum version to build NetHack. Older versions have trouble with the variadic macros and variable declarations in mid-block.
This commit is contained in:
@@ -401,6 +401,9 @@ typedef genericptr genericptr_t; /* (void *) or (char *) */
|
||||
#if (__GNUC__ >= 2) && !defined(USE_OLDARGS)
|
||||
#define PRINTF_F(f, v) __attribute__((format(printf, f, v)))
|
||||
#endif
|
||||
#if (__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
|
||||
#define PRINTF_F_PTR(f, v) PRINTF_F(f, v)
|
||||
#endif
|
||||
#if __GNUC__ >= 3
|
||||
#define UNUSED __attribute__((unused))
|
||||
#define NORETURN __attribute__((noreturn))
|
||||
@@ -419,6 +422,9 @@ typedef genericptr genericptr_t; /* (void *) or (char *) */
|
||||
#ifndef PRINTF_F
|
||||
#define PRINTF_F(f, v)
|
||||
#endif
|
||||
#ifndef PRINTF_F_PTR
|
||||
#define PRINTF_F_PTR(f, v)
|
||||
#endif
|
||||
#ifndef UNUSED
|
||||
#define UNUSED
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user