1// Copyright (C) 2008-2015 Free Software Foundation, Inc.
2//
3// This file is part of the GNU ISO C++ Library.  This library is free
4// software; you can redistribute it and/or modify it under the
5// terms of the GNU General Public License as published by the
6// Free Software Foundation; either version 3, or (at your option)
7// any later version.
8
9// This library is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12// GNU General Public License for more details.
13
14// You should have received a copy of the GNU General Public License along
15// with this library; see the file COPYING3.  If not see
16// <http://www.gnu.org/licenses/>.
17
18// 23.2.2.4 list operations [lib.list.ops]
19
20// NB: This issue affected only debug-mode.
21
22#include <list>
23#include <functional>
24
25// libstdc++/35969
26void test01()
27{
28  {
29    std::list<int> list1;
30    std::list<int> list2;
31
32    for(int i = 0; i < 10; ++i)
33      {
34	list1.push_back(i);
35	list2.push_back(10 - i);
36      }
37
38    list1.sort();
39    list2.sort();
40
41    std::list<int>::iterator node_of_interest = list2.begin();
42
43    list1.splice(list1.begin(), list2, node_of_interest);
44    list2.splice(list2.begin(), list1, node_of_interest);
45
46    list1.merge(list2);
47
48    list2.splice(list2.begin(), list1, node_of_interest);
49  }
50
51  {
52    std::list<int> list1;
53    std::list<int> list2;
54
55    for(int i = 0; i < 10; ++i)
56      {
57	list1.push_back(i);
58	list2.push_back(10 - i);
59      }
60
61    list1.sort();
62    list2.sort();
63
64    std::list<int>::iterator node_of_interest = list2.begin();
65
66    list1.splice(list1.begin(), list2, node_of_interest);
67    list2.splice(list2.begin(), list1, node_of_interest);
68
69    list1.merge(list2, std::less<int>());
70
71    list2.splice(list2.begin(), list1, node_of_interest);
72  }
73}
74
75int main()
76{
77  test01();
78  return 0;
79}
80