// { dg-do assemble } // GROUPS passed nested-classes class BDDHeap { public: BDDHeap(); BDDHeap(const BDDHeap&); class Page { public: int i; }; struct Pointer { Page *page; unsigned index; Pointer(); Pointer(const BDDHeap& heap); }; struct Half { struct { Page *top; Page **tail; } inuse; Half(); }; Half half[2]; unsigned halfspace; }; inline BDDHeap::Pointer::Pointer(const BDDHeap& heap): page(0), index(0) { Page *x = heap.half[heap.halfspace].inuse.top; page = x; }