[libcxx] Improve tests to use the UNSUPPORTED lit directive

Quite a few libcxx tests seem to follow the format:
 #if _LIBCPP_STD_VER > X
   // Do test.
 #else
   // Empty test.
 #endif
We should instead use the UNSUPPORTED lit directive to exclude the test on
earlier C++ standards. This gives us a more accurate number of test passes
for those standards and avoids unnecessary conflicts with other lit
directives on the same tests.

Reviewers: bcraig, ericwf, mclow.lists

Differential revision: http://reviews.llvm.org/D20730

llvm-svn: 271108
diff --git a/libcxx/test/std/experimental/optional/optional.bad_optional_access/default.pass.cpp b/libcxx/test/std/experimental/optional/optional.bad_optional_access/default.pass.cpp
index cecf98a..c166bb7 100644
--- a/libcxx/test/std/experimental/optional/optional.bad_optional_access/default.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.bad_optional_access/default.pass.cpp
@@ -7,6 +7,8 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
+
 // <optional>
 
 // class bad_optional_access is default constructible
@@ -16,8 +18,6 @@
 
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     using std::experimental::bad_optional_access;
     bad_optional_access ex;
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.bad_optional_access/derive.pass.cpp b/libcxx/test/std/experimental/optional/optional.bad_optional_access/derive.pass.cpp
index c13d660..2539056 100644
--- a/libcxx/test/std/experimental/optional/optional.bad_optional_access/derive.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.bad_optional_access/derive.pass.cpp
@@ -7,6 +7,8 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
+
 // <optional>
 
 // class bad_optional_access : public logic_error 
@@ -16,10 +18,8 @@
 
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     using std::experimental::bad_optional_access;
 
     static_assert(std::is_base_of<std::logic_error, bad_optional_access>::value, "");
     static_assert(std::is_convertible<bad_optional_access*, std::logic_error*>::value, "");
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.comp_with_t/equal.pass.cpp b/libcxx/test/std/experimental/optional/optional.comp_with_t/equal.pass.cpp
index e796723..b3cfc7d 100644
--- a/libcxx/test/std/experimental/optional/optional.comp_with_t/equal.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.comp_with_t/equal.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // template <class T> constexpr bool operator==(const optional<T>& x, const T& v);
@@ -14,8 +15,6 @@
 
 #include <experimental/optional>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 struct X
@@ -28,11 +27,8 @@
 constexpr bool operator == ( const X &lhs, const X &rhs )
     { return lhs.i_ == rhs.i_ ; }
     
-#endif
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     {
     typedef X T;
     typedef optional<T> O;
@@ -54,5 +50,4 @@
     static_assert (  (T(2) == o3), "" );
     static_assert (  (val  == o3), "" );
     }
-#endif
 }
diff --git a/libcxx/test/std/experimental/optional/optional.comp_with_t/greater.pass.cpp b/libcxx/test/std/experimental/optional/optional.comp_with_t/greater.pass.cpp
index cf3923b..5a3b534 100644
--- a/libcxx/test/std/experimental/optional/optional.comp_with_t/greater.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.comp_with_t/greater.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // template <class T> constexpr bool operator>(const optional<T>& x, const T& v);
@@ -14,8 +15,6 @@
 
 #include <experimental/optional>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 struct X
@@ -28,12 +27,8 @@
 constexpr bool operator < ( const X &lhs, const X &rhs )
     { return lhs.i_ < rhs.i_ ; }
     
-#endif
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
-
     {
     typedef X T;
     typedef optional<T> O;
@@ -57,5 +52,4 @@
     static_assert (  !(val  > o3), "" ); // equal
     static_assert (   (T(3) > o3), "" );
     }
-#endif
 }
diff --git a/libcxx/test/std/experimental/optional/optional.comp_with_t/greater_equal.pass.cpp b/libcxx/test/std/experimental/optional/optional.comp_with_t/greater_equal.pass.cpp
index 85fea13..8d4a4c4 100644
--- a/libcxx/test/std/experimental/optional/optional.comp_with_t/greater_equal.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.comp_with_t/greater_equal.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // template <class T> constexpr bool operator>=(const optional<T>& x, const T& v);
@@ -14,8 +15,6 @@
 
 #include <experimental/optional>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 struct X
@@ -28,12 +27,8 @@
 constexpr bool operator < ( const X &lhs, const X &rhs )
     { return lhs.i_ < rhs.i_ ; }
     
-#endif
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
-
     {
     typedef X T;
     typedef optional<T> O;
@@ -57,5 +52,4 @@
     static_assert (   (val  >= o3), "" ); // equal
     static_assert (   (T(3) >= o3), "" );
     }
-#endif
 }
diff --git a/libcxx/test/std/experimental/optional/optional.comp_with_t/less_equal.pass.cpp b/libcxx/test/std/experimental/optional/optional.comp_with_t/less_equal.pass.cpp
index 333f7cd..42452f1 100644
--- a/libcxx/test/std/experimental/optional/optional.comp_with_t/less_equal.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.comp_with_t/less_equal.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // template <class T> constexpr bool operator<=(const optional<T>& x, const T& v);
@@ -14,8 +15,6 @@
 
 #include <experimental/optional>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 struct X
@@ -28,12 +27,8 @@
 constexpr bool operator < ( const X &lhs, const X &rhs )
     { return lhs.i_ < rhs.i_ ; }
     
-#endif
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
-
     {
     typedef X T;
     typedef optional<T> O;
@@ -57,5 +52,4 @@
     static_assert (   (val  <= o3), "" ); // equal
     static_assert (  !(T(3) <= o3), "" );
     }
-#endif
 }
diff --git a/libcxx/test/std/experimental/optional/optional.comp_with_t/less_than.pass.cpp b/libcxx/test/std/experimental/optional/optional.comp_with_t/less_than.pass.cpp
index e35df21..1ff9221 100644
--- a/libcxx/test/std/experimental/optional/optional.comp_with_t/less_than.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.comp_with_t/less_than.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // template <class T> constexpr bool operator<(const optional<T>& x, const T& v);
@@ -14,8 +15,6 @@
 
 #include <experimental/optional>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 struct X
@@ -28,12 +27,8 @@
 constexpr bool operator < ( const X &lhs, const X &rhs )
     { return lhs.i_ < rhs.i_ ; }
     
-#endif
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
-
     {
     typedef X T;
     typedef optional<T> O;
@@ -57,5 +52,4 @@
     static_assert (  !(val  < o3), "" ); // equal
     static_assert (  !(T(3) < o3), "" );
     }
-#endif
 }
