Viewing file: attr-invalid.c (2.86 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* { dg-do compile } */ /* { dg-options "" } */
#define CONCAT_(A,B) A ## B #define CONCAT(A,B) CONCAT_(A,B)
#define ATTR __attribute__((AT)) #define ATSYM(suf) CONCAT (AT, CONCAT_ (_, suf))
#define AT noinline
typedef int ATSYM(type) ATTR; /* { dg-warning "attribute ignored" } */
typedef int (*ATSYM(fntype))(void) ATTR; /* { dg-warning "attribute ignored" } */
struct ATSYM(struct) { char dummy ATTR; /* { dg-warning "attribute ignored" } */ } ATTR; /* { dg-warning "does not apply to types" } */
int ATSYM(var) ATTR; /* { dg-warning "attribute ignored" } */
int ATSYM(fn_knrarg) (arg) int arg ATTR; /* { dg-warning "attribute ignored" } */ { return 0; }
int ATSYM(fn_isoarg) (int arg ATTR) { return 0; } /* { dg-warning "attribute ignored" } */
int ATSYM(fn_vars) (void) { static int svar ATTR; /* { dg-warning "attribute ignored" } */ auto int lvar ATTR; /* { dg-warning "attribute ignored" } */ return 0; }
#undef AT #define AT used
typedef int ATSYM(type) ATTR; /* used attribute is no longer ignored. */
typedef int (*ATSYM(fntype))(void) ATTR; /* used attribute is no longer ignored. */
struct ATSYM(struct) { char dummy ATTR; /* { dg-warning "attribute ignored" } */ } ATTR; /* { dg-warning "does not apply to types" } */
int ATSYM(var) ATTR;
int ATSYM(fn_knrarg) (arg) int arg ATTR; /* { dg-warning "attribute ignored" } */ { return 0; }
int ATSYM(fn_isoarg) (int arg ATTR) { return 0; } /* { dg-warning "attribute ignored" } */
int ATSYM(fn_vars) (void) { static int svar ATTR; auto int lvar ATTR; /* { dg-warning "attribute ignored" } */ return 0; }
/* PR 28287 */ /* These are invalid on all targets. Applying to PARM_ or FIELD_DECL also caused a tree checking ice on targets that support weak, */ #undef AT #define AT weak
typedef int ATSYM(type) ATTR; /* { dg-warning "attribute ignored" } */
typedef int (*ATSYM(fntype))(void) ATTR; /* { dg-warning "attribute ignored" } */
struct ATSYM(struct) { char dummy ATTR; /* { dg-warning "attribute ignored" } */ };
int ATSYM(fn_knrarg) (arg) int arg ATTR; /* { dg-warning "attribute ignored" } */ { return 0; }
int ATSYM(fn_isoarg) (int arg ATTR) { return 0; } /* { dg-warning "attribute ignored" } */
/* PR target/28648 */ /* These are invalid on all targets. Applying to PARM_ or FIELD_DECL also caused a tree checking ice on targets that support dllimport. */ #undef AT #define AT dllimport
typedef int ATSYM(type) ATTR; /* { dg-warning "attribute |directive ignored" } */
typedef int (*ATSYM(fntype))(void) ATTR; /* { dg-warning "attribute |directive ignored" } */
struct ATSYM(struct) { char dummy ATTR; /* { dg-warning "attribute |directive ignored" } */ };
int ATSYM(fn_knrarg) (arg) int arg ATTR; /* { dg-warning "attribute |directive ignored" } */ { return 0; }
int ATSYM(fn_isoarg) (int arg ATTR) { return 0; } /* { dg-warning "attribute |directive ignored" } */
|