// { dg-do compile { target i?86-*-* x86_64-*-* } } // { dg-options "-std=c++11 -O3 -march=westmere" } template struct A { typedef typename T::next type; }; template struct B; template struct N : T {}; template struct C { static const int value = N; typedef C next; }; template struct R : N::template P> {}; template struct O : Base { typedef typename A::type size; }; template struct D { typedef int tag; typedef C<0> size; }; template <> struct B { template struct P : O>>>::size {}; }; template struct F; template struct G; template struct H; template struct H {}; template unsigned char at_c(H) { return 0; } template class I; template class J; template class K; template struct Q; struct L { typedef Q>>>>> *type; }; template struct M { typedef K>> view_t; }; template struct Q : H, R>>>>::value> {}; template struct G> { typedef Iterator type; }; template class J { public: typedef G *>>::type x_iterator; }; template class K { public: J::x_iterator row_begin(int); }; template void measure_time(Op p1) { p1(); } template struct fill_nongil_t; template struct fill_nongil_t>>>>> *>>>, P> { typedef K>>>>> *>>> View; View _v; P _p; fill_nongil_t(View, P); void operator()() { T *first = (T *)_v.row_begin(0); T last; while (first != &last) { first[0] = first[1] = at_c<1>(_p); first[2] = at_c<2>(_p); first += 3; } } }; template void test_fill(int) { M::view_t __trans_tmp_1; measure_time(fill_nongil_t>>>>> *>>>, Q>>>>>>( __trans_tmp_1, Q>>>>>())); } void performance_testtest_method() { test_fill, Q>(0); }