diff --git a/libcxx/test/std/experimental/optional/optional.comp_with_t/not_equal.pass.cpp b/libcxx/test/std/experimental/optional/optional.comp_with_t/not_equal.pass.cpp
index 0dad68d..7e14e6e 100644
--- a/libcxx/test/std/experimental/optional/optional.comp_with_t/not_equal.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.comp_with_t/not_equal.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // template <class T> constexpr bool operator!=(const optional<T>& x, const T& v);
@@ -14,8 +15,6 @@
 
 #include <experimental/optional>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 struct X
@@ -28,11 +27,8 @@
 constexpr bool operator == ( const X &lhs, const X &rhs )
     { return lhs.i_ == rhs.i_ ; }
     
-#endif
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     {
     typedef X T;
     typedef optional<T> O;
@@ -54,5 +50,4 @@
     static_assert ( !(T(2) != o3), "" );
     static_assert ( !(val  != o3), "" );
     }
-#endif
 }
diff --git a/libcxx/test/std/experimental/optional/optional.hash/hash.pass.cpp b/libcxx/test/std/experimental/optional/optional.hash/hash.pass.cpp
index 9e5fb55..2112674 100644
--- a/libcxx/test/std/experimental/optional/optional.hash/hash.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.hash/hash.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // template <class T> struct hash<optional<T>>;
@@ -19,7 +20,6 @@
 
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     using std::experimental::optional;
 
     {
@@ -43,5 +43,4 @@
         opt = std::unique_ptr<int>(new int(3));
         assert(std::hash<optional<T>>{}(opt) == std::hash<T>{}(*opt));
     }
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.inplace/in_place_t.pass.cpp b/libcxx/test/std/experimental/optional/optional.inplace/in_place_t.pass.cpp
index 360b9d9..9d7e989 100644
--- a/libcxx/test/std/experimental/optional/optional.inplace/in_place_t.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.inplace/in_place_t.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // struct in_place_t{};
@@ -15,8 +16,6 @@
 #include <experimental/optional>
 #include <type_traits>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 using std::experimental::in_place_t;
 using std::experimental::in_place;
@@ -28,15 +27,10 @@
     return 3;
 }
 
-#endif
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
-
     static_assert((std::is_class<in_place_t>::value), "");
     static_assert((std::is_empty<in_place_t>::value), "");
     
     static_assert(test(in_place) == 3, "");
-#endif
 }
diff --git a/libcxx/test/std/experimental/optional/optional.nullops/equal.pass.cpp b/libcxx/test/std/experimental/optional/optional.nullops/equal.pass.cpp
index 931db61..7b42847 100644
--- a/libcxx/test/std/experimental/optional/optional.nullops/equal.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.nullops/equal.pass.cpp
@@ -7,7 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
-
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // template <class T> constexpr bool operator==(const optional<T>& x, nullopt_t) noexcept;
@@ -17,7 +17,6 @@
 
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     using std::experimental::optional;
     using std::experimental::nullopt_t;
     using std::experimental::nullopt;
@@ -37,5 +36,4 @@
     static_assert (noexcept(nullopt == o1), "");
     static_assert (noexcept(o1 == nullopt), "");
     }
-#endif
 }
diff --git a/libcxx/test/std/experimental/optional/optional.nullops/greater.pass.cpp b/libcxx/test/std/experimental/optional/optional.nullops/greater.pass.cpp
index b72a4d3..f26e8f8 100644
--- a/libcxx/test/std/experimental/optional/optional.nullops/greater.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.nullops/greater.pass.cpp
@@ -7,7 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
-
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // template <class T> constexpr bool operator>(const optional<T>& x, nullopt_t) noexcept;
@@ -17,7 +17,6 @@
 
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     using std::experimental::optional;
     using std::experimental::nullopt_t;
     using std::experimental::nullopt;
@@ -37,5 +36,4 @@
     static_assert (noexcept(nullopt > o1), "");
     static_assert (noexcept(o1 > nullopt), "");
     }
-#endif
 }
diff --git a/libcxx/test/std/experimental/optional/optional.nullops/greater_equal.pass.cpp b/libcxx/test/std/experimental/optional/optional.nullops/greater_equal.pass.cpp
index 86c8743..3d22ea0 100644
--- a/libcxx/test/std/experimental/optional/optional.nullops/greater_equal.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.nullops/greater_equal.pass.cpp
@@ -7,7 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
-
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // template <class T> constexpr bool operator>=(const optional<T>& x, nullopt_t) noexcept;
@@ -17,7 +17,6 @@
 
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     using std::experimental::optional;
     using std::experimental::nullopt_t;
     using std::experimental::nullopt;
@@ -37,5 +36,4 @@
     static_assert (noexcept(nullopt >= o1), "");
     static_assert (noexcept(o1 >= nullopt), "");
     }
-#endif
 }
diff --git a/libcxx/test/std/experimental/optional/optional.nullops/less_than.pass.cpp b/libcxx/test/std/experimental/optional/optional.nullops/less_than.pass.cpp
index 149c809..d2fa726 100644
--- a/libcxx/test/std/experimental/optional/optional.nullops/less_than.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.nullops/less_than.pass.cpp
@@ -7,7 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
-
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // template <class T> constexpr bool operator<(const optional<T>& x, nullopt_t) noexcept;
@@ -17,7 +17,6 @@
 
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     using std::experimental::optional;
     using std::experimental::nullopt_t;
     using std::experimental::nullopt;
@@ -37,5 +36,4 @@
     static_assert (noexcept(nullopt < o1), "");
     static_assert (noexcept(o1 < nullopt), "");
     }
-#endif
 }
diff --git a/libcxx/test/std/experimental/optional/optional.nullops/not_equal.pass.cpp b/libcxx/test/std/experimental/optional/optional.nullops/not_equal.pass.cpp
index 6f28edf..b693a64 100644
--- a/libcxx/test/std/experimental/optional/optional.nullops/not_equal.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.nullops/not_equal.pass.cpp
@@ -7,7 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
-
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // template <class T> constexpr bool operator!=(const optional<T>& x, nullopt_t) noexcept;
@@ -17,7 +17,6 @@
 
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     using std::experimental::optional;
     using std::experimental::nullopt_t;
     using std::experimental::nullopt;
@@ -37,5 +36,4 @@
     static_assert (noexcept(nullopt != o1), "");
     static_assert (noexcept(o1 != nullopt), "");
     }
-#endif
 }
