[libcxx] r342073 - Implement the infrastructure for feature-test macros. Very few actual feature test macros, though. Reviewed as: https://reviews.llvm.org/D51955
Christof Douma via cfe-commits
cfe-commits at lists.llvm.org
Tue Oct 2 10:33:36 PDT 2018
Hi Marshall.
I think that this patch breaks backwards compatibility. Assumes that the header file "version" is used by C++ projects that use a C++ standard that did not specify a 'version' header. Many toolchains will put search paths specified with -I in front of the system search path. The result is that the application header file is included whenever a standard header file is included. That is unexpected and can break builds.
Do you agree this is an issue or do you consider this an issue with the way toolchains handle include search paths?
Thanks,
Christof
On 12/09/2018, 20:42, "cfe-commits on behalf of Marshall Clow via cfe-commits" <cfe-commits-bounces at lists.llvm.org on behalf of cfe-commits at lists.llvm.org> wrote:
Author: marshall
Date: Wed Sep 12 12:41:40 2018
New Revision: 342073
URL: http://llvm.org/viewvc/llvm-project?rev=342073&view=rev
Log:
Implement the infrastructure for feature-test macros. Very few actual feature test macros, though. Reviewed as: https://reviews.llvm.org/D51955
Added:
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/algorithm.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/any.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/array.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/atomic.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/bit.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/chrono.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/cmath.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/complex.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/concepts.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/cstddef.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/deque.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/exception.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/execution.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/filesystem.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/forward_list.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/functional.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/iomanip.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/iterator.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/list.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/map.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/memory.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/memory_resource.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/mutex.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/new.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/numeric.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/optional.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/regex.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/scoped_allocator.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/set.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/shared_mutex.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/string.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/string_view.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/tuple.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/type_traits.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/unordered_map.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/unordered_set.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/utility.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/variant.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/vector.version.pass.cpp
libcxx/trunk/test/std/language.support/support.limits/support.limits.general/version.version.pass.cpp
Modified:
libcxx/trunk/include/algorithm
libcxx/trunk/include/any
libcxx/trunk/include/array
libcxx/trunk/include/atomic
libcxx/trunk/include/bit
libcxx/trunk/include/chrono
libcxx/trunk/include/cmath
libcxx/trunk/include/complex
libcxx/trunk/include/cstddef
libcxx/trunk/include/deque
libcxx/trunk/include/exception
libcxx/trunk/include/filesystem
libcxx/trunk/include/forward_list
libcxx/trunk/include/functional
libcxx/trunk/include/iomanip
libcxx/trunk/include/iterator
libcxx/trunk/include/list
libcxx/trunk/include/map
libcxx/trunk/include/memory
libcxx/trunk/include/mutex
libcxx/trunk/include/new
libcxx/trunk/include/numeric
libcxx/trunk/include/optional
libcxx/trunk/include/regex
libcxx/trunk/include/scoped_allocator
libcxx/trunk/include/set
libcxx/trunk/include/shared_mutex
libcxx/trunk/include/string
libcxx/trunk/include/string_view
libcxx/trunk/include/tuple
libcxx/trunk/include/type_traits
libcxx/trunk/include/unordered_map
libcxx/trunk/include/unordered_set
libcxx/trunk/include/utility
libcxx/trunk/include/variant
libcxx/trunk/include/vector
libcxx/trunk/include/version
Modified: libcxx/trunk/include/algorithm
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/algorithm?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/algorithm (original)
+++ libcxx/trunk/include/algorithm Wed Sep 12 12:41:40 2018
@@ -646,6 +646,7 @@ template <class BidirectionalIterator, c
#include <iterator>
#include <cstddef>
#include <bit>
+#include <version>
#include <__debug>
Modified: libcxx/trunk/include/any
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/any?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/any (original)
+++ libcxx/trunk/include/any Wed Sep 12 12:41:40 2018
@@ -87,6 +87,7 @@ namespace std {
#include <typeinfo>
#include <type_traits>
#include <cstdlib>
+#include <version>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
Modified: libcxx/trunk/include/array
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/array?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/array (original)
+++ libcxx/trunk/include/array Wed Sep 12 12:41:40 2018
@@ -112,6 +112,7 @@ template <size_t I, class T, size_t N> c
#include <algorithm>
#include <stdexcept>
#include <cstdlib> // for _LIBCPP_UNREACHABLE
+#include <version>
#include <__debug>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
Modified: libcxx/trunk/include/atomic
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/atomic?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/atomic (original)
+++ libcxx/trunk/include/atomic Wed Sep 12 12:41:40 2018
@@ -544,6 +544,7 @@ void atomic_signal_fence(memory_order m)
#include <cstddef>
#include <cstdint>
#include <type_traits>
+#include <version>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
@@ -559,10 +560,6 @@ void atomic_signal_fence(memory_order m)
#error C++ standard library is incompatible with <stdatomic.h>
#endif
-#if _LIBCPP_STD_VER > 14
-# define __cpp_lib_atomic_is_always_lock_free 201603L
-#endif
-
#define _LIBCPP_CHECK_STORE_MEMORY_ORDER(__m) \
_LIBCPP_DIAGNOSE_WARNING(__m == memory_order_consume || \
__m == memory_order_acquire || \
Modified: libcxx/trunk/include/bit
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/bit?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/bit (original)
+++ libcxx/trunk/include/bit Wed Sep 12 12:41:40 2018
@@ -21,6 +21,7 @@ namespace std {
*/
#include <__config>
+#include <version>
#if defined(__IBMCPP__)
#include "support/ibm/support.h"
Modified: libcxx/trunk/include/chrono
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/chrono?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/chrono (original)
+++ libcxx/trunk/include/chrono Wed Sep 12 12:41:40 2018
@@ -798,6 +798,7 @@ constexpr chrono::year
#include <type_traits>
#include <ratio>
#include <limits>
+#include <version>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
Modified: libcxx/trunk/include/cmath
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/cmath?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/cmath (original)
+++ libcxx/trunk/include/cmath Wed Sep 12 12:41:40 2018
@@ -303,6 +303,7 @@ long double truncl(long double x);
#include <__config>
#include <math.h>
+#include <version>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
Modified: libcxx/trunk/include/complex
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/complex?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/complex (original)
+++ libcxx/trunk/include/complex Wed Sep 12 12:41:40 2018
@@ -245,6 +245,7 @@ template<class T, class charT, class tra
#include <stdexcept>
#include <cmath>
#include <sstream>
+#include <version>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
Modified: libcxx/trunk/include/cstddef
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/cstddef?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/cstddef (original)
+++ libcxx/trunk/include/cstddef Wed Sep 12 12:41:40 2018
@@ -35,6 +35,7 @@ Types:
*/
#include <__config>
+#include <version>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
Modified: libcxx/trunk/include/deque
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/deque?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/deque (original)
+++ libcxx/trunk/include/deque Wed Sep 12 12:41:40 2018
@@ -161,6 +161,7 @@ template <class T, class Allocator>
#include <iterator>
#include <algorithm>
#include <stdexcept>
+#include <version>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
Modified: libcxx/trunk/include/exception
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/exception?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/exception (original)
+++ libcxx/trunk/include/exception Wed Sep 12 12:41:40 2018
@@ -81,6 +81,7 @@ template <class E> void rethrow_if_neste
#include <cstddef>
#include <cstdlib>
#include <type_traits>
+#include <version>
#if defined(_LIBCPP_ABI_MICROSOFT) && !defined(_LIBCPP_NO_VCRUNTIME)
#include <vcruntime_exception.h>
Modified: libcxx/trunk/include/filesystem
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/filesystem?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/filesystem (original)
+++ libcxx/trunk/include/filesystem Wed Sep 12 12:41:40 2018
@@ -244,6 +244,7 @@
#include <utility>
#include <iomanip> // for quoted
#include <string_view>
+#include <version>
#include <__debug>
@@ -256,10 +257,6 @@ _LIBCPP_PUSH_MACROS
#ifndef _LIBCPP_CXX03_LANG
-#if _LIBCPP_STD_VER >= 17
-#define __cpp_lib_filesystem 201703
-#endif
-
_LIBCPP_BEGIN_NAMESPACE_FILESYSTEM
struct _FilesystemClock {
Modified: libcxx/trunk/include/forward_list
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/forward_list?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/forward_list (original)
+++ libcxx/trunk/include/forward_list Wed Sep 12 12:41:40 2018
@@ -177,6 +177,7 @@ template <class T, class Allocator>
#include <limits>
#include <iterator>
#include <algorithm>
+#include <version>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
Modified: libcxx/trunk/include/functional
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/functional?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/functional (original)
+++ libcxx/trunk/include/functional Wed Sep 12 12:41:40 2018
@@ -487,6 +487,7 @@ POLICY: For non-variadic implementation
#include <memory>
#include <tuple>
#include <utility>
+#include <version>
#include <__functional_base>
@@ -2340,8 +2341,6 @@ bind(_Fp&& __f, _BoundArgs&&... __bound_
#if _LIBCPP_STD_VER > 14
-#define __cpp_lib_invoke 201411
-
template <class _Fn, class ..._Args>
result_of_t<_Fn&&(_Args&&...)>
invoke(_Fn&& __f, _Args&&... __args)
Modified: libcxx/trunk/include/iomanip
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/iomanip?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/iomanip (original)
+++ libcxx/trunk/include/iomanip Wed Sep 12 12:41:40 2018
@@ -46,6 +46,7 @@ template <class charT, class traits, cla
#include <__config>
#include <__string>
#include <istream>
+#include <version>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
Modified: libcxx/trunk/include/iterator
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/iterator?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/iterator (original)
+++ libcxx/trunk/include/iterator Wed Sep 12 12:41:40 2018
@@ -418,6 +418,7 @@ template <class E> constexpr const E* da
#include <type_traits>
#include <cstddef>
#include <initializer_list>
+#include <version>
#ifdef __APPLE__
#include <Availability.h>
#endif
Modified: libcxx/trunk/include/list
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/list?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/list (original)
+++ libcxx/trunk/include/list Wed Sep 12 12:41:40 2018
@@ -181,6 +181,7 @@ template <class T, class Alloc>
#include <iterator>
#include <algorithm>
#include <type_traits>
+#include <version>
#include <__debug>
Modified: libcxx/trunk/include/map
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/map?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/map (original)
+++ libcxx/trunk/include/map Wed Sep 12 12:41:40 2018
@@ -460,6 +460,7 @@ swap(multimap<Key, T, Compare, Allocator
#include <functional>
#include <initializer_list>
#include <type_traits>
+#include <version>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
Modified: libcxx/trunk/include/memory
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/memory?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/memory (original)
+++ libcxx/trunk/include/memory Wed Sep 12 12:41:40 2018
@@ -667,6 +667,7 @@ void* align(size_t alignment, size_t siz
#if !defined(_LIBCPP_HAS_NO_ATOMIC_HEADER)
# include <atomic>
#endif
+#include <version>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
Modified: libcxx/trunk/include/mutex
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/mutex?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/mutex (original)
+++ libcxx/trunk/include/mutex Wed Sep 12 12:41:40 2018
@@ -194,6 +194,7 @@ template<class Callable, class ...Args>
#ifndef _LIBCPP_CXX03_LANG
#include <tuple>
#endif
+#include <version>
#include <__threading_support>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
Modified: libcxx/trunk/include/new
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/new?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/new (original)
+++ libcxx/trunk/include/new Wed Sep 12 12:41:40 2018
@@ -91,6 +91,7 @@ void operator delete[](void* ptr, void*
#include <exception>
#include <type_traits>
#include <cstddef>
+#include <version>
#ifdef _LIBCPP_NO_EXCEPTIONS
#include <cstdlib>
#endif
Modified: libcxx/trunk/include/numeric
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/numeric?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/numeric (original)
+++ libcxx/trunk/include/numeric Wed Sep 12 12:41:40 2018
@@ -142,6 +142,7 @@ template <class M, class N>
#include <iterator>
#include <limits> // for numeric_limits
#include <functional>
+#include <version>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
Modified: libcxx/trunk/include/optional
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/optional?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/optional (original)
+++ libcxx/trunk/include/optional Wed Sep 12 12:41:40 2018
@@ -156,6 +156,7 @@ template<class T>
#include <stdexcept>
#include <type_traits>
#include <utility>
+#include <version>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
Modified: libcxx/trunk/include/regex
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/regex?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/regex (original)
+++ libcxx/trunk/include/regex Wed Sep 12 12:41:40 2018
@@ -769,6 +769,7 @@ typedef regex_token_iterator<wstring::co
#include <memory>
#include <vector>
#include <deque>
+#include <version>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
Modified: libcxx/trunk/include/scoped_allocator
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/scoped_allocator?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/scoped_allocator (original)
+++ libcxx/trunk/include/scoped_allocator Wed Sep 12 12:41:40 2018
@@ -108,6 +108,7 @@ template <class OuterA1, class OuterA2,
#include <__config>
#include <memory>
+#include <version>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
Modified: libcxx/trunk/include/set
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/set?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/set (original)
+++ libcxx/trunk/include/set Wed Sep 12 12:41:40 2018
@@ -402,6 +402,7 @@ swap(multiset<Key, Compare, Allocator>&
#include <__tree>
#include <__node_handle>
#include <functional>
+#include <version>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
Modified: libcxx/trunk/include/shared_mutex
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/shared_mutex?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/shared_mutex (original)
+++ libcxx/trunk/include/shared_mutex Wed Sep 12 12:41:40 2018
@@ -124,6 +124,7 @@ template <class Mutex>
*/
#include <__config>
+#include <version>
_LIBCPP_PUSH_MACROS
#include <__undef_macros>
Modified: libcxx/trunk/include/string
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/string?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/string (original)
+++ libcxx/trunk/include/string Wed Sep 12 12:41:40 2018
@@ -510,6 +510,7 @@ basic_string<char32_t> operator "" s( co
#include <type_traits>
#include <initializer_list>
#include <__functional_base>
+#include <version>
#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
#include <cstdint>
#endif
Modified: libcxx/trunk/include/string_view
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/string_view?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/string_view (original)
+++ libcxx/trunk/include/string_view Wed Sep 12 12:41:40 2018
@@ -178,6 +178,7 @@ namespace std {
#include <iterator>
#include <limits>
#include <stdexcept>
+#include <version>
#include <__debug>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
Modified: libcxx/trunk/include/tuple
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/tuple?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/tuple (original)
+++ libcxx/trunk/include/tuple Wed Sep 12 12:41:40 2018
@@ -141,6 +141,7 @@ template <class... Types>
#include <type_traits>
#include <__functional_base>
#include <utility>
+#include <version>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
Modified: libcxx/trunk/include/type_traits
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/type_traits?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/type_traits (original)
+++ libcxx/trunk/include/type_traits Wed Sep 12 12:41:40 2018
@@ -404,6 +404,7 @@ namespace std
*/
#include <__config>
#include <cstddef>
+#include <version>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
@@ -4758,7 +4759,6 @@ struct __has_operator_addressof
#if _LIBCPP_STD_VER > 14
-#define __cpp_lib_void_t 201411
template <class...> using void_t = void;
# ifndef _LIBCPP_HAS_NO_VARIADICS
Modified: libcxx/trunk/include/unordered_map
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/unordered_map?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/unordered_map (original)
+++ libcxx/trunk/include/unordered_map Wed Sep 12 12:41:40 2018
@@ -386,6 +386,7 @@ template <class Key, class T, class Hash
#include <functional>
#include <stdexcept>
#include <tuple>
+#include <version>
#include <__debug>
Modified: libcxx/trunk/include/unordered_set
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/unordered_set?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/unordered_set (original)
+++ libcxx/trunk/include/unordered_set Wed Sep 12 12:41:40 2018
@@ -338,6 +338,7 @@ template <class Value, class Hash, class
#include <__hash_table>
#include <__node_handle>
#include <functional>
+#include <version>
#include <__debug>
Modified: libcxx/trunk/include/utility
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/utility?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/utility (original)
+++ libcxx/trunk/include/utility Wed Sep 12 12:41:40 2018
@@ -203,6 +203,7 @@ template <size_t I>
#include <cstddef>
#include <cstring>
#include <cstdint>
+#include <version>
#include <__debug>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
Modified: libcxx/trunk/include/variant
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/variant?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/variant (original)
+++ libcxx/trunk/include/variant Wed Sep 12 12:41:40 2018
@@ -208,6 +208,7 @@ namespace std {
#include <type_traits>
#include <utility>
#include <limits>
+#include <version>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
Modified: libcxx/trunk/include/vector
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/vector?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/vector (original)
+++ libcxx/trunk/include/vector Wed Sep 12 12:41:40 2018
@@ -276,6 +276,7 @@ void swap(vector<T,Allocator>& x, vector
#include <stdexcept>
#include <algorithm>
#include <cstring>
+#include <version>
#include <__split_buffer>
#include <__functional_base>
Modified: libcxx/trunk/include/version
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/version?rev=342073&r1=342072&r2=342073&view=diff
==============================================================================
--- libcxx/trunk/include/version (original)
+++ libcxx/trunk/include/version Wed Sep 12 12:41:40 2018
@@ -101,4 +101,17 @@ __cpp_lib_void_t
#pragma GCC system_header
#endif
+#if _LIBCPP_STD_VER > 11
+#endif
+
+#if _LIBCPP_STD_VER > 14
+# define __cpp_lib_atomic_is_always_lock_free 201603L
+# define __cpp_lib_filesystem 201703L
+# define __cpp_lib_invoke 201411L
+# define __cpp_lib_void_t 201411L
+#endif
+
+#if _LIBCPP_STD_VER > 17
+#endif
+
#endif // _LIBCPP_VERSIONH
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/algorithm.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/algorithm.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/algorithm.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/algorithm.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,36 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <algorithm> feature macros
+
+/* Constant Value
+ __cpp_lib_clamp 201603L
+ __cpp_lib_constexpr_swap_algorithms 201806L
+ __cpp_lib_parallel_algorithm 201603L
+ __cpp_lib_robust_nonmodifying_seq_ops 201304L
+ __cpp_lib_sample 201603L
+
+*/
+
+#include <algorithm>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <algorithm> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/any.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/any.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/any.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/any.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,32 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <any> feature macros
+
+/* Constant Value
+ __cpp_lib_any 201606L
+
+*/
+
+#include <any>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <any> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/array.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/array.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/array.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/array.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,33 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <array> feature macros
+
+/* Constant Value
+ __cpp_lib_array_constexpr 201603L
+ __cpp_lib_nonmember_container_access 201411L
+
+*/
+
+#include <array>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <array> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/atomic.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/atomic.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/atomic.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/atomic.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,41 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <atomic> feature macros
+
+/* Constant Value
+ __cpp_lib_atomic_is_always_lock_free 201603L
+ __cpp_lib_atomic_ref 201806L
+
+*/
+
+#include <atomic>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <atomic> are defined.
+
+#if _TEST_STD_VER > 14
+# if !defined(__cpp_lib_atomic_is_always_lock_free)
+# error "__cpp_lib_atomic_is_always_lock_free is not defined"
+# elif __cpp_lib_atomic_is_always_lock_free < 201603L
+# error "__cpp_lib_atomic_is_always_lock_free has an invalid value"
+# endif
+#endif
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/bit.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/bit.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/bit.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/bit.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,32 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <bit> feature macros
+
+/* Constant Value
+ __cpp_lib_bit_cast 201806L
+
+*/
+
+#include <bit>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <bit> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/chrono.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/chrono.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/chrono.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/chrono.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,32 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <chrono> feature macros
+
+/* Constant Value
+ __cpp_lib_chrono 201611L
+
+*/
+
+#include <chrono>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <chrono> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/cmath.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/cmath.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/cmath.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/cmath.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,33 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <cmath> feature macros
+
+/* Constant Value
+ __cpp_lib_hypot 201603L
+ __cpp_lib_math_special_functions 201603L
+
+*/
+
+#include <cmath>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <cmath> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/complex.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/complex.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/complex.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/complex.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,32 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <complex> feature macros
+
+/* Constant Value
+ __cpp_lib_complex_udls 201309L
+
+*/
+
+#include <complex>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <complex> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/concepts.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/concepts.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/concepts.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/concepts.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,33 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <concepts> feature macros
+
+/* Constant Value
+ __cpp_lib_concepts 201806L
+
+*/
+
+// XFAIL
+// #include <concepts>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <concepts> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/cstddef.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/cstddef.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/cstddef.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/cstddef.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,32 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <cstddef> feature macros
+
+/* Constant Value
+ __cpp_lib_byte 201603L
+
+*/
+
+#include <cstddef>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <cstddef> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/deque.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/deque.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/deque.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/deque.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,33 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <deque> feature macros
+
+/* Constant Value
+ __cpp_lib_allocator_traits_is_always_equal 201411L
+ __cpp_lib_nonmember_container_access 201411L
+
+*/
+
+#include <deque>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <deque> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/exception.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/exception.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/exception.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/exception.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,32 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <exception> feature macros
+
+/* Constant Value
+ __cpp_lib_uncaught_exceptions 201411L
+
+*/
+
+#include <exception>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <exception> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/execution.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/execution.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/execution.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/execution.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,33 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <execution> feature macros
+
+/* Constant Value
+ __cpp_lib_execution 201603L
+
+*/
+
+// XFAIL
+// #include <execution>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <execution> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/filesystem.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/filesystem.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/filesystem.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/filesystem.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,40 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <filesystem> feature macros
+
+/* Constant Value
+ __cpp_lib_filesystem 201703L
+
+*/
+
+#include <filesystem>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <filesystem> are defined.
+
+#if _TEST_STD_VER > 14
+# if !defined(__cpp_lib_filesystem)
+# error "__cpp_lib_filesystem is not defined"
+# elif __cpp_lib_filesystem < 201703L
+# error "__cpp_lib_filesystem has an invalid value"
+# endif
+#endif
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/forward_list.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/forward_list.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/forward_list.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/forward_list.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,35 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <forward_list> feature macros
+
+/* Constant Value
+ __cpp_lib_allocator_traits_is_always_equal 201411L
+ __cpp_lib_incomplete_container_elements 201505L
+ __cpp_lib_list_remove_return_type 201806L
+ __cpp_lib_nonmember_container_access 201411L
+
+*/
+
+#include <forward_list>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <forward_list> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/functional.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/functional.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/functional.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/functional.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,44 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <functional> feature macros
+
+/* Constant Value
+ __cpp_lib_boyer_moore_searcher 201603L
+ __cpp_lib_invoke 201411L
+ __cpp_lib_not_fn 201603L
+ __cpp_lib_result_of_sfinae 201210L
+ __cpp_lib_transparent_operators 201510L
+
+*/
+
+#include <functional>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <functional> are defined.
+
+#if _TEST_STD_VER > 14
+# if !defined(__cpp_lib_invoke)
+# error "__cpp_lib_invoke is not defined"
+# elif __cpp_lib_invoke < 201411L
+# error "__cpp_lib_invoke has an invalid value"
+# endif
+#endif
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/iomanip.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/iomanip.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/iomanip.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/iomanip.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,32 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <iomanip> feature macros
+
+/* Constant Value
+ __cpp_lib_quoted_string_io 201304L
+
+*/
+
+#include <iomanip>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <iomanip> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/iterator.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/iterator.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/iterator.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/iterator.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,35 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <iterator> feature macros
+
+/* Constant Value
+ __cpp_lib_array_constexpr 201603L
+ __cpp_lib_make_reverse_iterator 201402L
+ __cpp_lib_nonmember_container_access 201411L
+ __cpp_lib_null_iterators 201304L
+
+*/
+
+#include <iterator>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <iterator> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/list.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/list.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/list.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/list.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,35 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <list> feature macros
+
+/* Constant Value
+ __cpp_lib_allocator_traits_is_always_equal 201411L
+ __cpp_lib_incomplete_container_elements 201505L
+ __cpp_lib_list_remove_return_type 201806L
+ __cpp_lib_nonmember_container_access 201411L
+
+*/
+
+#include <list>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <list> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/map.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/map.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/map.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/map.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,36 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <map> feature macros
+
+/* Constant Value
+ __cpp_lib_allocator_traits_is_always_equal 201411L
+ __cpp_lib_generic_associative_lookup 201304L
+ __cpp_lib_map_try_emplace 201411L
+ __cpp_lib_node_extract 201606L
+ __cpp_lib_nonmember_container_access 201411L
+
+*/
+
+#include <map>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <map> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/memory.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/memory.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/memory.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/memory.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,39 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <memory> feature macros
+
+/* Constant Value
+ __cpp_lib_addressof_constexpr 201603L
+ __cpp_lib_allocator_traits_is_always_equal 201411L
+ __cpp_lib_enable_shared_from_this 201603L
+ __cpp_lib_make_unique 201304L
+ __cpp_lib_raw_memory_algorithms 201606L
+ __cpp_lib_shared_ptr_arrays 201611L
+ __cpp_lib_shared_ptr_weak_type 201606L
+ __cpp_lib_transparent_operators 201510L
+
+*/
+
+#include <memory>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <memory> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/memory_resource.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/memory_resource.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/memory_resource.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/memory_resource.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,33 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <memory_resource> feature macros
+
+/* Constant Value
+ __cpp_lib_memory_resource 201603L
+
+*/
+
+// XFAIL
+// #include <memory_resource>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <memory_resource> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/mutex.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/mutex.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/mutex.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/mutex.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,32 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <mutex> feature macros
+
+/* Constant Value
+ __cpp_lib_scoped_lock 201703L
+
+*/
+
+#include <mutex>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <mutex> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/new.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/new.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/new.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/new.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,33 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <new> feature macros
+
+/* Constant Value
+ __cpp_lib_hardware_interference_size 201703L
+ __cpp_lib_launder 201606L
+
+*/
+
+#include <new>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <new> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/numeric.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/numeric.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/numeric.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/numeric.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,33 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <numeric> feature macros
+
+/* Constant Value
+ __cpp_lib_gcd_lcm 201606L
+ __cpp_lib_parallel_algorithm 201603L
+
+*/
+
+#include <numeric>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <numeric> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/optional.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/optional.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/optional.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/optional.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,32 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <optional> feature macros
+
+/* Constant Value
+ __cpp_lib_optional 201606L
+
+*/
+
+#include <optional>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <optional> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/regex.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/regex.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/regex.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/regex.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,32 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <regex> feature macros
+
+/* Constant Value
+ __cpp_lib_nonmember_container_access 201411L
+
+*/
+
+#include <regex>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <regex> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/scoped_allocator.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/scoped_allocator.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/scoped_allocator.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/scoped_allocator.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,32 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <scoped_allocator> feature macros
+
+/* Constant Value
+ __cpp_lib_allocator_traits_is_always_equal 201411L
+
+*/
+
+#include <scoped_allocator>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <scoped_allocator> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/set.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/set.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/set.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/set.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,35 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <set> feature macros
+
+/* Constant Value
+ __cpp_lib_allocator_traits_is_always_equal 201411L
+ __cpp_lib_generic_associative_lookup 201304L
+ __cpp_lib_node_extract 201606L
+ __cpp_lib_nonmember_container_access 201411L
+
+*/
+
+#include <set>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <set> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/shared_mutex.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/shared_mutex.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/shared_mutex.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/shared_mutex.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,33 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <shared_mutex> feature macros
+
+/* Constant Value
+ __cpp_lib_shared_mutex 201505L
+ __cpp_lib_shared_timed_mutex 201402L
+
+*/
+
+#include <shared_mutex>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <shared_mutex> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/string.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/string.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/string.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/string.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,35 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <string> feature macros
+
+/* Constant Value
+ __cpp_lib_allocator_traits_is_always_equal 201411L
+ __cpp_lib_nonmember_container_access 201411L
+ __cpp_lib_string_udls 201304L
+ __cpp_lib_string_view 201606L
+
+*/
+
+#include <string>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <string> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/string_view.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/string_view.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/string_view.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/string_view.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,32 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <string_view> feature macros
+
+/* Constant Value
+ __cpp_lib_string_view 201606L
+
+*/
+
+#include <string_view>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <string_view> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/tuple.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/tuple.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/tuple.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/tuple.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,35 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <tuple> feature macros
+
+/* Constant Value
+ __cpp_lib_apply 201603L
+ __cpp_lib_make_from_tuple 201606L
+ __cpp_lib_tuple_element_t 201402L
+ __cpp_lib_tuples_by_type 201304L
+
+*/
+
+#include <tuple>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <tuple> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/type_traits.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/type_traits.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/type_traits.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/type_traits.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,53 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <type_traits> feature macros
+
+/* Constant Value
+ __cpp_lib_bool_constant 201505L
+ __cpp_lib_has_unique_object_representations 201606L
+ __cpp_lib_integral_constant_callable 201304L
+ __cpp_lib_is_aggregate 201703L
+ __cpp_lib_is_final 201402L
+ __cpp_lib_is_invocable 201703L
+ __cpp_lib_is_null_pointer 201309L
+ __cpp_lib_is_swappable 201603L
+ __cpp_lib_logical_traits 201510L
+ __cpp_lib_result_of_sfinae 201210L
+ __cpp_lib_transformation_trait_aliases 201304L
+ __cpp_lib_type_trait_variable_templates 201510L
+ __cpp_lib_void_t 201411L
+
+*/
+
+#include <type_traits>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <type_traits> are defined.
+
+#if _TEST_STD_VER > 14
+# if !defined(__cpp_lib_void_t)
+# error "__cpp_lib_void_t is not defined"
+# elif __cpp_lib_void_t < 201411L
+# error "__cpp_lib_void_t has an invalid value"
+# endif
+#endif
+
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/unordered_map.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/unordered_map.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/unordered_map.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/unordered_map.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,35 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <unordered_map> feature macros
+
+/* Constant Value
+ __cpp_lib_allocator_traits_is_always_equal 201411L
+ __cpp_lib_node_extract 201606L
+ __cpp_lib_nonmember_container_access 201411L
+ __cpp_lib_unordered_map_try_emplace 201411L
+
+*/
+
+#include <unordered_map>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <unordered_map> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/unordered_set.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/unordered_set.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/unordered_set.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/unordered_set.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,34 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <unordered_set> feature macros
+
+/* Constant Value
+ __cpp_lib_allocator_traits_is_always_equal 201411L
+ __cpp_lib_node_extract 201606L
+ __cpp_lib_nonmember_container_access 201411L
+
+*/
+
+#include <unordered_set>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <unordered_set> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/utility.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/utility.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/utility.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/utility.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,36 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <utility> feature macros
+
+/* Constant Value
+ __cpp_lib_as_const 201510L
+ __cpp_lib_exchange_function 201304L
+ __cpp_lib_integer_sequence 201304L
+ __cpp_lib_to_chars 201611L
+ __cpp_lib_tuples_by_type 201304L
+
+*/
+
+#include <utility>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <utility> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/variant.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/variant.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/variant.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/variant.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,32 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <variant> feature macros
+
+/* Constant Value
+ __cpp_lib_variant 201606L
+
+*/
+
+#include <variant>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <variant> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/vector.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/vector.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/vector.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/vector.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,34 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <vector> feature macros
+
+/* Constant Value
+ __cpp_lib_allocator_traits_is_always_equal 201411L
+ __cpp_lib_incomplete_container_elements 201505L
+ __cpp_lib_nonmember_container_access 201411L
+
+*/
+
+#include <vector>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <vector> are defined.
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
Added: libcxx/trunk/test/std/language.support/support.limits/support.limits.general/version.version.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.limits/support.limits.general/version.version.pass.cpp?rev=342073&view=auto
==============================================================================
--- libcxx/trunk/test/std/language.support/support.limits/support.limits.general/version.version.pass.cpp (added)
+++ libcxx/trunk/test/std/language.support/support.limits/support.limits.general/version.version.pass.cpp Wed Sep 12 12:41:40 2018
@@ -0,0 +1,135 @@
+
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// <version> feature macros
+
+/* Constant Value
+ __cpp_lib_addressof_constexpr 201603L
+ __cpp_lib_allocator_traits_is_always_equal 201411L
+ __cpp_lib_any 201606L
+ __cpp_lib_apply 201603L
+ __cpp_lib_array_constexpr 201603L
+ __cpp_lib_as_const 201510L
+ __cpp_lib_atomic_is_always_lock_free 201603L
+ __cpp_lib_atomic_ref 201806L
+ __cpp_lib_bit_cast 201806L
+ __cpp_lib_bool_constant 201505L
+ __cpp_lib_boyer_moore_searcher 201603L
+ __cpp_lib_byte 201603L
+ __cpp_lib_chrono 201611L
+ __cpp_lib_clamp 201603L
+ __cpp_lib_complex_udls 201309L
+ __cpp_lib_concepts 201806L
+ __cpp_lib_constexpr_swap_algorithms 201806L
+ __cpp_lib_enable_shared_from_this 201603L
+ __cpp_lib_exchange_function 201304L
+ __cpp_lib_execution 201603L
+ __cpp_lib_filesystem 201703L
+ __cpp_lib_gcd_lcm 201606L
+ __cpp_lib_generic_associative_lookup 201304L
+ __cpp_lib_hardware_interference_size 201703L
+ __cpp_lib_has_unique_object_representations 201606L
+ __cpp_lib_hypot 201603L
+ __cpp_lib_incomplete_container_elements 201505L
+ __cpp_lib_integer_sequence 201304L
+ __cpp_lib_integral_constant_callable 201304L
+ __cpp_lib_invoke 201411L
+ __cpp_lib_is_aggregate 201703L
+ __cpp_lib_is_final 201402L
+ __cpp_lib_is_invocable 201703L
+ __cpp_lib_is_null_pointer 201309L
+ __cpp_lib_is_swappable 201603L
+ __cpp_lib_launder 201606L
+ __cpp_lib_list_remove_return_type 201806L
+ __cpp_lib_logical_traits 201510L
+ __cpp_lib_make_from_tuple 201606L
+ __cpp_lib_make_reverse_iterator 201402L
+ __cpp_lib_make_unique 201304L
+ __cpp_lib_map_try_emplace 201411L
+ __cpp_lib_math_special_functions 201603L
+ __cpp_lib_memory_resource 201603L
+ __cpp_lib_node_extract 201606L
+ __cpp_lib_nonmember_container_access 201411L
+ __cpp_lib_not_fn 201603L
+ __cpp_lib_null_iterators 201304L
+ __cpp_lib_optional 201606L
+ __cpp_lib_parallel_algorithm 201603L
+ __cpp_lib_quoted_string_io 201304L
+ __cpp_lib_raw_memory_algorithms 201606L
+ __cpp_lib_result_of_sfinae 201210L
+ __cpp_lib_robust_nonmodifying_seq_ops 201304L
+ __cpp_lib_sample 201603L
+ __cpp_lib_scoped_lock 201703L
+ __cpp_lib_shared_mutex 201505L
+ __cpp_lib_shared_ptr_arrays 201611L
+ __cpp_lib_shared_ptr_weak_type 201606L
+ __cpp_lib_shared_timed_mutex 201402L
+ __cpp_lib_string_udls 201304L
+ __cpp_lib_string_view 201606L
+ __cpp_lib_to_chars 201611L
+ __cpp_lib_transformation_trait_aliases 201304L
+ __cpp_lib_transparent_operators 201510L
+ __cpp_lib_tuple_element_t 201402L
+ __cpp_lib_tuples_by_type 201304L
+ __cpp_lib_type_trait_variable_templates 201510L
+ __cpp_lib_uncaught_exceptions 201411L
+ __cpp_lib_unordered_map_try_emplace 201411L
+ __cpp_lib_variant 201606L
+ __cpp_lib_void_t 201411L
+
+*/
+
+#include <version>
+#include "test_macros.h"
+
+int main()
+{
+// ensure that the macros that are supposed to be defined in <version> are defined.
+
+#if _TEST_STD_VER > 14
+# if !defined(__cpp_lib_atomic_is_always_lock_free)
+# error "__cpp_lib_atomic_is_always_lock_free is not defined"
+# elif __cpp_lib_atomic_is_always_lock_free < 201603L
+# error "__cpp_lib_atomic_is_always_lock_free has an invalid value"
+# endif
+#endif
+
+#if _TEST_STD_VER > 14
+# if !defined(__cpp_lib_filesystem)
+# error "__cpp_lib_filesystem is not defined"
+# elif __cpp_lib_filesystem < 201703L
+# error "__cpp_lib_filesystem has an invalid value"
+# endif
+#endif
+
+#if _TEST_STD_VER > 14
+# if !defined(__cpp_lib_invoke)
+# error "__cpp_lib_invoke is not defined"
+# elif __cpp_lib_invoke < 201411L
+# error "__cpp_lib_invoke has an invalid value"
+# endif
+#endif
+
+#if _TEST_STD_VER > 14
+# if !defined(__cpp_lib_void_t)
+# error "__cpp_lib_void_t is not defined"
+# elif __cpp_lib_void_t < 201411L
+# error "__cpp_lib_void_t has an invalid value"
+# endif
+#endif
+
+/*
+#if !defined(__cpp_lib_fooby)
+# error "__cpp_lib_fooby is not defined"
+#elif __cpp_lib_fooby < 201606L
+# error "__cpp_lib_fooby has an invalid value"
+#endif
+*/
+}
_______________________________________________
cfe-commits mailing list
cfe-commits at lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list