1 // PR c++/59012
2 // { dg-do compile { target c++11 } }
3 // { dg-final { scan-assembler "align 8" { target { { i?86-*-* x86_64-*-* } && { { ! ia32 } && { ! *-*-darwin* } } } } } }
4 // { dg-final { scan-assembler "align 4" { target { ia32 && { ! *-*-darwin* } } } } }
5 
6 // Darwin produces aligned .zerofill directives for these.
7 // { dg-final { scan-assembler {zerofill[^\n\r]+_a,4,2} { target { ilp32 && *-*-darwin* } } } }
8 // { dg-final { scan-assembler {zerofill[^\n\r]+_a,8,3} { target { lp64 && *-*-darwin* } } } }
9 // { dg-final { scan-assembler {zerofill[^\n\r]+_a2,4,2} { target { ilp32 && *-*-darwin* } } } }
10 // { dg-final { scan-assembler {zerofill[^\n\r]+_a2,8,3} { target { lp64 && *-*-darwin* } } } }
11 
12 template <class... T>
13 struct A
14 {
15   alignas(T...) char t;
16 };
17 
18 A<int,double> a;
19 
20 template <class... T>
21 struct A2
22 {
23   [[gnu::aligned (alignof (T))...]] char t;
24 };
25 
26 A2<int,double> a2;
27