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