From: Benjamin Kosnik Date: Sat, 6 Oct 2007 03:06:37 +0000 (+0000) Subject: Fixes for --disable-libstdcxx-pch. X-Git-Tag: releases/gcc-4.3.0~2191 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6116ca65ddba06d9fb1cb85b26ac75964a63f684;p=thirdparty%2Fgcc.git Fixes for --disable-libstdcxx-pch. 2007-10-05 Benjamin Kosnik 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. From-SVN: r129049 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 712cde5d5d1f..b399869fa946 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,106 @@ +2007-10-05 Benjamin Kosnik + + 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 * 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 7c0934a30849..49128aa2f826 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 +#include _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) diff --git a/libstdc++-v3/include/ext/vstring_util.h b/libstdc++-v3/include/ext/vstring_util.h index 390ef37fb3da..ab7cf3c3467f 100644 --- a/libstdc++-v3/include/ext/vstring_util.h +++ b/libstdc++-v3/include/ext/vstring_util.h @@ -44,6 +44,8 @@ #include #include #include +#include +#include _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) diff --git a/libstdc++-v3/include/tr1/functional b/libstdc++-v3/include/tr1/functional index 78f6b925eee1..190f61ae66b3 100644 --- a/libstdc++-v3/include/tr1/functional +++ b/libstdc++-v3/include/tr1/functional @@ -45,6 +45,7 @@ #include #include +#include #include #include #include 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 3b770a7d9aa9..0c9b5db19876 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 +#include #include 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 f2fbe280f4db..434a3e822f64 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 +#include #include 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 756891bc947c..88cd1811a562 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 +#include #include 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 d0b481894c74..8e4c3e6dc707 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 +#include #include 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 8fb55e7d7932..c675764085ee 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 +#include #include 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 f2cf218f6c68..5ad6189c573b 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 +#include #include 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 456b2b4e060f..803074ceda04 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 +#include #include 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 63f6d95d23a7..e4dbe43aa8c7 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 +#include #include 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 10656a9c0299..c71c3e221b57 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 +#include #include 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 8a868ecb08bb..c2c4deed40d3 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 +#include #include 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 b7b62bd94b2e..b4ba007c58c0 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 +#include #include 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 fa77fc5855cd..6cec88af9063 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 +#include #include 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 5987e95282a3..c25b091c6e07 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 +#include #include 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 c8bce1658cbb..8bc4458142be 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 +#include #include 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 3d7c46ad70de..0ef0ca1a81c8 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 +#include #include 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 03d0726229c8..da30edb8827a 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 +#include #include 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 5ab09b5448a5..6c53c046b33b 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 +#include #include 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 c89eba09f087..fd6b3a92dacd 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 +#include #include 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 0d5a7efa12af..b40f0036c1c7 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 +#include #include 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 f2f3f7eec295..b53a9db081cb 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 +#include #include 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 8a962ff5482c..7f7628fa5b9a 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 +#include #include 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 231411d5129b..84fe246122e5 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 +#include #include 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 06a7d0dcb40c..4517c55f28cc 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 +#include #include 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 6a8886186421..d4dd5864bca7 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 +#include #include 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 5e6004233043..aaa4e77618ae 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 +#include #include 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 ad1faf620ccf..55cc05d35142 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 +#include #include 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 1bc1bcc4b778..ca538192dece 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, 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 4ac704793d2a..af0426f7604b 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 +#include #include 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 56e0375d124b..654717fca325 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 +#include #include 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 d84cb1347890..8647bcec6c51 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 +#include #include 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 692caf318c9c..b13fda1a9fff 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 +#include #include 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 2f526e840f32..062f3e562335 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 +#include #include 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 1338df98edaa..8ff2badc1571 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 +#include #include 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 238cfbc9561c..0ed15900273b 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 +#include #include 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 95cd2bcb38ca..812daaa02d1e 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 +#include #include 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 3df16097c711..8f753edafc1c 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 +#include #include 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 d89ddeb26a34..56fdda16b9c3 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 +#include #include 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 6142cf52ae03..7b417325187f 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 +#include #include 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 f8c686f0e032..2b68d9444a53 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 +#include #include 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 2eb8dbc89497..fafcf50cd68e 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 +#include #include 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 f08c7b265912..e5235f278e56 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 +#include #include 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 0262c5c12853..730b8fa898be 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 +#include #include 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 ccc227869f19..7c1eeebbdbaf 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 +#include #include 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 3f45d541a084..dbed82a00138 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 +#include #include 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 192962c49136..66f80924471c 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 +#include #include namespace std diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp b/libstdc++-v3/testsuite/lib/libstdc++.exp index b48fda128627..b482bf58d205 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 3cd7c6177f7f..ca0d716bd189 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 #include #ifndef _TESTSUITE_API