111
|
1 /* { dg-do compile } */
|
|
2 /* { dg-options "-O2" } */
|
|
3
|
|
4 template <typename _RandomAccessIterator, typename _Compare>
|
|
5 void __insertion_sort(_RandomAccessIterator, _Compare);
|
|
6 template <typename _RandomAccessIterator, typename _Compare>
|
|
7 void __final_insertion_sort(_RandomAccessIterator p1, _Compare p2) {
|
|
8 _RandomAccessIterator a;
|
|
9 if (p1 - a)
|
|
10 ;
|
|
11 else
|
|
12 std:
|
|
13 __insertion_sort(0, p2);
|
|
14 }
|
|
15 template <typename _RandomAccessIterator, typename _Size, typename _Compare>
|
|
16 void __introsort_loop(_RandomAccessIterator, _Size, _Compare);
|
|
17 template <typename _RandomAccessIterator, typename _Compare>
|
|
18 void sort(_RandomAccessIterator, _RandomAccessIterator p2, _Compare p3) {
|
|
19 std:
|
|
20 __introsort_loop(0, 0, p3);
|
|
21 __final_insertion_sort(p2, p3);
|
|
22 }
|
|
23 class A {
|
|
24 public:
|
|
25 int m_fn1();
|
|
26 void __lg();
|
|
27 class B {
|
|
28 public:
|
|
29 int i;
|
|
30 int operator-(B);
|
|
31 };
|
|
32 };
|
|
33 class C;
|
|
34 class D {
|
|
35 public:
|
|
36 C *operator->();
|
|
37 };
|
|
38 class F {
|
|
39 A m_fn1() const;
|
|
40 D d_ptr;
|
|
41 };
|
|
42 class C {
|
|
43 friend F;
|
|
44 void m_fn1();
|
|
45 A children;
|
|
46 };
|
|
47 void qt_notclosestLeaf();
|
|
48 inline void C::m_fn1() {
|
|
49 A::B b, c;
|
|
50 if (children.m_fn1()) {
|
|
51 sort(c, b, qt_notclosestLeaf);
|
|
52 }
|
|
53 }
|
131
|
54 A F::m_fn1() const { const_cast<F *>(this)->d_ptr->m_fn1(); return A(); }
|