Viewing file: pr81408.C (1.21 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* { dg-do compile } */ /* { dg-options "-O2 -std=gnu++11 -fopt-info-loop-missed -fno-tree-vectorize" } */ struct p { char *ay; };
namespace a { void b () __attribute__ ((__noreturn__)); template <typename> struct d; template <typename e> struct d<e *> { typedef e f; }; struct g { template <typename h> using i = h *; }; } using a::d; template <typename j, typename> class k { j l;
public: typename d<j>::f operator* () { return p(); } void operator++ () { ++l; } j aa () { return l; } }; template <typename m, typename n, typename ab> bool operator!= (k<m, ab> o, k<n, ab> p2) { return o.aa () != p2.aa (); } namespace a { struct F { struct q { using ai = g::i<p>; }; using r = q::ai; }; class H { public: k<F::r, int> begin (); k<F::r, int> end (); }; int s; class I { public: void aq (char) { if (s) b (); } }; class u : public I { public: void operator<< (u o (u)) { o (*this); } u operator<< (void *); }; template <typename at, typename au> at av (au o) { o.aq ('\n'); return at(); } u ax; } a::H t; void ShowHelpListCommands () { for (auto c : t) /* { dg-missed "missed loop optimization: niters analysis .*" } */ a::ax << c.ay << a::av; }
|