diff --git a/libcxx/test/std/experimental/optional/optional.nullopt/nullopt_t.pass.cpp b/libcxx/test/std/experimental/optional/optional.nullopt/nullopt_t.pass.cpp
index de1e83b..5e629d7 100644
--- a/libcxx/test/std/experimental/optional/optional.nullopt/nullopt_t.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.nullopt/nullopt_t.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // struct nullopt_t{see below};
@@ -15,8 +16,6 @@
 #include <experimental/optional>
 #include <type_traits>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 using std::experimental::nullopt_t;
 using std::experimental::nullopt;
@@ -28,16 +27,12 @@
     return 3;
 }
 
-#endif
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     static_assert((std::is_class<nullopt_t>::value), "");
     static_assert((std::is_empty<nullopt_t>::value), "");
     static_assert((std::is_literal_type<nullopt_t>::value), "");
     static_assert((!std::is_default_constructible<nullopt_t>::value), "");
     
     static_assert(test(nullopt) == 3, "");
-#endif
 }
diff --git a/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/assign_value.pass.cpp b/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/assign_value.pass.cpp
index e256a09..3d0d2e0 100644
--- a/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/assign_value.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/assign_value.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // template <class U> optional<T>& operator=(U&& v);
@@ -16,19 +17,14 @@
 #include <cassert>
 #include <memory>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 struct X
 {
 };
 
-#endif  // _LIBCPP_STD_VER > 11
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     static_assert(std::is_assignable<optional<int>, int>::value, "");
     static_assert(std::is_assignable<optional<int>, int&>::value, "");
     static_assert(std::is_assignable<optional<int>&, int>::value, "");
@@ -68,5 +64,4 @@
         assert(static_cast<bool>(opt) == true);
         assert(**opt == 3);
     }
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/copy.pass.cpp b/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/copy.pass.cpp
index 999d03d..89ea345 100644
--- a/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/copy.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/copy.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // XFAIL: libcpp-no-exceptions
 // <optional>
 
@@ -16,8 +17,6 @@
 #include <type_traits>
 #include <cassert>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 struct X
@@ -34,11 +33,8 @@
 
 bool X::throw_now = false;
 
-#endif  // _LIBCPP_STD_VER > 11
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     {
         optional<int> opt;
         constexpr optional<int> opt2;
@@ -87,5 +83,4 @@
             assert(static_cast<bool>(opt) == false);
         }
     }
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/emplace.pass.cpp b/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/emplace.pass.cpp
index ec98ef4..94f2bb2 100644
--- a/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/emplace.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/emplace.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // XFAIL: libcpp-no-exceptions
 // <optional>
 
@@ -17,8 +18,6 @@
 #include <cassert>
 #include <memory>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 class X
@@ -55,11 +54,8 @@
 
 bool Z::dtor_called = false;
 
-#endif  // _LIBCPP_STD_VER > 11
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     {
         optional<int> opt;
         opt.emplace();
@@ -145,5 +141,4 @@
             assert(Z::dtor_called == true);
         }
     }
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/emplace_initializer_list.pass.cpp b/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/emplace_initializer_list.pass.cpp
index aada0f4..bb8fcd5 100644
--- a/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/emplace_initializer_list.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/emplace_initializer_list.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // XFAIL: libcpp-no-exceptions
 // <optional>
 
@@ -18,8 +19,6 @@
 #include <cassert>
 #include <vector>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 class X
@@ -70,11 +69,8 @@
 
 bool Z::dtor_called = false;
 
-#endif  // _LIBCPP_STD_VER > 11
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     {
         X x;
         {
@@ -113,5 +109,4 @@
             assert(Z::dtor_called == true);
         }
     }
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/move.pass.cpp b/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/move.pass.cpp
index 3e084e5..fa00f56 100644
--- a/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/move.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/move.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // XFAIL: libcpp-no-exceptions
 // <optional>
 
@@ -18,8 +19,6 @@
 #include <type_traits>
 #include <cassert>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 struct X
@@ -42,11 +41,8 @@
 
 bool X::throw_now = false;
 
-#endif  // _LIBCPP_STD_VER > 11
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     {
         static_assert(std::is_nothrow_move_assignable<optional<int>>::value, "");
         optional<int> opt;
@@ -100,5 +96,4 @@
     {
         static_assert(std::is_nothrow_move_assignable<optional<Y>>::value, "");
     }
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/nullopt_t.pass.cpp b/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/nullopt_t.pass.cpp
index 7f39744..b1d851b 100644
--- a/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/nullopt_t.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/nullopt_t.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // optional<T>& operator=(nullopt_t) noexcept;
@@ -15,8 +16,6 @@
 #include <type_traits>
 #include <cassert>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 using std::experimental::nullopt_t;
 using std::experimental::nullopt;
@@ -29,11 +28,8 @@
 
 bool X::dtor_called = false;
 
-#endif  // _LIBCPP_STD_VER > 11
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     {
         optional<int> opt;
         static_assert(noexcept(opt = nullopt) == true, "");
@@ -63,5 +59,4 @@
             assert(static_cast<bool>(opt) == false);
         }
     }
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.object/optional.object.ctor/copy.pass.cpp b/libcxx/test/std/experimental/optional/optional.object/optional.object.ctor/copy.pass.cpp
index 7d401de..144af2e 100644
--- a/libcxx/test/std/experimental/optional/optional.object/optional.object.ctor/copy.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/optional.object.ctor/copy.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // XFAIL: libcpp-no-exceptions
 // <optional>
 
@@ -16,8 +17,6 @@
 #include <type_traits>
 #include <cassert>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 template <class T>
@@ -76,11 +75,8 @@
 };
 
 
-#endif  // _LIBCPP_STD_VER > 11
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     {
         typedef int T;
         optional<T> rhs;
@@ -121,5 +117,4 @@
         optional<T> rhs(Z(3));
         test(rhs, true);
     }
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.object/optional.object.ctor/default.pass.cpp b/libcxx/test/std/experimental/optional/optional.object/optional.object.ctor/default.pass.cpp
index 6a1763d..d24a1ac 100644
--- a/libcxx/test/std/experimental/optional/optional.object/optional.object.ctor/default.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/optional.object.ctor/default.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // constexpr optional() noexcept;
@@ -15,8 +16,6 @@
 #include <type_traits>
 #include <cassert>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 template <class Opt>
@@ -55,13 +54,9 @@
     X();
 };
 
-#endif  // _LIBCPP_STD_VER > 11
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     test_constexpr<optional<int>>();
     test_constexpr<optional<int*>>();
     test<optional<X>>();
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.object/optional.object.ctor/initializer_list.pass.cpp b/libcxx/test/std/experimental/optional/optional.object/optional.object.ctor/initializer_list.pass.cpp
index 7a98e0b..1ad6bad 100644
--- a/libcxx/test/std/experimental/optional/optional.object/optional.object.ctor/initializer_list.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/optional.object.ctor/initializer_list.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // XFAIL: libcpp-no-exceptions
 // <optional>
 
