diff options
51 files changed, 172 insertions, 13 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 712cde5d5d1..b399869fa94 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,106 @@ +2007-10-05 Benjamin Kosnik <bkoz@redhat.com> + + Fixes for --disable-libstdcxx-pch. + * include/ext/rc_string_base.h: Include stl_iterator_base_funcs.h. + * include/ext/vstring_util.h: Include stl_iterator.h and + numeric_traits.h. + * include/tr1/functional: Include new. + * testsuite/util/testsuite_api.h: Include exception. + * testsuite/lib/libstdc++.exp (libstdc++_init): Set + PCH_CXXFLAGS via cxxpchflags. + + * testsuite/25_algorithms/binary_search/requirements/ + explicit_instantiation/2.cc: Same.: Fix includes. + * testsuite/25_algorithms/count_if/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/equal_range/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/find_end/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/find_first_of/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/find_if/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/for_each/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/includes/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/inplace_merge/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/lexicographical_compare/ + requirements/explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/lower_bound/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/make_heap/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/max_element/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/max/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/merge/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/min_element/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/min/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/next_permutation/ + requirements/explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/nth_element/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/partial_sort_copy/ + requirements/explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/partial_sort/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/partition/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/pop_heap/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/prev_permutation/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/push_heap/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/random_shuffle/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/remove_copy_if/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/remove_if/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/replace_copy_if/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/replace_if/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/search_n/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/search/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/set_difference/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/set_intersection/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/set_symmetric_difference/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/set_union/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/sort_heap/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/sort/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/stable_partition/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/stable_sort/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/transform/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/unique_copy/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/unique/requirements/ + explicit_instantiation/2.cc: Same. + * testsuite/25_algorithms/upper_bound/requirements/ + explicit_instantiation/2.cc: Same. + + * testsuite/25_algorithms/remove/requirements/ + explicit_instantiation/pod.cc: Provide a hint to the compiler. + 2007-10-05 Paolo Carlini <pcarlini@suse.de> * testsuite/23_containers/map/moveable.cc: Remove dg-require-rvalref. diff --git a/libstdc++-v3/include/ext/rc_string_base.h b/libstdc++-v3/include/ext/rc_string_base.h index 7c0934a3084..49128aa2f82 100644 --- a/libstdc++-v3/include/ext/rc_string_base.h +++ b/libstdc++-v3/include/ext/rc_string_base.h @@ -37,6 +37,7 @@ #define _RC_STRING_BASE_H 1 #include <ext/atomicity.h> +#include <bits/stl_iterator_base_funcs.h> _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) diff --git a/libstdc++-v3/include/ext/vstring_util.h b/libstdc++-v3/include/ext/vstring_util.h index 390ef37fb3d..ab7cf3c3467 100644 --- a/libstdc++-v3/include/ext/vstring_util.h +++ b/libstdc++-v3/include/ext/vstring_util.h @@ -44,6 +44,8 @@ #include <bits/functexcept.h> #include <bits/localefwd.h> #include <bits/ostream_insert.h> +#include <bits/stl_iterator.h> +#include <ext/numeric_traits.h> _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) diff --git a/libstdc++-v3/include/tr1/functional b/libstdc++-v3/include/tr1/functional index 78f6b925eee..190f61ae66b 100644 --- a/libstdc++-v3/include/tr1/functional +++ b/libstdc++-v3/include/tr1/functional @@ -45,6 +45,7 @@ #include <cmath> #include <typeinfo> +#include <new> #include <tr1/tuple> #include <tr1/type_traits> #include <bits/stringfwd.h> diff --git a/libstdc++-v3/testsuite/25_algorithms/binary_search/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/binary_search/requirements/explicit_instantiation/2.cc index 3b770a7d9aa..0c9b5db1987 100644 --- a/libstdc++-v3/testsuite/25_algorithms/binary_search/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/binary_search/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc index f2fbe280f4d..434a3e822f6 100644 --- a/libstdc++-v3/testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/equal_range/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/equal_range/requirements/explicit_instantiation/2.cc index 756891bc947..88cd1811a56 100644 --- a/libstdc++-v3/testsuite/25_algorithms/equal_range/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/equal_range/requirements/explicit_instantiation/2.cc @@ -31,6 +31,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc index d0b481894c7..8e4c3e6dc70 100644 --- a/libstdc++-v3/testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc index 8fb55e7d793..c675764085e 100644 --- a/libstdc++-v3/testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc index f2cf218f6c6..5ad6189c573 100644 --- a/libstdc++-v3/testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc index 456b2b4e060..803074ceda0 100644 --- a/libstdc++-v3/testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/includes/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/includes/requirements/explicit_instantiation/2.cc index 63f6d95d23a..e4dbe43aa8c 100644 --- a/libstdc++-v3/testsuite/25_algorithms/includes/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/includes/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/inplace_merge/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/inplace_merge/requirements/explicit_instantiation/2.cc index 10656a9c029..c71c3e221b5 100644 --- a/libstdc++-v3/testsuite/25_algorithms/inplace_merge/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/inplace_merge/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/requirements/explicit_instantiation/2.cc index 8a868ecb08b..c2c4deed40d 100644 --- a/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/lower_bound/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/lower_bound/requirements/explicit_instantiation/2.cc index b7b62bd94b2..b4ba007c58c 100644 --- a/libstdc++-v3/testsuite/25_algorithms/lower_bound/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/lower_bound/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/make_heap/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/make_heap/requirements/explicit_instantiation/2.cc index fa77fc5855c..6cec88af906 100644 --- a/libstdc++-v3/testsuite/25_algorithms/make_heap/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/make_heap/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/2.cc index 5987e95282a..c25b091c6e0 100644 --- a/libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/max_element/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/max_element/requirements/explicit_instantiation/2.cc index c8bce1658cb..8bc4458142b 100644 --- a/libstdc++-v3/testsuite/25_algorithms/max_element/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/max_element/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/merge/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/merge/requirements/explicit_instantiation/2.cc index 3d7c46ad70d..0ef0ca1a81c 100644 --- a/libstdc++-v3/testsuite/25_algorithms/merge/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/merge/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/2.cc index 03d0726229c..da30edb8827 100644 --- a/libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/min_element/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/min_element/requirements/explicit_instantiation/2.cc index 5ab09b5448a..6c53c046b33 100644 --- a/libstdc++-v3/testsuite/25_algorithms/min_element/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/min_element/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/next_permutation/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/next_permutation/requirements/explicit_instantiation/2.cc index c89eba09f08..fd6b3a92dac 100644 --- a/libstdc++-v3/testsuite/25_algorithms/next_permutation/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/next_permutation/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/nth_element/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/nth_element/requirements/explicit_instantiation/2.cc index 0d5a7efa12a..b40f0036c1c 100644 --- a/libstdc++-v3/testsuite/25_algorithms/nth_element/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/nth_element/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/partial_sort/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/partial_sort/requirements/explicit_instantiation/2.cc index f2f3f7eec29..b53a9db081c 100644 --- a/libstdc++-v3/testsuite/25_algorithms/partial_sort/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/partial_sort/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/requirements/explicit_instantiation/2.cc index 8a962ff5482..7f7628fa5b9 100644 --- a/libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc index 231411d5129..84fe246122e 100644 --- a/libstdc++-v3/testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/pop_heap/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/pop_heap/requirements/explicit_instantiation/2.cc index 06a7d0dcb40..4517c55f28c 100644 --- a/libstdc++-v3/testsuite/25_algorithms/pop_heap/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/pop_heap/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/prev_permutation/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/prev_permutation/requirements/explicit_instantiation/2.cc index 6a888618642..d4dd5864bca 100644 --- a/libstdc++-v3/testsuite/25_algorithms/prev_permutation/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/prev_permutation/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/push_heap/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/push_heap/requirements/explicit_instantiation/2.cc index 5e600423304..aaa4e77618a 100644 --- a/libstdc++-v3/testsuite/25_algorithms/push_heap/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/push_heap/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc index ad1faf620cc..55cc05d3514 100644 --- a/libstdc++-v3/testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/remove/requirements/explicit_instantiation/pod.cc b/libstdc++-v3/testsuite/25_algorithms/remove/requirements/explicit_instantiation/pod.cc index 1bc1bcc4b77..ca538192dec 100644 --- a/libstdc++-v3/testsuite/25_algorithms/remove/requirements/explicit_instantiation/pod.cc +++ b/libstdc++-v3/testsuite/25_algorithms/remove/requirements/explicit_instantiation/pod.cc @@ -39,6 +39,5 @@ namespace std typedef pod_int value_type; typedef value_type* iterator_type; - template iterator_type remove(iterator_type, iterator_type, - const value_type&); + template iterator_type remove<iterator_type, value_type>(iterator_type, iterator_type, const value_type&); } diff --git a/libstdc++-v3/testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc index 4ac704793d2..af0426f7604 100644 --- a/libstdc++-v3/testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc index 56e0375d124..654717fca32 100644 --- a/libstdc++-v3/testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc index d84cb134789..8647bcec6c5 100644 --- a/libstdc++-v3/testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc index 692caf318c9..b13fda1a9ff 100644 --- a/libstdc++-v3/testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc index 2f526e840f3..062f3e56233 100644 --- a/libstdc++-v3/testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc index 1338df98eda..8ff2badc157 100644 --- a/libstdc++-v3/testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/set_difference/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/set_difference/requirements/explicit_instantiation/2.cc index 238cfbc9561..0ed15900273 100644 --- a/libstdc++-v3/testsuite/25_algorithms/set_difference/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/set_difference/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/set_intersection/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/set_intersection/requirements/explicit_instantiation/2.cc index 95cd2bcb38c..812daaa02d1 100644 --- a/libstdc++-v3/testsuite/25_algorithms/set_intersection/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/set_intersection/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/requirements/explicit_instantiation/2.cc index 3df16097c71..8f753edafc1 100644 --- a/libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/set_union/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/set_union/requirements/explicit_instantiation/2.cc index d89ddeb26a3..56fdda16b9c 100644 --- a/libstdc++-v3/testsuite/25_algorithms/set_union/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/set_union/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/sort/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/sort/requirements/explicit_instantiation/2.cc index 6142cf52ae0..7b417325187 100644 --- a/libstdc++-v3/testsuite/25_algorithms/sort/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/sort/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/sort_heap/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/sort_heap/requirements/explicit_instantiation/2.cc index f8c686f0e03..2b68d9444a5 100644 --- a/libstdc++-v3/testsuite/25_algorithms/sort_heap/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/sort_heap/requirements/explicit_instantiation/2.cc @@ -31,6 +31,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc index 2eb8dbc8949..fafcf50cd68 100644 --- a/libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/stable_sort/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/stable_sort/requirements/explicit_instantiation/2.cc index f08c7b26591..e5235f278e5 100644 --- a/libstdc++-v3/testsuite/25_algorithms/stable_sort/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/stable_sort/requirements/explicit_instantiation/2.cc @@ -31,6 +31,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc index 0262c5c1285..730b8fa898b 100644 --- a/libstdc++-v3/testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/unique/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/unique/requirements/explicit_instantiation/2.cc index ccc227869f1..7c1eeebbdba 100644 --- a/libstdc++-v3/testsuite/25_algorithms/unique/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/unique/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/unique_copy/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/unique_copy/requirements/explicit_instantiation/2.cc index 3f45d541a08..dbed82a0013 100644 --- a/libstdc++-v3/testsuite/25_algorithms/unique_copy/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/unique_copy/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/25_algorithms/upper_bound/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/upper_bound/requirements/explicit_instantiation/2.cc index 192962c4913..66f80924471 100644 --- a/libstdc++-v3/testsuite/25_algorithms/upper_bound/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/upper_bound/requirements/explicit_instantiation/2.cc @@ -30,6 +30,7 @@ // the GNU General Public License. #include <algorithm> +#include <functional> #include <testsuite_api.h> namespace std diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp b/libstdc++-v3/testsuite/lib/libstdc++.exp index b48fda12862..b482bf58d20 100644 --- a/libstdc++-v3/testsuite/lib/libstdc++.exp +++ b/libstdc++-v3/testsuite/lib/libstdc++.exp @@ -83,7 +83,7 @@ proc libstdc++_init { testfile } { global env global v3-sharedlib global srcdir blddir objdir tool_root_dir - global cc cxx cxxflags cxxldflags + global cc cxx cxxflags cxxpchflags cxxldflags global includes global gluefile wrap_flags global ld_library_path @@ -184,6 +184,7 @@ proc libstdc++_init { testfile } { # Default settings. set cxx [transform "g++"] set cxxflags "-g -O2 -D_GLIBCXX_ASSERT -fmessage-length=0" + set cxxpchflags "" set cxxldflags "" set cc [transform "gcc"] # Locate testsuite_hooks.h and other testsuite headers. @@ -221,6 +222,7 @@ proc libstdc++_init { testfile } { # If we find a testsuite_flags file, we're testing in the build dir. set cxx [exec sh $flags_file --build-cxx] set cxxflags [exec sh $flags_file --cxxflags] + set cxxpchflags [exec sh $flags_file --cxxpchflags] set cxxldflags [exec sh $flags_file --cxxldflags] set cc [exec sh $flags_file --build-cc] set includes [exec sh $flags_file --build-includes] @@ -237,23 +239,29 @@ proc libstdc++_init { testfile } { # this check until $cxx and such have been initialized because we # perform a test compilation. (Ideally, gcc --print-file-name would # list PCH files, but it does not.) - global PCH_CXXFLAGS - if ![info exists PCH_CXXFLAGS] then { + if { $cxxpchflags != "" } { set src "config[pid].cc" set f [open $src "w"] puts $f "int main () {}" close $f + # Fixme: "additional_flags=$cxxpchflags" fails, but would be + # useful as then the requested variant of the pre-build PCH + # files could be tested to see if it works. set lines [v3_target_compile $src "config[pid].o" object \ - "additional_flags=-include additional_flags=bits/stdtr1c++.h"] - if {$lines == "" } { -# set PCH_CXXFLAGS "-include bits/extc++.h" -# set PCH_CXXFLAGS "-include bits/stdtr1c++.h" - set PCH_CXXFLAGS "-include bits/stdc++.h" - } else { - set PCH_CXXFLAGS "" - } + "additional_flags=-include additional_flags=bits/stdc++.h"] + if { $lines != "" } { + verbose -log "Requested PCH file: $cxxpchflags" + verbose -log "is not working, and will not be used." + set cxxpchflags "" + } file delete $src + } + v3track cxxpchflags 2 + + global PCH_CXXFLAGS + if ![info exists PCH_CXXFLAGS] then { + set PCH_CXXFLAGS $cxxpchflags v3track PCH_CXXFLAGS 2 } diff --git a/libstdc++-v3/testsuite/util/testsuite_api.h b/libstdc++-v3/testsuite/util/testsuite_api.h index 3cd7c6177f7..ca0d716bd18 100644 --- a/libstdc++-v3/testsuite/util/testsuite_api.h +++ b/libstdc++-v3/testsuite/util/testsuite_api.h @@ -28,6 +28,7 @@ // invalidate any other reasons why the executable file might be covered by // the GNU General Public License. +#include <exception> #include <testsuite_hooks.h> #ifndef _TESTSUITE_API |