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:
@@ -761,7 +761,7 @@ static const char dknowns[] = { WAND_CLASS, RING_CLASS, POTION_CLASS,
|
||||
void
|
||||
clear_dknown(struct obj *obj)
|
||||
{
|
||||
obj->dknown = strchr(dknowns, obj->oclass) ? 0 : 1;
|
||||
obj->dknown = index(dknowns, obj->oclass) ? 0 : 1;
|
||||
if ((obj->otyp >= ELVEN_SHIELD && obj->otyp <= ORCISH_SHIELD)
|
||||
|| obj->otyp == SHIELD_OF_REFLECTION
|
||||
|| objects[obj->otyp].oc_merge)
|
||||
@@ -2107,7 +2107,7 @@ place_object(struct obj *otmp, coordxy x, coordxy y)
|
||||
register struct obj *otmp2;
|
||||
|
||||
if (!isok(x, y)) { /* validate location */
|
||||
void (*func)(const char *, ...) PRINTF_F(1, 2);
|
||||
void (*func)(const char *, ...) PRINTF_F_PTR(1, 2);
|
||||
|
||||
func = (x < 0 || y < 0 || x > COLNO - 1 || y > ROWNO - 1) ? panic
|
||||
: impossible;
|
||||
|
||||
@@ -413,7 +413,7 @@ invault(void)
|
||||
otherwise the hero wouldn't be able to push one to follow the
|
||||
guard out of the vault because that guard would be in its way */
|
||||
if ((otmp = sobj_at(BOULDER, guard->mx, guard->my)) != 0) {
|
||||
void (*func)(const char *, ...) PRINTF_F(1, 2);
|
||||
void (*func)(const char *, ...) PRINTF_F_PTR(1, 2);
|
||||
const char *bname = simpleonames(otmp);
|
||||
int bcnt = 0;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user