| // { 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" } |
| } |