Viewing file: pr77728-2.C (3.38 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
// { dg-do compile { target { { aarch64-*-* } && c++11 } } } // { dg-options "" }
#include <stdarg.h>
template <int N> struct alignas (16) A { char p[16]; };
A<0> v;
template <int N> struct B { typedef A<N> T; int i, j, k, l; };
struct C : public B<0> {}; struct D {}; struct E : public D, C {}; struct F : public B<1> {}; struct G : public F { static int y alignas (16); }; struct H : public G {}; struct I : public D { int z alignas (16); }; struct J : public D { static int z alignas (16); int i, j, k, l; };
template <int N> struct K : public D { typedef A<N> T; int i, j; };
struct L { static int h alignas (16); int i, j, k, l; };
int fn1 (int a, B<0> b) { return a + b.i; }
int fn2 (int a, B<1> b) { return a + b.i; }
int fn3 (int a, L b) { return a + b.i; }
int fn4 (int a, int b, int c, int d, int e, int f, int g, int h, int i, int j, int k, int l, int m, B<0> n, ...) { va_list ap; va_start (ap, n); int x = va_arg (ap, int); va_end (ap); return x; }
int fn5 (int a, int b, int c, int d, int e, int f, int g, int h, int i, int j, int k, int l, int m, B<1> n, ...) { va_list ap; va_start (ap, n); int x = va_arg (ap, int); va_end (ap); return x; }
int fn6 (int a, int b, int c, int d, int e, int f, int g, int h, int i, int j, int k, int l, int m, C n, ...) { va_list ap; va_start (ap, n); int x = va_arg (ap, int); va_end (ap); return x; }
int fn7 (int a, int b, int c, int d, int e, int f, int g, int h, int i, int j, int k, int l, int m, E n, ...) { va_list ap; va_start (ap, n); int x = va_arg (ap, int); va_end (ap); return x; }
int fn8 (int a, int b, int c, int d, int e, int f, int g, int h, int i, int j, int k, int l, int m, H n, ...) { va_list ap; va_start (ap, n); int x = va_arg (ap, int); va_end (ap); return x; }
int fn9 (int a, int b, int c, int d, int e, int f, int g, int h, int i, int j, int k, int l, int m, I n, ...) { va_list ap; va_start (ap, n); int x = va_arg (ap, int); va_end (ap); return x; }
int fn10 (int a, int b, int c, int d, int e, int f, int g, int h, int i, int j, int k, int l, int m, J n, ...) { va_list ap; va_start (ap, n); int x = va_arg (ap, int); va_end (ap); return x; }
int fn11 (int a, int b, int c, int d, int e, int f, int g, int h, int i, int j, int k, int l, int m, K<0> n, ...) { va_list ap; va_start (ap, n); int x = va_arg (ap, int); va_end (ap); return x; }
int fn12 (int a, int b, int c, int d, int e, int f, int g, int h, int i, int j, int k, int l, int m, K<2> n, ...) { va_list ap; va_start (ap, n); int x = va_arg (ap, int); va_end (ap); return x; }
void test () { static B<0> b0; static B<1> b1; static L l; static C c; static E e; static H h; static I i; static J j; static K<0> k0; static K<2> k2; fn1 (1, b0); fn2 (1, b1); fn3 (1, l); fn4 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, b0, 1, 2, 3, 4); fn5 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, b1, 1, 2, 3, 4); fn6 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, c, 1, 2, 3, 4); fn7 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, e, 1, 2, 3, 4); fn8 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, h, 1, 2, 3, 4); fn9 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, i, 1, 2, 3, 4); fn10 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, j, 1, 2, 3, 4); fn11 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, k0, 1, 2, 3, 4); fn12 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, k2, 1, 2, 3, 4); }
|