blob: 0c5df6d29421cac0739e36708da6e14456c7dd24 [file] [log] [blame]
// PR c++/48138
#define ALIGNED(x) __attribute__((aligned(x)))
#define SA(X) int ar[(X)?1:-1];
template<typename T>
void type_alignment(const T&) {
struct S { char c; T t; } s;
SA(__builtin_offsetof (S,t) - __builtin_offsetof (S,c) == 1);
}
template <class T> struct A { char c; T t; };
int main() {
typedef char unaligned[15];
typedef char aligned[15] ALIGNED(8);
A<aligned> a; // { dg-warning "ignoring attributes" }
SA( __builtin_offsetof (__typeof(a),t)
- __builtin_offsetof (__typeof(a),c) == 1);
aligned z;
type_alignment(z); // { dg-warning "ignoring attributes" "" { xfail *-*-* } }
type_alignment<unaligned ALIGNED(8)>(z); // { dg-warning "ignoring attributes" "" { xfail *-*-* } }
}