Viewing file: pr98550.C (2.04 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* { dg-do compile } */ /* { dg-require-effective-target c++11 } */ /* { dg-additional-options "-O3" } */ /* { dg-additional-options "-march=z13" { target s390x-*-* } } */
template <int a> struct k { static constexpr int c = a; }; template <bool, bool, typename...> struct o; template <typename f, typename... g> struct o<false, false, f, g...> { typedef decltype(0) h; }; template <typename... g> struct p : o<k<false>::c, k<false>::c, g...> {}; class q; class r { public: void ap(q); }; template <typename, typename aw> void ax(aw ay) { ay(); } template <typename az> void ba(az bb) { using bc = p<az>; using bd = typename bc::h; ax<bd>(bb); } template <unsigned> class s; class t { public: s<8> br(); template <typename...> void operator()() { ba(br()); } }; class q { public: template <typename az> q(az) { H(); } struct H { t cc; H() { cc(); } }; }; template <unsigned long> struct I {}; template <unsigned long cl, typename j> void cm(j cn, I<cl>) { cm(cn, I<cl - 1>()); cn(cl); } template <typename j> void cm(j, I<0>) {} template <unsigned co> struct u { long cp[co]; void cq(const u &); void cs(int); void operator<(u); }; template <unsigned co> void u<co>::cq(const u &l) { cm([&](int i) { cp[i] &= l.cp[i]; }, I<co>()); } template <unsigned co> void u<co>::cs(int m) { cm([&](int i) { cp[i] >>= m; }, I<co - 2>()); } template <unsigned> class K; template <unsigned co> class v { int cv; friend K<co>;
public: void cx(int, unsigned char *, unsigned long long); }; template <unsigned co> class K { public: static void cx(v<co> &); }; template <unsigned co> void v<co>::cx(int, unsigned char *, unsigned long long) { K<co>::cx(*this); } template <unsigned co> void K<co>::cx(v<co> &cz) { u<co> a, b, d; int e, n = cz.cv; for (; e;) if (cz.cv) a.cs(cz.cv); a.cq(d); a < b; } template <unsigned co> class s { v<co> *dh;
public: void operator()(); }; template <unsigned co> void s<co>::operator()() { int f; unsigned char g; long h; dh->cx(f, &g, h); } void d() { r i; t j; i.ap(j); }
|