blob: 5c2f03e4ba1645c241b95f064435dac72e519c2f [file] [log] [blame]
// { dg-do assemble }
// { dg-options "-Wformat" }
// Test that attributes are really applied to function declarations under
// various conditions.
// Contributed by Jason Merrill (jason@cygnus.com)
#define PF __attribute__ ((format (printf, 1, 2)))
struct A {
static PF void f (const char *, ...);
static PF void g (const char *, ...) { }
static void test ();
};
void PF h (const char *, ...);
void PF k (const char *, ...) { }
void A::test ()
{
f ("%f", 42); // { dg-warning "argument 2" }
g ("%f", 42); // { dg-warning "argument 2" }
h ("%f", 42); // { dg-warning "argument 2" }
k ("%f", 42); // { dg-warning "argument 2" }
}