/* PR c++/65690 */ /* { dg-do run } */ typedef double T[4][4] __attribute__((aligned (2 * __alignof__ (double)))); void foo (const T); struct S { T s; }; int main () { if (__alignof__ (struct S) != 2 * __alignof__ (double) || __alignof__ (T) != 2 * __alignof__ (double) || __alignof__ (const struct S) != 2 * __alignof__ (double) || __alignof__ (const T) != 2 * __alignof__ (double)) __builtin_abort (); return 0; } #if defined(__cplusplus) && __cplusplus >= 201103L static_assert (alignof (S) == 2 * __alignof__ (double), "alignment of S"); static_assert (alignof (T) == 2 * __alignof__ (double), "alignment of T"); static_assert (alignof (const S) == 2 * __alignof__ (double), "alignment of const S"); static_assert (alignof (const T) == 2 * __alignof__ (double), "alignment of const T"); #endif