1// { dg-do compile } 2 3struct A 4{ 5 A (); 6}; 7const unsigned long &min (const unsigned long &, const unsigned long &) {} 8 9template <typename _InputIterator1, typename _InputIterator2, 10 typename _OutputIterator, typename _BinaryOperation> 11void transform (_InputIterator1 p1, _InputIterator2, _OutputIterator, 12 _BinaryOperation p4) 13{ 14 for (; p1;) 15 p4 (0, 0); 16} 17 18class multi_array 19{ 20public: 21 multi_array (int &, int &); 22 int &resize_ranges; 23 int resize___trans_tmp_1; 24 void m_fn1 () 25 { 26 multi_array a (resize_ranges, this->m_fn2 ()); 27 const unsigned long &(*b)(const unsigned long &, const unsigned long &) 28 = min; 29 transform (&resize___trans_tmp_1, 0, 0, b); 30 A c; 31 } 32 ~multi_array () 33 { 34 for (int i; &base_;) 35 ; 36 } 37 int base_; 38 int &m_fn2 (); 39}; 40 41class B 42{ 43 void m_fn3 (const int &, const int &); 44 multi_array _bookingSnapshotBlock; 45}; 46void B::m_fn3 (const int &, const int &) { _bookingSnapshotBlock.m_fn1 (); } 47