Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/torture/pr78507.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// PR middle-end/78507 // { dg-do compile } // { dg-additional-options "-Wno-return-type" } struct A { template <typename _Iterator1, typename _Iterator2> int operator()(_Iterator1, _Iterator2); }; struct B { template <typename _BI1, typename _BI2> static _BI2 __copy_move_b(_BI1 p1, _BI2 p2) { _BI1 a; long b = p1 - a; for (; b > 0; --b) *--p2 = *--p1; } }; template <int, typename _BI1, typename _BI2> void __copy_move_backward_a(_BI1 p1, _BI2 p2) { B::__copy_move_b(p1, p2); } template <int, typename _BI1, typename _BI2> void __copy_move_backward_a2(_BI1 p1, _BI2 p2) { __copy_move_backward_a<0>(p1, p2); } template <typename _BI1, typename _BI2> void move_backward(_BI1 p1, _BI2 p2) { __copy_move_backward_a2<0>(p1, p2); } template <typename _RandomAccessIterator, typename _Compare> void __insertion_sort(_RandomAccessIterator, _Compare p2) { for (_RandomAccessIterator c;; ++c) if (p2(0, 0)) move_backward(c, c + 1); } template <typename _RandomAccessIterator, typename _Compare> void __final_insertion_sort(_RandomAccessIterator, _Compare p2) { _RandomAccessIterator d; __insertion_sort(d, p2); } template <typename _RandomAccessIterator, typename _Compare> void __sort(_RandomAccessIterator p1, _Compare p2) { __final_insertion_sort(p1, p2); } template <typename _RandomAccessIterator, typename _Compare> void sort(_RandomAccessIterator, _RandomAccessIterator p2, _Compare) { A e; __sort(p2, e); } struct C { struct D { int DwarfRegNum; }; int parseRegisterLiveOutMask() const; }; int C::parseRegisterLiveOutMask() const { D f, g; sort(&f, &g, [] {}); }