| /* { dg-do compile } */ |
| |
| #define ATTR_PRINTF __attribute__ ((format (printf, 1, 2))) |
| #define ATTR_USED __attribute__ ((used)) |
| |
| void bar (int, ...); |
| |
| /* gcc would segfault on the nested attribute. */ |
| void foo (void) |
| { |
| bar (0, (void (*ATTR_PRINTF) (const char *, ...)) 0); |
| } |
| |
| /* For consistency, unnamed decls should give the same warnings as |
| named ones. */ |
| void proto1 (int (*ATTR_USED) (void)); /* { dg-warning "attribute ignored" } */ |
| void proto2 (int (*ATTR_USED bar) (void)); /* { dg-warning "attribute ignored" } */ |