1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
// { dg-do compile } // { dg-options -O2 } template<class T> struct O { O(T *p) : q(p) { } T *q; }; struct W { virtual ~W(); }; struct S : public W { S (int *); }; W *bar(int); S::S (int *x) { for (int *p = x; *p; p++) O<W> i (bar (*p)); }