[libcxx] r342073 - Implement the infrastructure for feature-test macros. Very few actual feature test macros, though. Reviewed as: https://reviews.llvm.org/D51955

Richard Smith via cfe-commits cfe-commits at lists.llvm.org
Tue Oct 2 15:10:59 PDT 2018


On Tue, 2 Oct 2018 at 10:33, Christof Douma via cfe-commits <
cfe-commits at lists.llvm.org> wrote:

> 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.


Perhaps we should encourage users to specify include paths via -iquote
rather than -I.

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?
>

Name collisions are a fundamental problem with using a single flat
namespace for include file names. Generally the workaround is to include
hierarchy in included file names (even when naming parts of your own
application) and leave filenames containing no / characters essentially
reserved for system headers. Use of -I- is also a useful component of this
strategy, though sadly Clang doesn't support it (you can get half of the
effect via -iquote, but the "don't search relative to the current file"
part isn't available in Clang); that might be worth fixing.

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 @@
>     +
>
> +//===----------------------------------------------------------------------==
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20181002/a548e9b6/attachment-0001.html>


More information about the cfe-commits mailing list