aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2016-10-13 17:59:19 +0100
committerJonathan Wakely <redi@gcc.gnu.org>2016-10-13 17:59:19 +0100
commitd67dd0be9467f0a2842abf163254abf1c6cabaab (patch)
treef140647350774241339aac4f46131e73a3d45bb8
parent40799fe51fa1fc67d4fad71c335437166234f9fc (diff)
downloadgcc-d67dd0be9467f0a2842abf163254abf1c6cabaab.zip
gcc-d67dd0be9467f0a2842abf163254abf1c6cabaab.tar.gz
gcc-d67dd0be9467f0a2842abf163254abf1c6cabaab.tar.bz2
Avoid #include <functional> in other headers
* include/bits/shared_ptr_base.h: Include <functional>. [!__cpp_rtti]: Do not include <typeinfo>. * include/experimental/array: Do not include <functional>. * include/experimental/memory: Include <bits/functional_hash.h> instead of <functional>. * include/experimental/propagate_const: Include <bits/stl_function.h>, <bits/functional_hash.h>, and <bits/move.h> instead of <functional>. * include/experimental/tuple: Do not include <functional>. * include/std/future: Include <functional>. * include/std/memory: Do not include <functional>. * include/std/mutex: [_GLIBCXX_HAVE_TLS]: Likewise. * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Add missing includes. * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise. * testsuite/20_util/specialized_algorithms/memory_management_tools/ 1.cc: Likewise. * testsuite/30_threads/call_once/60497.cc: Likewise. * testsuite/30_threads/lock/2.cc: Likewise. * testsuite/30_threads/thread/native_handle/cancel.cc: Likewise. * testsuite/experimental/algorithm/sample.cc: Likewise. * testsuite/experimental/array/make_array.cc: Likewise. * testsuite/experimental/array/neg.cc: Likewise. Adjust dg-error line. * testsuite/experimental/propagate_const/assignment/move_neg.cc: Adjust dg-error lines. * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise. * testsuite/experimental/propagate_const/requirements2.cc: Likewise. * testsuite/experimental/propagate_const/requirements3.cc: Likewise. * testsuite/experimental/propagate_const/requirements4.cc: Likewise. * testsuite/experimental/propagate_const/requirements5.cc: Likewise. From-SVN: r241131
-rw-r--r--libstdc++-v3/ChangeLog30
-rw-r--r--libstdc++-v3/include/bits/shared_ptr_base.h5
-rw-r--r--libstdc++-v3/include/experimental/array1
-rw-r--r--libstdc++-v3/include/experimental/memory2
-rw-r--r--libstdc++-v3/include/experimental/propagate_const4
-rw-r--r--libstdc++-v3/include/experimental/tuple1
-rw-r--r--libstdc++-v3/include/std/future1
-rw-r--r--libstdc++-v3/include/std/memory1
-rw-r--r--libstdc++-v3/include/std/mutex4
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc1
-rw-r--r--libstdc++-v3/testsuite/30_threads/call_once/60497.cc1
-rw-r--r--libstdc++-v3/testsuite/30_threads/lock/2.cc1
-rw-r--r--libstdc++-v3/testsuite/30_threads/thread/native_handle/cancel.cc1
-rw-r--r--libstdc++-v3/testsuite/experimental/algorithm/sample.cc1
-rw-r--r--libstdc++-v3/testsuite/experimental/array/make_array.cc1
-rw-r--r--libstdc++-v3/testsuite/experimental/array/neg.cc3
-rw-r--r--libstdc++-v3/testsuite/experimental/propagate_const/assignment/move_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/experimental/propagate_const/cons/move_neg.cc8
-rw-r--r--libstdc++-v3/testsuite/experimental/propagate_const/requirements2.cc8
-rw-r--r--libstdc++-v3/testsuite/experimental/propagate_const/requirements3.cc2
-rw-r--r--libstdc++-v3/testsuite/experimental/propagate_const/requirements4.cc6
-rw-r--r--libstdc++-v3/testsuite/experimental/propagate_const/requirements5.cc2
24 files changed, 66 insertions, 22 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index f179fc9..c421111 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,35 @@
2016-10-13 Jonathan Wakely <jwakely@redhat.com>
+ * include/bits/shared_ptr_base.h: Include <functional>.
+ [!__cpp_rtti]: Do not include <typeinfo>.
+ * include/experimental/array: Do not include <functional>.
+ * include/experimental/memory: Include <bits/functional_hash.h>
+ instead of <functional>.
+ * include/experimental/propagate_const: Include <bits/stl_function.h>,
+ <bits/functional_hash.h>, and <bits/move.h> instead of <functional>.
+ * include/experimental/tuple: Do not include <functional>.
+ * include/std/future: Include <functional>.
+ * include/std/memory: Do not include <functional>.
+ * include/std/mutex: [_GLIBCXX_HAVE_TLS]: Likewise.
+ * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Add
+ missing includes.
+ * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
+ * testsuite/20_util/specialized_algorithms/memory_management_tools/
+ 1.cc: Likewise.
+ * testsuite/30_threads/call_once/60497.cc: Likewise.
+ * testsuite/30_threads/lock/2.cc: Likewise.
+ * testsuite/30_threads/thread/native_handle/cancel.cc: Likewise.
+ * testsuite/experimental/algorithm/sample.cc: Likewise.
+ * testsuite/experimental/array/make_array.cc: Likewise.
+ * testsuite/experimental/array/neg.cc: Likewise. Adjust dg-error line.
+ * testsuite/experimental/propagate_const/assignment/move_neg.cc:
+ Adjust dg-error lines.
+ * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
+ * testsuite/experimental/propagate_const/requirements2.cc: Likewise.
+ * testsuite/experimental/propagate_const/requirements3.cc: Likewise.
+ * testsuite/experimental/propagate_const/requirements4.cc: Likewise.
+ * testsuite/experimental/propagate_const/requirements5.cc: Likewise.
+
* testsuite/experimental/algorithm/sample.cc: Add missing header.
* include/experimental/propagate_const (element_type): Qualify
diff --git a/libstdc++-v3/include/bits/shared_ptr_base.h b/libstdc++-v3/include/bits/shared_ptr_base.h
index e8820a1..422e3b5 100644
--- a/libstdc++-v3/include/bits/shared_ptr_base.h
+++ b/libstdc++-v3/include/bits/shared_ptr_base.h
@@ -49,7 +49,10 @@
#ifndef _SHARED_PTR_BASE_H
#define _SHARED_PTR_BASE_H 1
-#include <typeinfo>
+#include <functional>
+#if __cpp_rtti
+# include <typeinfo>
+#endif
#include <bits/allocated_ptr.h>
#include <ext/aligned_buffer.h>
diff --git a/libstdc++-v3/include/experimental/array b/libstdc++-v3/include/experimental/array
index 31a066b..34d75cc 100644
--- a/libstdc++-v3/include/experimental/array
+++ b/libstdc++-v3/include/experimental/array
@@ -36,7 +36,6 @@
#else
#include <array>
-#include <functional>
#include <experimental/type_traits>
namespace std _GLIBCXX_VISIBILITY(default)
diff --git a/libstdc++-v3/include/experimental/memory b/libstdc++-v3/include/experimental/memory
index 885d11c..81def24 100644
--- a/libstdc++-v3/include/experimental/memory
+++ b/libstdc++-v3/include/experimental/memory
@@ -42,8 +42,8 @@
#include <memory>
#include <type_traits>
#include <utility>
-#include <functional>
#include <experimental/bits/shared_ptr.h>
+#include <bits/functional_hash.h>
namespace std _GLIBCXX_VISIBILITY(default)
{
diff --git a/libstdc++-v3/include/experimental/propagate_const b/libstdc++-v3/include/experimental/propagate_const
index e1fb4e4..5f32111 100644
--- a/libstdc++-v3/include/experimental/propagate_const
+++ b/libstdc++-v3/include/experimental/propagate_const
@@ -36,7 +36,9 @@
#else
#include <type_traits>
-#include <functional>
+#include <bits/functional_hash.h>
+#include <bits/move.h>
+#include <bits/stl_function.h>
#include <experimental/bits/lfts_config.h>
namespace std _GLIBCXX_VISIBILITY(default)
diff --git a/libstdc++-v3/include/experimental/tuple b/libstdc++-v3/include/experimental/tuple
index dc158e8..e83a0ed 100644
--- a/libstdc++-v3/include/experimental/tuple
+++ b/libstdc++-v3/include/experimental/tuple
@@ -36,7 +36,6 @@
#else
#include <tuple>
-#include <functional>
#include <bits/invoke.h>
#include <experimental/bits/lfts_config.h>
diff --git a/libstdc++-v3/include/std/future b/libstdc++-v3/include/std/future
index fffbdbb..31a21f9 100644
--- a/libstdc++-v3/include/std/future
+++ b/libstdc++-v3/include/std/future
@@ -40,6 +40,7 @@
#include <condition_variable>
#include <system_error>
#include <atomic>
+#include <functional>
#include <bits/atomic_futex.h>
#include <bits/functexcept.h>
#include <bits/invoke.h>
diff --git a/libstdc++-v3/include/std/memory b/libstdc++-v3/include/std/memory
index beee91a..0f6d8bc 100644
--- a/libstdc++-v3/include/std/memory
+++ b/libstdc++-v3/include/std/memory
@@ -76,7 +76,6 @@
# include <bits/stl_function.h> // std::less
# include <bits/uses_allocator.h>
# include <type_traits>
-# include <functional>
# include <debug/debug.h>
# include <bits/unique_ptr.h>
# include <bits/shared_ptr.h>
diff --git a/libstdc++-v3/include/std/mutex b/libstdc++-v3/include/std/mutex
index e90006f..0e1bc7f 100644
--- a/libstdc++-v3/include/std/mutex
+++ b/libstdc++-v3/include/std/mutex
@@ -39,13 +39,15 @@
#include <chrono>
#include <exception>
#include <type_traits>
-#include <functional>
#include <system_error>
#include <bits/std_mutex.h>
#if ! _GTHREAD_USE_MUTEX_TIMEDLOCK
# include <condition_variable>
# include <thread>
#endif
+#ifndef _GLIBCXX_HAVE_TLS
+# include <functional>
+#endif
#ifdef _GLIBCXX_USE_C99_STDINT_TR1
diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc
index 5014898..e78093f 100644
--- a/libstdc++-v3/testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc
+++ b/libstdc++-v3/testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc
@@ -28,6 +28,7 @@
#include <cstdlib>
#include <thread>
#include <atomic>
+#include <functional>
#include <testsuite_hooks.h>
#ifdef _GLIBCXX_HAVE_UNISTD_H
diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc
index eaa72c4..96a5cf8 100644
--- a/libstdc++-v3/testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc
+++ b/libstdc++-v3/testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc
@@ -28,6 +28,7 @@
#include <cstdlib>
#include <thread>
#include <atomic>
+#include <functional>
#include <testsuite_hooks.h>
#ifdef _GLIBCXX_HAVE_UNISTD_H
diff --git a/libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc b/libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc
index a86e61a..a847767 100644
--- a/libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc
+++ b/libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc
@@ -21,6 +21,7 @@
#include <testsuite_hooks.h>
#include <string>
#include <array>
+#include <vector>
#include <sstream>
int del_count = 0;
diff --git a/libstdc++-v3/testsuite/30_threads/call_once/60497.cc b/libstdc++-v3/testsuite/30_threads/call_once/60497.cc
index 43dc917..a9e6449 100644
--- a/libstdc++-v3/testsuite/30_threads/call_once/60497.cc
+++ b/libstdc++-v3/testsuite/30_threads/call_once/60497.cc
@@ -25,6 +25,7 @@
#include <mutex>
#include <memory>
+#include <functional>
struct A;
template<typename T> struct B { T t; };
diff --git a/libstdc++-v3/testsuite/30_threads/lock/2.cc b/libstdc++-v3/testsuite/30_threads/lock/2.cc
index d3692a0..c17442081 100644
--- a/libstdc++-v3/testsuite/30_threads/lock/2.cc
+++ b/libstdc++-v3/testsuite/30_threads/lock/2.cc
@@ -24,6 +24,7 @@
#include <mutex>
#include <thread>
+#include <functional>
#include <testsuite_hooks.h>
void locker(std::mutex& m1, std::mutex& m2, std::mutex& m3)
diff --git a/libstdc++-v3/testsuite/30_threads/thread/native_handle/cancel.cc b/libstdc++-v3/testsuite/30_threads/thread/native_handle/cancel.cc
index 9b5417c..db04b05 100644
--- a/libstdc++-v3/testsuite/30_threads/thread/native_handle/cancel.cc
+++ b/libstdc++-v3/testsuite/30_threads/thread/native_handle/cancel.cc
@@ -24,6 +24,7 @@
#include <pthread.h>
#include <thread>
#include <atomic>
+#include <functional>
void f(std::atomic<bool>& started)
{
diff --git a/libstdc++-v3/testsuite/experimental/algorithm/sample.cc b/libstdc++-v3/testsuite/experimental/algorithm/sample.cc
index 0d84e9d..16e6a74 100644
--- a/libstdc++-v3/testsuite/experimental/algorithm/sample.cc
+++ b/libstdc++-v3/testsuite/experimental/algorithm/sample.cc
@@ -23,6 +23,7 @@
#include <forward_list>
#include <vector>
#include <random>
+#include <algorithm>
#include <testsuite_hooks.h>
std::mt19937 rng;
diff --git a/libstdc++-v3/testsuite/experimental/array/make_array.cc b/libstdc++-v3/testsuite/experimental/array/make_array.cc
index 56611df..e91a5d8 100644
--- a/libstdc++-v3/testsuite/experimental/array/make_array.cc
+++ b/libstdc++-v3/testsuite/experimental/array/make_array.cc
@@ -18,6 +18,7 @@
// <http://www.gnu.org/licenses/>.
#include <experimental/array>
+#include <functional>
struct MoveOnly
{
diff --git a/libstdc++-v3/testsuite/experimental/array/neg.cc b/libstdc++-v3/testsuite/experimental/array/neg.cc
index e91a5c5..cd08657 100644
--- a/libstdc++-v3/testsuite/experimental/array/neg.cc
+++ b/libstdc++-v3/testsuite/experimental/array/neg.cc
@@ -18,10 +18,11 @@
// <http://www.gnu.org/licenses/>.
#include <experimental/array>
+#include <functional>
int main()
{
int dummy;
auto bad = std::experimental::make_array(std::ref(dummy));
- // { dg-error "make_array cannot be used without an explicit target type if any of the types given is a reference_wrapper" "" { target *-*-* } 77 }
+ // { dg-error "make_array cannot be used without an explicit target type if any of the types given is a reference_wrapper" "" { target *-*-* } 76 }
}
diff --git a/libstdc++-v3/testsuite/experimental/propagate_const/assignment/move_neg.cc b/libstdc++-v3/testsuite/experimental/propagate_const/assignment/move_neg.cc
index 1b0366d..6dc0e2e 100644
--- a/libstdc++-v3/testsuite/experimental/propagate_const/assignment/move_neg.cc
+++ b/libstdc++-v3/testsuite/experimental/propagate_const/assignment/move_neg.cc
@@ -25,7 +25,7 @@
using std::experimental::propagate_const;
using std::unique_ptr;
-// { dg-error "no type" "" { target *-*-* } 159 }
+// { dg-error "no type" "" { target *-*-* } 161 }
int main()
{
diff --git a/libstdc++-v3/testsuite/experimental/propagate_const/cons/move_neg.cc b/libstdc++-v3/testsuite/experimental/propagate_const/cons/move_neg.cc
index ffdc756..abfc62d 100644
--- a/libstdc++-v3/testsuite/experimental/propagate_const/cons/move_neg.cc
+++ b/libstdc++-v3/testsuite/experimental/propagate_const/cons/move_neg.cc
@@ -25,10 +25,10 @@
using std::experimental::propagate_const;
using std::unique_ptr;
-// { dg-error "no type" "" { target *-*-* } 118 }
-// { dg-error "no type" "" { target *-*-* } 125 }
-// { dg-error "no type" "" { target *-*-* } 134 }
-// { dg-error "no type" "" { target *-*-* } 143 }
+// { dg-error "no type" "" { target *-*-* } 120 }
+// { dg-error "no type" "" { target *-*-* } 127 }
+// { dg-error "no type" "" { target *-*-* } 136 }
+// { dg-error "no type" "" { target *-*-* } 145 }
int main()
{
diff --git a/libstdc++-v3/testsuite/experimental/propagate_const/requirements2.cc b/libstdc++-v3/testsuite/experimental/propagate_const/requirements2.cc
index de2d293..5f46dc4 100644
--- a/libstdc++-v3/testsuite/experimental/propagate_const/requirements2.cc
+++ b/libstdc++-v3/testsuite/experimental/propagate_const/requirements2.cc
@@ -21,9 +21,9 @@
using std::experimental::propagate_const;
-// { dg-error "requires a class or a pointer to an object type" "" { target *-*-* } 105 }
-// { dg-error "not a pointer-to-object type" "" { target *-*-* } 66 }
-// { dg-error "forming pointer to reference type" "" { target *-*-* } 185 }
-// { dg-error "forming pointer to reference type" "" { target *-*-* } 211 }
+// { dg-error "requires a class or a pointer to an object type" "" { target *-*-* } 107 }
+// { dg-error "not a pointer-to-object type" "" { target *-*-* } 68 }
+// { dg-error "forming pointer to reference type" "" { target *-*-* } 187 }
+// { dg-error "forming pointer to reference type" "" { target *-*-* } 213 }
propagate_const<void*> test1;
diff --git a/libstdc++-v3/testsuite/experimental/propagate_const/requirements3.cc b/libstdc++-v3/testsuite/experimental/propagate_const/requirements3.cc
index fd25204..abc4839 100644
--- a/libstdc++-v3/testsuite/experimental/propagate_const/requirements3.cc
+++ b/libstdc++-v3/testsuite/experimental/propagate_const/requirements3.cc
@@ -21,6 +21,6 @@
using std::experimental::propagate_const;
-// { dg-error "requires a class or a pointer to an object type" "" { target *-*-* } 105 }
+// { dg-error "requires a class or a pointer to an object type" "" { target *-*-* } 107 }
propagate_const<void (*)()> test1;
diff --git a/libstdc++-v3/testsuite/experimental/propagate_const/requirements4.cc b/libstdc++-v3/testsuite/experimental/propagate_const/requirements4.cc
index 3cea93d..1c3c653 100644
--- a/libstdc++-v3/testsuite/experimental/propagate_const/requirements4.cc
+++ b/libstdc++-v3/testsuite/experimental/propagate_const/requirements4.cc
@@ -21,8 +21,8 @@
using std::experimental::propagate_const;
-// { dg-error "requires a class or a pointer to an object type" "" { target *-*-* } 105 }
-// { dg-error "invalid type" "" { target *-*-* } 66 }
-// { dg-error "uninitialized reference member" "" { target *-*-* } 112 }
+// { dg-error "requires a class or a pointer to an object type" "" { target *-*-* } 107 }
+// { dg-error "invalid type" "" { target *-*-* } 68 }
+// { dg-error "uninitialized reference member" "" { target *-*-* } 114 }
propagate_const<int&> test1; // { dg-error "use of deleted function" }
diff --git a/libstdc++-v3/testsuite/experimental/propagate_const/requirements5.cc b/libstdc++-v3/testsuite/experimental/propagate_const/requirements5.cc
index 9740fc3..72844fa 100644
--- a/libstdc++-v3/testsuite/experimental/propagate_const/requirements5.cc
+++ b/libstdc++-v3/testsuite/experimental/propagate_const/requirements5.cc
@@ -21,6 +21,6 @@
using std::experimental::propagate_const;
-// { dg-error "requires a class or a pointer to an object type" "" { target *-*-* } 105 }
+// { dg-error "requires a class or a pointer to an object type" "" { target *-*-* } 107 }
propagate_const<int[1]> test1;