Fix incorrect __cpp_lib_parallel_algorithm macro definitions

* include/std/algorithm (__cpp_lib_parallel_algorithm): Fix value.
	* include/std/memory (__cpp_lib_parallel_algorithm): Likewise.
	* include/std/numeric (__cpp_lib_parallel_algorithm): Likewise.
	* testsuite/25_algorithms/pstl/feature_test.cc: New test.

From-SVN: r272216
This commit is contained in:
Jonathan Wakely 2019-06-12 21:16:03 +01:00 committed by Jonathan Wakely
parent 1ab4217d81
commit 95b3d0fda3
5 changed files with 58 additions and 3 deletions

View File

@ -1,5 +1,10 @@
2019-06-12 Jonathan Wakely <jwakely@redhat.com>
* include/std/algorithm (__cpp_lib_parallel_algorithm): Fix value.
* include/std/memory (__cpp_lib_parallel_algorithm): Likewise.
* include/std/numeric (__cpp_lib_parallel_algorithm): Likewise.
* testsuite/25_algorithms/pstl/feature_test.cc: New test.
* include/std/variant (get<T>, get<N>, get_if<N>, get_if<T>)
(variant::emplace): Change static_assert messages from "should be"
to "must be".

View File

@ -73,7 +73,7 @@
# endif
// Feature test macro for parallel algorithms
# define __cpp_lib_parallel_algorithm 201703L
# define __cpp_lib_parallel_algorithm 201603L
#endif // C++17
#ifdef _GLIBCXX_PARALLEL

View File

@ -407,7 +407,7 @@ _GLIBCXX_END_NAMESPACE_VERSION
# endif
// Feature test macro for parallel algorithms
# define __cpp_lib_parallel_algorithm 201703L
# define __cpp_lib_parallel_algorithm 201603L
#endif // C++17
#endif /* _GLIBCXX_MEMORY */

View File

@ -216,7 +216,7 @@ _GLIBCXX_END_NAMESPACE_VERSION
# endif
// Feature test macro for parallel algorithms
# define __cpp_lib_parallel_algorithm 201703L
# define __cpp_lib_parallel_algorithm 201603L
#endif // C++17
#endif /* _GLIBCXX_NUMERIC */

View File

@ -0,0 +1,50 @@
// Copyright (C) 2019 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
// { dg-options "-std=gnu++17" }
// { dg-do preprocess { target c++17 } }
#include <algorithm>
#ifndef __cpp_lib_parallel_algorithm
# error "Feature-test macro for parallel algorithms missing"
#elif __cpp_lib_parallel_algorithm != 201603L
# error "Feature-test macro for parallel algorithms has wrong value in <algorithm>"
#endif
#include <numeric>
#if __cpp_lib_parallel_algorithm != 201603L
# error "Feature-test macro for parallel algorithms has wrong value in <numeric>"
#endif
#include <version>
#if __cpp_lib_parallel_algorithm != 201603L
# error "Feature-test macro for parallel algorithms has wrong value in <version>"
#endif
// The N4810 draft does not require the macro to be defined in <execution>.
#include <memory>
#if __cpp_lib_parallel_algorithm != 201603L
# error "Feature-test macro for parallel algorithms has wrong value in <memory>"
#endif
// The N4810 draft does not require the macro to be defined in <execution>.
// Include this last, because it will trigger the inclusion of TBB headers,
// which then include <memory>, so we need to have already checked <memory>.
#include <execution>
#if __cpp_lib_parallel_algorithm != 201603L
# error "Feature-test macro for parallel algorithms has wrong value in <execution>"
#endif