@@ -19,8 +20,6 @@
 #include <vector>
 #include <cassert>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 using std::experimental::in_place_t;
 using std::experimental::in_place;
@@ -67,12 +66,8 @@
         {return x.i_ == y.i_ && x.j_ == y.j_;}
 };
 
-
-#endif  // _LIBCPP_STD_VER > 11
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     {
         static_assert(!std::is_constructible<X, std::initializer_list<int>&>::value, "");
         static_assert(!std::is_constructible<optional<X>, std::initializer_list<int>&>::value, "");
@@ -123,5 +118,4 @@
         };
 
     }
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.object/optional.object.ctor/move.pass.cpp b/libcxx/test/std/experimental/optional/optional.object/optional.object.ctor/move.pass.cpp
index 40d55f9..851157f 100644
--- a/libcxx/test/std/experimental/optional/optional.object/optional.object.ctor/move.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/optional.object.ctor/move.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // XFAIL: libcpp-no-exceptions
 // <optional>
 
@@ -16,8 +17,6 @@
 #include <type_traits>
 #include <cassert>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 template <class T>
@@ -75,12 +74,8 @@
     friend constexpr bool operator==(const Z& x, const Z& y) {return x.i_ == y.i_;}
 };
 
-
-#endif  // _LIBCPP_STD_VER > 11
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     {
         typedef int T;
         optional<T> rhs;
@@ -121,5 +116,4 @@
         optional<T> rhs(Z(3));
         test(rhs, true);
     }
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.object/optional.object.ctor/nullopt_t.pass.cpp b/libcxx/test/std/experimental/optional/optional.object/optional.object.ctor/nullopt_t.pass.cpp
index c307a2e..40c9658 100644
--- a/libcxx/test/std/experimental/optional/optional.object/optional.object.ctor/nullopt_t.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/optional.object.ctor/nullopt_t.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // constexpr optional(nullopt_t) noexcept;
@@ -15,8 +16,6 @@
 #include <type_traits>
 #include <cassert>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 using std::experimental::nullopt_t;
 using std::experimental::nullopt;
@@ -56,13 +55,9 @@
     X();
 };
 
-#endif  // _LIBCPP_STD_VER > 11
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     test_constexpr<optional<int>>();
     test_constexpr<optional<int*>>();
     test<optional<X>>();
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.object/optional.object.dtor/dtor.pass.cpp b/libcxx/test/std/experimental/optional/optional.object/optional.object.dtor/dtor.pass.cpp
index 2697799..2bec19e 100644
--- a/libcxx/test/std/experimental/optional/optional.object/optional.object.dtor/dtor.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/optional.object.dtor/dtor.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // ~optional();
@@ -15,8 +16,6 @@
 #include <type_traits>
 #include <cassert>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 class X
@@ -29,11 +28,8 @@
 
 bool X::dtor_called = false;
 
-#endif  // _LIBCPP_STD_VER > 11
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     {
         typedef int T;
         static_assert(std::is_trivially_destructible<T>::value, "");
@@ -55,5 +51,4 @@
         }
         assert(X::dtor_called == true);
     }
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/bool.pass.cpp b/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/bool.pass.cpp
index a372437..a5bfae2 100644
--- a/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/bool.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/bool.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // constexpr explicit optional<T>::operator bool() const noexcept;
@@ -17,7 +18,6 @@
 
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     using std::experimental::optional;
 
     {
@@ -28,5 +28,4 @@
         constexpr optional<int> opt(0);
         static_assert(opt, "");
     }
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/dereference.pass.cpp b/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/dereference.pass.cpp
index 98e5dac..faba8d2 100644
--- a/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/dereference.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/dereference.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // T& optional<T>::operator*();
@@ -19,8 +20,6 @@
 #include <type_traits>
 #include <cassert>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 struct X
@@ -29,11 +28,8 @@
     int test() {return 4;}
 };
 
-#endif  // _LIBCPP_STD_VER > 11
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     {
         optional<X> opt(X{});
         assert((*opt).test() == 4);
@@ -45,5 +41,4 @@
         assert(false);
     }
 #endif  // _LIBCPP_DEBUG
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/dereference_const.pass.cpp b/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/dereference_const.pass.cpp
index c72a578..f1bdc36 100644
--- a/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/dereference_const.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/dereference_const.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // constexpr const T& optional<T>::operator*() const;
@@ -19,8 +20,6 @@
 #include <type_traits>
 #include <cassert>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 struct X
@@ -33,11 +32,8 @@
     int test() const {return 2;}
 };
 
-#endif  // _LIBCPP_STD_VER > 11
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     {
         constexpr optional<X> opt(X{});
         static_assert((*opt).test() == 3, "");
@@ -53,5 +49,4 @@
         assert(false);
     }
 #endif  // _LIBCPP_DEBUG
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/op_arrow.pass.cpp b/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/op_arrow.pass.cpp
index b17fcf8..954ccd7 100644
--- a/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/op_arrow.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/op_arrow.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // constexpr T* optional<T>::operator->();
@@ -19,8 +20,6 @@
 #include <type_traits>
 #include <cassert>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 struct X
@@ -28,11 +27,8 @@
     constexpr int test() const {return 3;}
 };
 
-#endif  // _LIBCPP_STD_VER > 11
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     {
         constexpr optional<X> opt(X{});
         static_assert(opt->test() == 3, "");
@@ -44,5 +40,4 @@
         assert(false);
     }
 #endif  // _LIBCPP_DEBUG
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/op_arrow_const.pass.cpp b/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/op_arrow_const.pass.cpp
index e813dd9..cf900d7 100644
--- a/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/op_arrow_const.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/op_arrow_const.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // constexpr const T* optional<T>::operator->() const;
@@ -19,8 +20,6 @@
 #include <type_traits>
 #include <cassert>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 struct X
@@ -39,11 +38,8 @@
     constexpr int test() const {return 1;}
 };
 
-#endif  // _LIBCPP_STD_VER > 11
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     {
         constexpr optional<X> opt(X{});
         static_assert(opt->test() == 3, "");
@@ -63,5 +59,4 @@
         assert(false);
     }
 #endif  // _LIBCPP_DEBUG
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/value.pass.cpp b/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/value.pass.cpp
index 85f9be6..b998f30 100644
--- a/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/value.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/value.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // XFAIL: libcpp-no-exceptions
 // <optional>
 
