/* { dg-do compile } */ /* { dg-require-effective-target strub } */ int __attribute__ ((strub)) x; float __attribute__ ((strub)) f; double __attribute__ ((strub)) d; /* The attribute applies to the type of the declaration, i.e., to the pointer variable p, not to the pointed-to integer. */ int __attribute__ ((strub)) * p = &x; /* { dg-message "incompatible|invalid conversion" } */ typedef int __attribute__ ((strub)) strub_int; strub_int *q = &x; /* Now this is compatible. */ int __attribute__ ((strub)) a[2]; /* { dg-warning "does not apply to elements" } */ int __attribute__ ((vector_size (4 * sizeof (int)))) __attribute__ ((strub)) v; /* { dg-warning "does not apply to elements" } */ struct s { int i, j; } __attribute__ ((strub)) w; /* { dg-warning "does not apply to fields" } */