blob: b4cd69001b5c2c4bd7c042262d3c9bbbfe577514 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-O3 -w -std=gnu++11" } */
class a {
public:
a(char *);
};
class ad {
public:
ad(a *);
};
class b {};
using ah = class ak {
using al = char;
public:
ak(b) : ak(0) {}
ak an() { return ap & 1; }
al ap;
ak(al af) : ap(af) {}
};
struct at {
ah au;
int av;
char aw;
char ax;
};
class az {
public:
struct ba {
void bb(ak am) {
ak bc = am.an();
bb(bc);
}
};
void bd(ak am) { be.bb(am); }
ba be;
};
class bg {
public:
int bh;
at bi;
};
int bj;
int *bk;
int c;
class bl {
bool bm();
bg bn;
az bo;
int e;
int bq;
};
class bs {
public:
bs(int *, ah *, char *, char *, int);
};
template < typename bt > class bu : bs {
using bv = typename bt::bv;
public:
template < typename... bx >
bu(a *by, int *bz, at body, bx...)
: bs(bz, &body.au, &body.aw, &body.ax, body.av), ca(bx()...), cb(by),
cc(by), cd(by), ce(by) {}
void cf() {
auto cg = ch();
auto ci = *cj();
ca.ck(this, cg, &ci);
}
bt ca;
ad cb;
ad cc;
ad cd;
ad ce;
bv *cj();
bv ch();
};
class cl {
public:
using bv = struct {};
cl(az *, int, int, int, int, a *, int, int **);
void ck(bs *, bv, bv *) {
b d;
ak ci(d);
bo.bd(ci);
}
az bo;
};
bool bl::bm() {
a by("");
bu< cl > cn(&by, &bj, bn.bi, &bo, c, bn.bh, e, 0, &by, bq, &bk);
cn.cf();
}