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