2018-05-22 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / g++.dg / torture / pr85834.C
blobbbdc695849c684cd0e05ca74de3471814579e54d
1 /* { dg-do compile } */
3 typedef __SIZE_TYPE__ a;
4 extern "C" void *memset(void *, int, a);
5 typedef struct b c;
6 enum d { e };
7 template <int, typename> class f {
8 public:
9     template <typename g> f(g);
11 typedef f<1, long> h;
12 template <typename> struct j {
13     enum k {};
15 class l {
16 public:
17     typedef j<l>::k k;
18     l(k);
19     operator d();
21 struct b {};
22 class m {};
23 c q(h, d);
24 c n(unsigned char o[]) {
25     int i;
26     long r;
27     for (i = 0; i < 4; i++)
28       r = o[i];
29     return q(r, l((l::k)e));
31 m p() {
32     unsigned char o[4], s = 1;
33     for (;;) {
34         memset(o, s, 4);
35         n(o);
36         s = 2;
37     }