diff options
51 files changed, 172 insertions, 13 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 712cde5..b399869 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 7c0934a..49128aa 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 390ef37..ab7cf3c 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 78f6b92..190f61a 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 3b770a7..0c9b5db 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 f2fbe28..434a3e8 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 756891b..88cd181 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 d0b4818..8e4c3e6 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 8fb55e7..c675764 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 f2cf218..5ad6189 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 456b2b4..803074c 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 63f6d95..e4dbe43 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 10656a9..c71c3e2 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 8a868ec..c2c4dee 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 b7b62bd..b4ba007 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 fa77fc5..6cec88a 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 5987e95..c25b091 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 c8bce16..8bc4458 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 3d7c46a..0ef0ca1 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 03d0726..da30edb 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 5ab09b5..6c53c04 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 c89eba0..fd6b3a9 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 0d5a7ef..b40f003 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 f2f3f7e..b53a9db 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 8a962ff..7f7628f 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 231411d..84fe246 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 06a7d0d..4517c55 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 6a88861..d4dd586 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 5e60042..aaa4e77 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 ad1faf6..55cc05d 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 1bc1bcc..ca53819 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 4ac7047..af0426f 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 56e0375..654717f 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 d84cb13..8647bce 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 692caf3..b13fda1 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 2f526e8..062f3e5 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 1338df9..8ff2bad 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 238cfbc..0ed1590 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 95cd2bc..812daaa 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 3df1609..8f753ed 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 d89ddeb..56fdda1 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 6142cf5..7b41732 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 f8c686f..2b68d94 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 2eb8dbc..fafcf50 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 f08c7b2..e5235f2 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 0262c5c..730b8fa 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 ccc2278..7c1eeeb 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 3f45d54..dbed82a 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 192962c..66f8092 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 b48fda1..b482bf5 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 3cd7c61..ca0d716 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 |