@@ -16,8 +17,6 @@
 #include <type_traits>
 #include <cassert>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 using std::experimental::bad_optional_access;
 
@@ -29,11 +28,8 @@
     int test() {return 4;}
 };
 
-#endif  // _LIBCPP_STD_VER > 11
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     {
         optional<X> opt;
         opt.emplace();
@@ -50,5 +46,4 @@
         {
         }
     }
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/value_const.fail.cpp b/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/value_const.fail.cpp
index f0f8af6..baad3b4 100644
--- a/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/value_const.fail.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/value_const.fail.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // constexpr const T& optional<T>::value() const;
@@ -15,8 +16,6 @@
 #include <type_traits>
 #include <cassert>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 struct X
@@ -25,16 +24,10 @@
     int test() {return 4;}
 };
 
-#endif  // _LIBCPP_STD_VER > 11
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     {
         constexpr optional<X> opt;
         static_assert(opt.value().test() == 3, "");
     }
-#else
-#error
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/value_const.pass.cpp b/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/value_const.pass.cpp
index c99baab..a38b1f9 100644
--- a/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/value_const.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/value_const.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // XFAIL: libcpp-no-exceptions
 // <optional>
 
@@ -16,8 +17,6 @@
 #include <type_traits>
 #include <cassert>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 using std::experimental::in_place_t;
 using std::experimental::in_place;
@@ -31,11 +30,8 @@
     int test() {return 4;}
 };
 
-#endif  // _LIBCPP_STD_VER > 11
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     {
         constexpr optional<X> opt(in_place);
         static_assert(opt.value().test() == 3, "");
@@ -55,5 +51,4 @@
         {
         }
     }
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/value_or.pass.cpp b/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/value_or.pass.cpp
index 6118c44..6fca8c8 100644
--- a/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/value_or.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/value_or.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // template <class U> T optional<T>::value_or(U&& v) &&;
@@ -15,8 +16,6 @@
 #include <type_traits>
 #include <cassert>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 using std::experimental::in_place_t;
 using std::experimental::in_place;
@@ -40,11 +39,8 @@
         {return x.i_ == y.i_;}
 };
 
-#endif  // _LIBCPP_STD_VER > 11
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     {
         optional<X> opt(in_place, 2);
         Y y(3);
@@ -67,5 +63,4 @@
         assert(std::move(opt).value_or(Y(3)) == 4);
         assert(!opt);
     }
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/value_or_const.pass.cpp b/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/value_or_const.pass.cpp
index d51f18a..4a008dc 100644
--- a/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/value_or_const.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/optional.object.observe/value_or_const.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // template <class U> constexpr T optional<T>::value_or(U&& v) const&;
@@ -15,8 +16,6 @@
 #include <type_traits>
 #include <cassert>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 struct Y
@@ -37,11 +36,8 @@
         {return x.i_ == y.i_;}
 };
 
-#endif  // _LIBCPP_STD_VER > 11
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     {
         constexpr optional<X> opt(2);
         constexpr Y y(3);
@@ -78,5 +74,4 @@
         const optional<X> opt;
         assert(opt.value_or(Y(3)) == 4);
     }
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.object/optional.object.swap/swap.pass.cpp b/libcxx/test/std/experimental/optional/optional.object/optional.object.swap/swap.pass.cpp
index d24a2d0..620dda1 100644
--- a/libcxx/test/std/experimental/optional/optional.object/optional.object.swap/swap.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/optional.object.swap/swap.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // XFAIL: libcpp-no-exceptions
 // <optional>
 
@@ -18,8 +19,6 @@
 #include <type_traits>
 #include <cassert>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 class X
@@ -63,12 +62,8 @@
     friend void swap(Z& x, Z& y) {throw 6;}
 };
 
-
-#endif  // _LIBCPP_STD_VER > 11
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     {
         optional<int> opt1;
         optional<int> opt2;
@@ -303,5 +298,4 @@
         assert(static_cast<bool>(opt2) == true);
         assert(*opt2 == 2);
     }
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.object/optional_const_void.fail.cpp b/libcxx/test/std/experimental/optional/optional.object/optional_const_void.fail.cpp
index 6999cf2..02c0a3a 100644
--- a/libcxx/test/std/experimental/optional/optional.object/optional_const_void.fail.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/optional_const_void.fail.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // T shall be an object type and shall satisfy the requirements of Destructible
@@ -15,11 +16,7 @@
 
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     using std::experimental::optional;
 
     optional<const void> opt;
-#else
-#error
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.object/optional_not_destructible.fail.cpp b/libcxx/test/std/experimental/optional/optional.object/optional_not_destructible.fail.cpp
index 61470af..da8bd05 100644
--- a/libcxx/test/std/experimental/optional/optional.object/optional_not_destructible.fail.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/optional_not_destructible.fail.cpp
@@ -7,14 +7,13 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // T shall be an object type and shall satisfy the requirements of Destructible
 
 #include <experimental/optional>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 struct X
@@ -23,13 +22,7 @@
     ~X() {}
 };
 
-#endif  // _LIBCPP_STD_VER > 11
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     optional<X> opt;
-#else
-#error
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.object/optional_not_noexcept_destructible.fail.cpp b/libcxx/test/std/experimental/optional/optional.object/optional_not_noexcept_destructible.fail.cpp
index eaee020..7aa179a 100644
--- a/libcxx/test/std/experimental/optional/optional.object/optional_not_noexcept_destructible.fail.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/optional_not_noexcept_destructible.fail.cpp
@@ -7,14 +7,13 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // T shall be an object type and shall satisfy the requirements of Destructible
 
 #include <experimental/optional>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 struct X
@@ -22,13 +21,7 @@
     ~X() noexcept(false) {}
 };
 
-#endif  // _LIBCPP_STD_VER > 11
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     optional<X> opt;
-#else
-#error
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.object/optional_void.fail.cpp b/libcxx/test/std/experimental/optional/optional.object/optional_void.fail.cpp
index f911e9a..73f689c 100644
--- a/libcxx/test/std/experimental/optional/optional.object/optional_void.fail.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/optional_void.fail.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // T shall be an object type and shall satisfy the requirements of Destructible
@@ -15,11 +16,7 @@
 
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     using std::experimental::optional;
 
     optional<void> opt;
-#else
-#error
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.object/types.pass.cpp b/libcxx/test/std/experimental/optional/optional.object/types.pass.cpp
index 8b9ad2e..af8da2d 100644
--- a/libcxx/test/std/experimental/optional/optional.object/types.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/types.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // template <class T>
@@ -19,8 +20,6 @@
 #include <experimental/optional>
 #include <type_traits>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 template <class Opt, class T>
