Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/ipa/pr93203.C @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | |
children |
line wrap: on
line source
/* { 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(); }