From 554fd8c5195424bdbcabf5de30fdc183aba391bd Mon Sep 17 00:00:00 2001 From: upstream source tree Date: Sun, 15 Mar 2015 20:14:05 -0400 Subject: obtained gcc-4.6.4.tar.bz2 from upstream website; verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository. --- .../testsuite/24_iterators/insert_iterator/2.cc | 41 ++++++++++++++++++++++ .../insert_iterator/requirements/base_classes.cc | 39 ++++++++++++++++++++ .../insert_iterator/requirements/container.cc | 34 ++++++++++++++++++ .../requirements/explicit_instantiation.cc | 27 ++++++++++++++ .../insert_iterator/requirements/typedefs.cc | 39 ++++++++++++++++++++ 5 files changed, 180 insertions(+) create mode 100644 libstdc++-v3/testsuite/24_iterators/insert_iterator/2.cc create mode 100644 libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/base_classes.cc create mode 100644 libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/container.cc create mode 100644 libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/explicit_instantiation.cc create mode 100644 libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/typedefs.cc (limited to 'libstdc++-v3/testsuite/24_iterators/insert_iterator') diff --git a/libstdc++-v3/testsuite/24_iterators/insert_iterator/2.cc b/libstdc++-v3/testsuite/24_iterators/insert_iterator/2.cc new file mode 100644 index 000000000..ac949307e --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/insert_iterator/2.cc @@ -0,0 +1,41 @@ +// 2001-06-21 Benjamin Kosnik + +// Copyright (C) 2001, 2004, 2005, 2009, 2010 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// . + +// 24.4.2.5 Template class insert_iterator + +#include +#include + +void test02() +{ + typedef std::insert_iterator > iterator_type; + + std::list li; + std::list::iterator liit = li.begin(); + iterator_type it01(li, liit); + iterator_type it02 = std::inserter(li, liit); + it01 = it01; // Suppress unused warnings. + it02 = it02; +} + +int main() +{ + test02(); + return 0; +} diff --git a/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/base_classes.cc b/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/base_classes.cc new file mode 100644 index 000000000..74675d951 --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/base_classes.cc @@ -0,0 +1,39 @@ +// { dg-do compile } +// 2001-06-21 Benjamin Kosnik + +// Copyright (C) 2001, 2004, 2005, 2009 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// . + +// 24.4.2.5 Template class insert_iterator + +#include +#include + +void test01() +{ + using namespace std; + + // Check for required base class. + list l; + list::iterator li = l.begin(); + + typedef insert_iterator > test_iterator; + typedef iterator base_iterator; + test_iterator r_it(l, li); + base_iterator* base __attribute__((unused)) = &r_it; +} + diff --git a/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/container.cc b/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/container.cc new file mode 100644 index 000000000..845d76b1d --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/container.cc @@ -0,0 +1,34 @@ +// { dg-do compile } +// 2001-06-21 Benjamin Kosnik + +// Copyright (C) 2001, 2004, 2005, 2009 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// . + +// 24.4.2.5 Template class insert_iterator + +#include +#include + +// Check data member 'container' accessible. +class test_dm : public std::insert_iterator > +{ + container_type l; + container_type::iterator i; + container_type* p; +public: + test_dm(): std::insert_iterator >(l, i), p(container) { } +}; diff --git a/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/explicit_instantiation.cc new file mode 100644 index 000000000..7f1e5ae74 --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/explicit_instantiation.cc @@ -0,0 +1,27 @@ +// { dg-do compile } +// 2001-06-21 Benjamin Kosnik + +// Copyright (C) 2001, 2004, 2005, 2009 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// . + +// 24.4.2.5 Template class insert_iterator + +#include +#include + +// Make sure iterator can be instantiated. +template class std::insert_iterator >; diff --git a/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/typedefs.cc b/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/typedefs.cc new file mode 100644 index 000000000..05d142ab3 --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/typedefs.cc @@ -0,0 +1,39 @@ +// { dg-do compile } +// 2001-06-21 Benjamin Kosnik + +// Copyright (C) 2001, 2004, 2005, 2009 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// . + +// 24.4.2.5 Template class insert_iterator + +#include +#include + +void test01() +{ + using namespace std; + + // Check for required typedefs + typedef insert_iterator > test_iterator; + typedef test_iterator::value_type value_type; + typedef test_iterator::difference_type difference_type; + typedef test_iterator::pointer pointer; + typedef test_iterator::reference reference; + typedef test_iterator::iterator_category iteratory_category; + typedef test_iterator::container_type container_type; +} + -- cgit v1.2.3