@@ -30,14 +29,10 @@
     static_assert(std::is_same<typename Opt::value_type, T>::value, "");
 }
 
-#endif  // _LIBCPP_STD_VER > 11
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     test<optional<int>, int>();
     test<optional<const int>, const int>();
     test<optional<double>, double>();
     test<optional<const double>, const double>();
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.relops/equal.pass.cpp b/libcxx/test/std/experimental/optional/optional.relops/equal.pass.cpp
index 03b9d3f..230ce44 100644
--- a/libcxx/test/std/experimental/optional/optional.relops/equal.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.relops/equal.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // template <class T> constexpr bool operator==(const optional<T>& x, const optional<T>& y);
@@ -15,8 +16,6 @@
 #include <type_traits>
 #include <cassert>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 struct X
@@ -29,11 +28,8 @@
 constexpr bool operator == ( const X &lhs, const X &rhs )
     { return lhs.i_ == rhs.i_ ; }
     
-#endif
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     {
     typedef X T;
     typedef optional<T> O;
@@ -75,5 +71,4 @@
     static_assert (   o5 == o5 , "" );
 
     }
-#endif
 }
diff --git a/libcxx/test/std/experimental/optional/optional.relops/greater_equal.pass.cpp b/libcxx/test/std/experimental/optional/optional.relops/greater_equal.pass.cpp
index 98d6855..49afd2a 100644
--- a/libcxx/test/std/experimental/optional/optional.relops/greater_equal.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.relops/greater_equal.pass.cpp
@@ -7,14 +7,13 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // template <class T> constexpr bool operator>= (const optional<T>& x, const optional<T>& y);
 
 #include <experimental/optional>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 struct X
@@ -27,11 +26,8 @@
 constexpr bool operator < ( const X &lhs, const X &rhs )
     { return lhs.i_ < rhs.i_ ; }
 
-#endif
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     {
     typedef optional<X> O;
     
@@ -71,5 +67,4 @@
     static_assert ( !(o5 >= o4), "" );
     static_assert (  (o5 >= o5), "" );
     }
-#endif
 }
diff --git a/libcxx/test/std/experimental/optional/optional.relops/greater_than.pass.cpp b/libcxx/test/std/experimental/optional/optional.relops/greater_than.pass.cpp
index d51bd4f..6b6dd16 100644
--- a/libcxx/test/std/experimental/optional/optional.relops/greater_than.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.relops/greater_than.pass.cpp
@@ -7,14 +7,13 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // template <class T> constexpr bool operator> (const optional<T>& x, const optional<T>& y);
 
 #include <experimental/optional>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 struct X
@@ -27,11 +26,8 @@
 constexpr bool operator < ( const X &lhs, const X &rhs )
     { return lhs.i_ < rhs.i_ ; }
 
-#endif
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     {
     typedef optional<X> O;
     
@@ -71,5 +67,4 @@
     static_assert ( !(o5 > o4), "" );
     static_assert ( !(o5 > o5), "" );
     }
-#endif
 }
diff --git a/libcxx/test/std/experimental/optional/optional.relops/less_equal.pass.cpp b/libcxx/test/std/experimental/optional/optional.relops/less_equal.pass.cpp
index 326f3a8..904dedf 100644
--- a/libcxx/test/std/experimental/optional/optional.relops/less_equal.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.relops/less_equal.pass.cpp
@@ -7,14 +7,13 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // template <class T> constexpr bool operator<= (const optional<T>& x, const optional<T>& y);
 
 #include <experimental/optional>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 struct X
@@ -27,11 +26,8 @@
 constexpr bool operator < ( const X &lhs, const X &rhs )
     { return lhs.i_ < rhs.i_ ; }
 
-#endif
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     {
     typedef optional<X> O;
     
@@ -71,5 +67,4 @@
     static_assert (  (o5 <= o4), "" );
     static_assert (  (o5 <= o5), "" );
     }
-#endif
 }
diff --git a/libcxx/test/std/experimental/optional/optional.relops/less_than.pass.cpp b/libcxx/test/std/experimental/optional/optional.relops/less_than.pass.cpp
index 37f7e19..9affee1 100644
--- a/libcxx/test/std/experimental/optional/optional.relops/less_than.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.relops/less_than.pass.cpp
@@ -7,14 +7,13 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // template <class T> constexpr bool operator< (const optional<T>& x, const optional<T>& y);
 
 #include <experimental/optional>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 struct X
@@ -27,11 +26,8 @@
 constexpr bool operator < ( const X &lhs, const X &rhs )
     { return lhs.i_ < rhs.i_ ; }
 
-#endif
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     {
     typedef optional<X> O;
     
@@ -71,5 +67,4 @@
     static_assert (  (o5 < o4), "" );
     static_assert ( !(o5 < o5), "" );
     }
-#endif
 }
diff --git a/libcxx/test/std/experimental/optional/optional.relops/not_equal.pass.cpp b/libcxx/test/std/experimental/optional/optional.relops/not_equal.pass.cpp
index f386c7e..864c808 100644
--- a/libcxx/test/std/experimental/optional/optional.relops/not_equal.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.relops/not_equal.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // template <class T> constexpr bool operator!=(const optional<T>& x, const optional<T>& y);
@@ -15,8 +16,6 @@
 #include <type_traits>
 #include <cassert>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 struct X
@@ -29,11 +28,8 @@
 constexpr bool operator == ( const X &lhs, const X &rhs )
     { return lhs.i_ == rhs.i_ ; }
     
-#endif
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     {
     typedef X T;
     typedef optional<T> O;
@@ -75,5 +71,4 @@
     static_assert ( !(o5 != o5), "" );
 
     }
-#endif
 }
diff --git a/libcxx/test/std/experimental/optional/optional.specalg/make_optional.pass.cpp b/libcxx/test/std/experimental/optional/optional.specalg/make_optional.pass.cpp
index cc95e61..7f5ffea 100644
--- a/libcxx/test/std/experimental/optional/optional.specalg/make_optional.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.specalg/make_optional.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // template <class T>
@@ -21,7 +22,6 @@
 
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     using std::experimental::optional;
     using std::experimental::make_optional;
 
@@ -46,5 +46,4 @@
         assert(**opt == 3);
         assert(s == nullptr);
     }
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.specalg/swap.pass.cpp b/libcxx/test/std/experimental/optional/optional.specalg/swap.pass.cpp
index 6c5f7b0..d339c53 100644
--- a/libcxx/test/std/experimental/optional/optional.specalg/swap.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.specalg/swap.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // XFAIL: libcpp-no-exceptions
 // <optional>
 
