annotate gcc/testsuite/g++.dg/other/vararg-5.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 // PR middle-end/78716
kono
parents:
diff changeset
2 // { dg-do compile }
kono
parents:
diff changeset
3
kono
parents:
diff changeset
4 template <typename = int, typename = int, typename = int, typename = int,
kono
parents:
diff changeset
5 typename = int>
kono
parents:
diff changeset
6 struct a;
kono
parents:
diff changeset
7 template <typename> struct b;
kono
parents:
diff changeset
8 template <typename = int, typename d = void> class e : b<d>::c {
kono
parents:
diff changeset
9 public:
kono
parents:
diff changeset
10 typedef e f;
kono
parents:
diff changeset
11 typedef typename b<d>::c g;
kono
parents:
diff changeset
12 e(__builtin_va_list *s) : g(__builtin_va_arg(*s, int)) {}
kono
parents:
diff changeset
13 };
kono
parents:
diff changeset
14 template <> struct b<void> { typedef e<> c; };
kono
parents:
diff changeset
15 template <> struct e<> { template <typename h> e(h); };
kono
parents:
diff changeset
16 template <typename i> class a<i> : public e<i> {};
kono
parents:
diff changeset
17 template <typename i, typename j, typename k, typename l>
kono
parents:
diff changeset
18 class a<i, j, k, l> : e<typename a<j>::f> {
kono
parents:
diff changeset
19 public:
kono
parents:
diff changeset
20 template <typename m, typename n, typename o, typename p>
kono
parents:
diff changeset
21 a(a<m, n, o, p>) : a::f(0) {}
kono
parents:
diff changeset
22 };
kono
parents:
diff changeset
23 template <typename i, typename j, typename k, typename l> a<> r(i, j, k, l);
kono
parents:
diff changeset
24 void q() { a<float, float>(r(4, 6, 9, 7)); }