From 1c72f460e9e4fce1220e426989226dfeb0db816e Mon Sep 17 00:00:00 2001 From: Jonathan Wakely <jwakely@redhat.com> Date: Mon, 5 Oct 2020 22:45:27 +0100 Subject: libstdc++: Minor header cleanup in <numeric> When adding new features to <numeric> I included the required headers adjacent to the new code. This cleans it up by moving all the includes to the start of the file. libstdc++-v3/ChangeLog: * include/std/numeric: Move all #include directives to the top of the header. * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error line numbers. * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise. --- libstdc++-v3/include/std/numeric | 39 ++++++++++------------- libstdc++-v3/testsuite/26_numerics/gcd/gcd_neg.cc | 8 ++--- libstdc++-v3/testsuite/26_numerics/lcm/lcm_neg.cc | 8 ++--- 3 files changed, 25 insertions(+), 30 deletions(-) (limited to 'libstdc++-v3') diff --git a/libstdc++-v3/include/std/numeric b/libstdc++-v3/include/std/numeric index 2de6aaf..af1e788 100644 --- a/libstdc++-v3/include/std/numeric +++ b/libstdc++-v3/include/std/numeric @@ -60,12 +60,24 @@ #include <bits/c++config.h> #include <bits/stl_iterator_base_types.h> #include <bits/stl_numeric.h> -#include <ext/numeric_traits.h> #ifdef _GLIBCXX_PARALLEL # include <parallel/numeric> #endif +#if __cplusplus >= 201402L +# include <type_traits> +# include <bit> +#endif + +#if __cplusplus >= 201703L +# include <bits/stl_function.h> +#endif + +#if __cplusplus > 201703L +# include <limits> +#endif + /** * @defgroup numerics Numerics * @@ -74,14 +86,11 @@ * arrays, generalized numeric algorithms, and mathematical special functions. */ -#if __cplusplus >= 201402L -#include <type_traits> -#include <bit> - namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION +#if __cplusplus >= 201402L namespace __detail { // std::abs is not constexpr, doesn't support unsigned integers, @@ -181,18 +190,10 @@ namespace __detail } #endif // C++17 - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace std - #endif // C++14 #if __cplusplus > 201703L -#include <limits> -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION // midpoint # define __cpp_lib_interpolate 201902L @@ -241,17 +242,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION static_assert( sizeof(_Tp) != 0, "type must be complete" ); return __a + (__b - __a) / 2; } -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace std - #endif // C++20 -#if __cplusplus > 201402L -#include <bits/stl_function.h> - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION +#if __cplusplus >= 201703L #if __cplusplus > 201703L #define __cpp_lib_constexpr_numeric 201911L @@ -720,10 +713,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION } // @} group numeric_ops +#endif // C++17 _GLIBCXX_END_NAMESPACE_VERSION } // namespace std +#if __cplusplus >= 201703L // Parallel STL algorithms # if _PSTL_EXECUTION_POLICIES_DEFINED // If <execution> has already been included, pull in implementations diff --git a/libstdc++-v3/testsuite/26_numerics/gcd/gcd_neg.cc b/libstdc++-v3/testsuite/26_numerics/gcd/gcd_neg.cc index fa559b6..4294a2c 100644 --- a/libstdc++-v3/testsuite/26_numerics/gcd/gcd_neg.cc +++ b/libstdc++-v3/testsuite/26_numerics/gcd/gcd_neg.cc @@ -46,9 +46,9 @@ test01() std::gcd<const int&, const int&>(0.1, 0.1); // { dg-error "from here" } } -// { dg-error "must be integers" "" { target *-*-* } 160 } -// { dg-error "must be integers" "" { target *-*-* } 161 } -// { dg-error "must not be bool" "" { target *-*-* } 162 } -// { dg-error "must not be bool" "" { target *-*-* } 163 } +// { dg-error "must be integers" "" { target *-*-* } 169 } +// { dg-error "must be integers" "" { target *-*-* } 170 } +// { dg-error "must not be bool" "" { target *-*-* } 171 } +// { dg-error "must not be bool" "" { target *-*-* } 172 } // { dg-prune-output "deleted function" } // { dg-prune-output "incomplete type .*make_unsigned" } diff --git a/libstdc++-v3/testsuite/26_numerics/lcm/lcm_neg.cc b/libstdc++-v3/testsuite/26_numerics/lcm/lcm_neg.cc index 7e36c26..114995c 100644 --- a/libstdc++-v3/testsuite/26_numerics/lcm/lcm_neg.cc +++ b/libstdc++-v3/testsuite/26_numerics/lcm/lcm_neg.cc @@ -46,9 +46,9 @@ test01() std::lcm<const int&, const int&>(0.1, 0.1); // { dg-error "from here" } } -// { dg-error "must be integers" "" { target *-*-* } 174 } -// { dg-error "must be integers" "" { target *-*-* } 175 } -// { dg-error "must not be bool" "" { target *-*-* } 176 } -// { dg-error "must not be bool" "" { target *-*-* } 177 } +// { dg-error "must be integers" "" { target *-*-* } 183 } +// { dg-error "must be integers" "" { target *-*-* } 184 } +// { dg-error "must not be bool" "" { target *-*-* } 185 } +// { dg-error "must not be bool" "" { target *-*-* } 186 } // { dg-prune-output "deleted function" } // { dg-prune-output "incomplete type .*make_unsigned" } -- cgit v1.1