@@ -17,8 +18,6 @@
 #include <type_traits>
 #include <cassert>
 
-#if _LIBCPP_STD_VER > 11
-
 using std::experimental::optional;
 
 class X
@@ -62,12 +61,8 @@
     friend void swap(Z& x, Z& y) {throw 6;}
 };
 
-
-#endif  // _LIBCPP_STD_VER > 11
-
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     {
         optional<int> opt1;
         optional<int> opt2;
@@ -302,5 +297,4 @@
         assert(static_cast<bool>(opt2) == true);
         assert(*opt2 == 2);
     }
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.syn/optional_const_in_place_t.fail.cpp b/libcxx/test/std/experimental/optional/optional.syn/optional_const_in_place_t.fail.cpp
index 60836ae..bdf01eb 100644
--- a/libcxx/test/std/experimental/optional/optional.syn/optional_const_in_place_t.fail.cpp
+++ b/libcxx/test/std/experimental/optional/optional.syn/optional_const_in_place_t.fail.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // A program that necessitates the instantiation of template optional for
@@ -16,13 +17,9 @@
 
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     using std::experimental::optional;
     using std::experimental::in_place_t;
     using std::experimental::in_place;
 
     optional<const in_place_t> opt;
-#else
-#error
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.syn/optional_const_lvalue_ref.fail.cpp b/libcxx/test/std/experimental/optional/optional.syn/optional_const_lvalue_ref.fail.cpp
index 9a4ba1a..61393c1 100644
--- a/libcxx/test/std/experimental/optional/optional.syn/optional_const_lvalue_ref.fail.cpp
+++ b/libcxx/test/std/experimental/optional/optional.syn/optional_const_lvalue_ref.fail.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // A program that necessitates the instantiation of template optional for a
@@ -16,11 +17,7 @@
 
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     using std::experimental::optional;
 
     optional<const int&> opt;
-#else
-#error
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.syn/optional_const_nullopt_t.fail.cpp b/libcxx/test/std/experimental/optional/optional.syn/optional_const_nullopt_t.fail.cpp
index f6220bd..fb695d2 100644
--- a/libcxx/test/std/experimental/optional/optional.syn/optional_const_nullopt_t.fail.cpp
+++ b/libcxx/test/std/experimental/optional/optional.syn/optional_const_nullopt_t.fail.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // A program that necessitates the instantiation of template optional for
@@ -16,13 +17,9 @@
 
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     using std::experimental::optional;
     using std::experimental::nullopt_t;
     using std::experimental::nullopt;
 
     optional<const nullopt_t> opt;
-#else
-#error
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.syn/optional_in_place_t.fail.cpp b/libcxx/test/std/experimental/optional/optional.syn/optional_in_place_t.fail.cpp
index 12f291f..47c2be7 100644
--- a/libcxx/test/std/experimental/optional/optional.syn/optional_in_place_t.fail.cpp
+++ b/libcxx/test/std/experimental/optional/optional.syn/optional_in_place_t.fail.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // A program that necessitates the instantiation of template optional for
@@ -16,13 +17,9 @@
 
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     using std::experimental::optional;
     using std::experimental::in_place_t;
     using std::experimental::in_place;
 
     optional<in_place_t> opt;
-#else
-#error
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.syn/optional_includes_initializer_list.pass.cpp b/libcxx/test/std/experimental/optional/optional.syn/optional_includes_initializer_list.pass.cpp
index 7e6697f..8cf11b5 100644
--- a/libcxx/test/std/experimental/optional/optional.syn/optional_includes_initializer_list.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.syn/optional_includes_initializer_list.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // #include <initializer_list>
@@ -15,9 +16,7 @@
 
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     using std::experimental::optional;
 
     std::initializer_list<int> list;
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.syn/optional_lvalue_ref.fail.cpp b/libcxx/test/std/experimental/optional/optional.syn/optional_lvalue_ref.fail.cpp
index 850df34..de2f189 100644
--- a/libcxx/test/std/experimental/optional/optional.syn/optional_lvalue_ref.fail.cpp
+++ b/libcxx/test/std/experimental/optional/optional.syn/optional_lvalue_ref.fail.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // A program that necessitates the instantiation of template optional for a
@@ -16,11 +17,7 @@
 
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     using std::experimental::optional;
 
     optional<int&> opt;
-#else
-#error
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.syn/optional_nullopt_t.fail.cpp b/libcxx/test/std/experimental/optional/optional.syn/optional_nullopt_t.fail.cpp
index 20955ac..9b62c9b 100644
--- a/libcxx/test/std/experimental/optional/optional.syn/optional_nullopt_t.fail.cpp
+++ b/libcxx/test/std/experimental/optional/optional.syn/optional_nullopt_t.fail.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // A program that necessitates the instantiation of template optional for
@@ -16,13 +17,9 @@
 
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     using std::experimental::optional;
     using std::experimental::nullopt_t;
     using std::experimental::nullopt;
 
     optional<nullopt_t> opt;
-#else
-#error
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/optional/optional.syn/optional_rvalue_ref.fail.cpp b/libcxx/test/std/experimental/optional/optional.syn/optional_rvalue_ref.fail.cpp
index d773e99..fd6da18 100644
--- a/libcxx/test/std/experimental/optional/optional.syn/optional_rvalue_ref.fail.cpp
+++ b/libcxx/test/std/experimental/optional/optional.syn/optional_rvalue_ref.fail.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <optional>
 
 // A program that necessitates the instantiation of template optional for a
@@ -16,11 +17,7 @@
 
 int main()
 {
-#if _LIBCPP_STD_VER > 11
     using std::experimental::optional;
 
     optional<int&&> opt;
-#else
-#error
-#endif  // _LIBCPP_STD_VER > 11
 }
diff --git a/libcxx/test/std/experimental/string.view/string.view.comparison/opeq.string_view.string.pass.cpp b/libcxx/test/std/experimental/string.view/string.view.comparison/opeq.string_view.string.pass.cpp
index 23a2aef..c2227cf 100644
--- a/libcxx/test/std/experimental/string.view/string.view.comparison/opeq.string_view.string.pass.cpp
+++ b/libcxx/test/std/experimental/string.view/string.view.comparison/opeq.string_view.string.pass.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <string>
 
 // template<class charT, class traits, class Allocator>
@@ -17,8 +18,6 @@
 #include <experimental/string_view>
 #include <cassert>
 
-#if _LIBCPP_STD_VER > 11
-
 template <class S>
 void
 test(const std::string &lhs, S rhs, bool x)
@@ -49,6 +48,4 @@
     test("abcdefghijklmnopqrst", S("abcdefghijklmnopqrst"), true);
     }
 }
-#else
-int main () {}
-#endif
+
diff --git a/libcxx/test/std/experimental/utilities/meta/meta.type.synop/includes.pass.cpp b/libcxx/test/std/experimental/utilities/meta/meta.type.synop/includes.pass.cpp
index 2c90dd6..ddc82cb 100644
--- a/libcxx/test/std/experimental/utilities/meta/meta.type.synop/includes.pass.cpp
+++ b/libcxx/test/std/experimental/utilities/meta/meta.type.synop/includes.pass.cpp
@@ -7,14 +7,13 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <experimental/type_traits>
 
 #include <experimental/type_traits>
 
-#if _LIBCPP_STD_VER > 11
-# ifndef _LIBCPP_TYPE_TRAITS
-#   error "<experimental/type_traits> must include <type_traits>"
-# endif
+#ifndef _LIBCPP_TYPE_TRAITS
+#  error "<experimental/type_traits> must include <type_traits>"
 #endif
 
 int main()
diff --git a/libcxx/test/std/experimental/utilities/meta/meta.type.synop/meta.rel.pass.cpp b/libcxx/test/std/experimental/utilities/meta/meta.type.synop/meta.rel.pass.cpp
index 96af4b6..8edc917 100644
--- a/libcxx/test/std/experimental/utilities/meta/meta.type.synop/meta.rel.pass.cpp
+++ b/libcxx/test/std/experimental/utilities/meta/meta.type.synop/meta.rel.pass.cpp
@@ -7,12 +7,11 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <experimental/type_traits>
 
 #include <experimental/type_traits>
 
-#if _LIBCPP_STD_VER > 11
-
 namespace ex = std::experimental;
 
 struct base_type {};
@@ -60,6 +59,4 @@
         static_assert(ex::is_convertible_v<T, U> == std::is_convertible<T, U>::value, "");
     }
 }
-#else /* _LIBCPP_STD_VER <= 11 */
-int main() {}
-#endif /* _LIBCPP_STD_VER > 11 */
+
diff --git a/libcxx/test/std/experimental/utilities/meta/meta.type.synop/meta.unary.cat.pass.cpp b/libcxx/test/std/experimental/utilities/meta/meta.type.synop/meta.unary.cat.pass.cpp
index 2d1e706..a4a91c13 100644
--- a/libcxx/test/std/experimental/utilities/meta/meta.type.synop/meta.unary.cat.pass.cpp
+++ b/libcxx/test/std/experimental/utilities/meta/meta.type.synop/meta.unary.cat.pass.cpp
@@ -7,12 +7,11 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <experimental/type_traits>
 
 #include <experimental/type_traits>
 
-#if _LIBCPP_STD_VER > 11
-
 namespace ex = std::experimental;
 
 struct class_type {};
@@ -176,6 +175,4 @@
         static_assert(ex::is_function_v<T> == std::is_function<T>::value, "");
     }
 }
-#else /* _LIBCPP_STD_VER <= 11 */
-int main() {}
-#endif /* _LIBCPP_STD_VER > 11 */
+
diff --git a/libcxx/test/std/experimental/utilities/meta/meta.type.synop/meta.unary.comp.pass.cpp b/libcxx/test/std/experimental/utilities/meta/meta.type.synop/meta.unary.comp.pass.cpp
index 814f450..b3927b1 100644
--- a/libcxx/test/std/experimental/utilities/meta/meta.type.synop/meta.unary.comp.pass.cpp
+++ b/libcxx/test/std/experimental/utilities/meta/meta.type.synop/meta.unary.comp.pass.cpp
@@ -7,12 +7,11 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <experimental/type_traits>
 
 #include <experimental/type_traits>
 
-#if _LIBCPP_STD_VER > 11
-
 namespace ex = std::experimental;
 
 struct class_type {};
@@ -97,6 +96,4 @@
         static_assert(ex::is_member_pointer_v<T> == std::is_member_pointer<T>::value, "");
     }
 }
-#else /* _LIBCPP_STD_VER <= 11 */
-int main() {}
-#endif /* _LIBCPP_STD_VER > 11 */
+
diff --git a/libcxx/test/std/experimental/utilities/meta/meta.type.synop/meta.unary.prop.pass.cpp b/libcxx/test/std/experimental/utilities/meta/meta.type.synop/meta.unary.prop.pass.cpp
index 41cb27f..e267c68 100644
--- a/libcxx/test/std/experimental/utilities/meta/meta.type.synop/meta.unary.prop.pass.cpp
+++ b/libcxx/test/std/experimental/utilities/meta/meta.type.synop/meta.unary.prop.pass.cpp
@@ -7,12 +7,11 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <experimental/type_traits>
 
 #include <experimental/type_traits>
 
-#if _LIBCPP_STD_VER > 11
-
 namespace ex = std::experimental;
 
 struct non_literal_type { non_literal_type() {} };
@@ -484,6 +483,4 @@
         static_assert(ex::has_virtual_destructor_v<T> == std::has_virtual_destructor<T>::value, "");
     }
 }
-#else /* _LIBCPP_STD_VER <= 11 */
-int main() {}
-#endif /* _LIBCPP_STD_VER > 11 */
+
diff --git a/libcxx/test/std/experimental/utilities/meta/meta.type.synop/meta.unary.prop.query.pass.cpp b/libcxx/test/std/experimental/utilities/meta/meta.type.synop/meta.unary.prop.query.pass.cpp
index aedd369..f91667d 100644
--- a/libcxx/test/std/experimental/utilities/meta/meta.type.synop/meta.unary.prop.query.pass.cpp
+++ b/libcxx/test/std/experimental/utilities/meta/meta.type.synop/meta.unary.prop.query.pass.cpp
@@ -7,12 +7,11 @@
 //
 //===----------------------------------------------------------------------===//
 
+// UNSUPPORTED: c++98, c++03, c++11
 // <experimental/type_traits>
 
 #include <experimental/type_traits>
 
-#if _LIBCPP_STD_VER > 11
-
 namespace ex = std::experimental;
 
 int main()
@@ -61,6 +60,3 @@
         static_assert(ex::extent_v<T, 0> == std::extent<T, 0>::value, "");
     }
 }
-#else /* _LIBCPP_STD_VER <= 11 */
-int main() {}
-#endif /* _LIBCPP_STD_VER > 11 */