- with_system_cxx_lib=macosx
- with_system_cxx_lib=macosx10.12
- with_system_cxx_lib=x86_64-apple-macosx10.12
- - availability=macosx
- - availability=macosx10.12
These features are used to XFAIL a test that fails when deployed on (or is
compiled for) an older system. For example, if the test exhibits a bug in the
--- /dev/null
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+// Make sure we get compile-time availability errors when trying to use aligned
+// allocation/deallocation on deployment targets that don't support it.
+
+// UNSUPPORTED: c++03, c++11, c++14
+
+// Aligned allocation was not provided before macosx10.14.
+// Support for that is broken prior to Clang 8 and Apple Clang 11.
+// UNSUPPORTED: apple-clang-9, apple-clang-10
+// UNSUPPORTED: clang-5, clang-6, clang-7
+
+// REQUIRES: with_system_cxx_lib=macosx10.13 || \
+// REQUIRES: with_system_cxx_lib=macosx10.12 || \
+// REQUIRES: with_system_cxx_lib=macosx10.11 || \
+// REQUIRES: with_system_cxx_lib=macosx10.10 || \
+// REQUIRES: with_system_cxx_lib=macosx10.9
+
+#include <new>
+#include <cstddef>
+
+#include "test_macros.h"
+
+constexpr auto OverAligned = __STDCPP_DEFAULT_NEW_ALIGNMENT__ * 2;
+
+struct alignas(OverAligned) A { };
+
+int main(int, char**)
+{
+ // Normal versions
+ {
+ A *a1 = new A; // expected-error-re {{aligned allocation function of type {{.+}} is only available on}}
+ // `delete` is also required by the line above if construction fails
+ // expected-error-re@-2 {{aligned deallocation function of type {{.+}} is only available on}}
+
+ delete a1; // expected-error-re {{aligned deallocation function of type {{.+}} is only available on}}
+
+ A* a2 = new(std::nothrow) A; // expected-error-re {{aligned allocation function of type {{.+}} is only available on}}
+ // `delete` is also required above for the same reason
+ // expected-error-re@-2 {{aligned deallocation function of type {{.+}} is only available on}}
+ }
+
+ // Array versions
+ {
+ A *a1 = new A[2]; // expected-error-re {{aligned allocation function of type {{.+}} is only available on}}
+ // `delete` is also required by the line above if construction fails
+ // expected-error-re@-2 {{aligned deallocation function of type {{.+}} is only available on}}
+
+ delete[] a1; // expected-error-re {{aligned deallocation function of type {{.+}} is only available on}}
+
+ A* a2 = new(std::nothrow) A[2]; // expected-error-re {{aligned allocation function of type {{.+}} is only available on}}
+ // `delete` is also required above for the same reason
+ // expected-error-re@-2 {{aligned deallocation function of type {{.+}} is only available on}}
+ }
+}
// XFAIL: with_system_cxx_lib=macosx10.10
// XFAIL: with_system_cxx_lib=macosx10.9
-// The test will fail on deployment targets that do not support sized deallocation.
-// XFAIL: availability=macosx10.11
-// XFAIL: availability=macosx10.10
-// XFAIL: availability=macosx10.9
-
// AppleClang < 10 incorrectly warns that aligned allocation is not supported
// even when it is supported.
// UNSUPPORTED: apple-clang-9
// GCC 5 doesn't support aligned allocation
// UNSUPPORTED: gcc-5
-// XFAIL: availability=macosx10.13
-// XFAIL: availability=macosx10.12
-// XFAIL: availability=macosx10.11
-// XFAIL: availability=macosx10.10
-// XFAIL: availability=macosx10.9
+// XFAIL: with_system_cxx_lib=macosx10.13
+// XFAIL: with_system_cxx_lib=macosx10.12
+// XFAIL: with_system_cxx_lib=macosx10.11
+// XFAIL: with_system_cxx_lib=macosx10.10
+// XFAIL: with_system_cxx_lib=macosx10.9
#include <new>
#ifdef _LIBCPP_HAS_NO_ALIGNED_ALLOCATION
# error "libc++ should have aligned allocation in C++17 and up when targeting a platform that supports it"
#endif
-
-int main(int, char**) {
- return 0;
-}
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11
-// REQUIRES: with_system_cxx_lib=macosx
-// REQUIRES: availability=macosx10.9 || availability=macosx10.10 || availability=macosx10.11 || availability=macosx10.12 || availability=macosx10.13 || availability=macosx10.14 || availability=macosx10.15
+// REQUIRES: with_system_cxx_lib=macosx10.9 || \
+// REQUIRES: with_system_cxx_lib=macosx10.10 || \
+// REQUIRES: with_system_cxx_lib=macosx10.11 || \
+// REQUIRES: with_system_cxx_lib=macosx10.12 || \
+// REQUIRES: with_system_cxx_lib=macosx10.13 || \
+// REQUIRES: with_system_cxx_lib=macosx10.14 || \
+// REQUIRES: with_system_cxx_lib=macosx10.15
// Test the availability markup on the C++20 Synchronization Library
// additions to <atomic>.
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11
-// REQUIRES: with_system_cxx_lib=macosx
-// REQUIRES: availability=macosx10.9 || availability=macosx10.10 || availability=macosx10.11 || availability=macosx10.12 || availability=macosx10.13 || availability=macosx10.14 || availability=macosx10.15
+// REQUIRES: with_system_cxx_lib=macosx10.9 || \
+// REQUIRES: with_system_cxx_lib=macosx10.10 || \
+// REQUIRES: with_system_cxx_lib=macosx10.11 || \
+// REQUIRES: with_system_cxx_lib=macosx10.12 || \
+// REQUIRES: with_system_cxx_lib=macosx10.13 || \
+// REQUIRES: with_system_cxx_lib=macosx10.14 || \
+// REQUIRES: with_system_cxx_lib=macosx10.15
// Test the availability markup on std::barrier.
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11
-// REQUIRES: with_system_cxx_lib=macosx
-// REQUIRES: availability=macosx10.9 || availability=macosx10.10 || availability=macosx10.11 || availability=macosx10.12 || availability=macosx10.13 || availability=macosx10.14 || availability=macosx10.15
+// REQUIRES: with_system_cxx_lib=macosx10.9 || \
+// REQUIRES: with_system_cxx_lib=macosx10.10 || \
+// REQUIRES: with_system_cxx_lib=macosx10.11 || \
+// REQUIRES: with_system_cxx_lib=macosx10.12 || \
+// REQUIRES: with_system_cxx_lib=macosx10.13 || \
+// REQUIRES: with_system_cxx_lib=macosx10.14 || \
+// REQUIRES: with_system_cxx_lib=macosx10.15
// Test the availability markup on std::latch.
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11
-// REQUIRES: with_system_cxx_lib=macosx
-// REQUIRES: availability=macosx10.9 || availability=macosx10.10 || availability=macosx10.11 || availability=macosx10.12 || availability=macosx10.13 || availability=macosx10.14 || availability=macosx10.15
+// REQUIRES: with_system_cxx_lib=macosx10.9 || \
+// REQUIRES: with_system_cxx_lib=macosx10.10 || \
+// REQUIRES: with_system_cxx_lib=macosx10.11 || \
+// REQUIRES: with_system_cxx_lib=macosx10.12 || \
+// REQUIRES: with_system_cxx_lib=macosx10.13 || \
+// REQUIRES: with_system_cxx_lib=macosx10.14 || \
+// REQUIRES: with_system_cxx_lib=macosx10.15
// Test the availability markup on std::counting_semaphore and std::binary_semaphore.
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03
-// REQUIRES: with_system_cxx_lib=macosx
-// REQUIRES: availability=macosx10.9 || availability=macosx10.10 || availability=macosx10.11 || availability=macosx10.12 || availability=macosx10.13 || availability=macosx10.14
+// REQUIRES: with_system_cxx_lib=macosx10.9 || \
+// REQUIRES: with_system_cxx_lib=macosx10.10 || \
+// REQUIRES: with_system_cxx_lib=macosx10.11 || \
+// REQUIRES: with_system_cxx_lib=macosx10.12 || \
+// REQUIRES: with_system_cxx_lib=macosx10.13 || \
+// REQUIRES: with_system_cxx_lib=macosx10.14
// Test the availability markup on std::to_chars.
// Aligned allocation was not provided before macosx10.14 and as a result we
// get availability errors when the deployment target is older than macosx10.14.
-// However, AppleClang 10 (and older) don't trigger availability errors, and
-// Clang < 8.0 doesn't warn for 10.13.
-// XFAIL: !(apple-clang-9 || apple-clang-10 || clang-7) && availability=macosx10.13
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.12
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.11
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.10
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.9
-
-// On AppleClang 10 (and older), instead of getting an availability failure
-// like above, we get a link error when we link against a dylib that does
-// not export the aligned allocation functions.
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.12
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.11
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.10
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.9
+// However, support for that was broken prior to Clang 8 and AppleClang 11.
+// UNSUPPORTED: apple-clang-9, apple-clang-10
+// UNSUPPORTED: clang-5, clang-6, clang-7
+// XFAIL: with_system_cxx_lib=macosx10.13
+// XFAIL: with_system_cxx_lib=macosx10.12
+// XFAIL: with_system_cxx_lib=macosx10.11
+// XFAIL: with_system_cxx_lib=macosx10.10
+// XFAIL: with_system_cxx_lib=macosx10.9
// On Windows libc++ doesn't provide its own definitions for new/delete
// but instead depends on the ones in VCRuntime. However VCRuntime does not
// Aligned allocation was not provided before macosx10.14 and as a result we
// get availability errors when the deployment target is older than macosx10.14.
-// However, AppleClang 10 (and older) don't trigger availability errors, and
-// Clang < 8.0 doesn't warn for 10.13.
-// XFAIL: !(apple-clang-9 || apple-clang-10 || clang-7) && availability=macosx10.13
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.12
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.11
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.10
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.9
-
-// On AppleClang 10 (and older), instead of getting an availability failure
-// like above, we get a link error when we link against a dylib that does
-// not export the aligned allocation functions.
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.12
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.11
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.10
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.9
+// However, support for that was broken prior to Clang 8 and AppleClang 11.
+// UNSUPPORTED: apple-clang-9, apple-clang-10
+// UNSUPPORTED: clang-5, clang-6, clang-7
+// XFAIL: with_system_cxx_lib=macosx10.13
+// XFAIL: with_system_cxx_lib=macosx10.12
+// XFAIL: with_system_cxx_lib=macosx10.11
+// XFAIL: with_system_cxx_lib=macosx10.10
+// XFAIL: with_system_cxx_lib=macosx10.9
// On Windows libc++ doesn't provide its own definitions for new/delete
// but instead depends on the ones in VCRuntime. However VCRuntime does not
// Aligned allocation was not provided before macosx10.14 and as a result we
// get availability errors when the deployment target is older than macosx10.14.
-// However, AppleClang 10 (and older) don't trigger availability errors, and
-// Clang < 8.0 doesn't warn for 10.13.
-// XFAIL: !(apple-clang-9 || apple-clang-10 || clang-7) && availability=macosx10.13
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.12
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.11
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.10
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.9
-
-// On AppleClang 10 (and older), instead of getting an availability failure
-// like above, we get a link error when we link against a dylib that does
-// not export the aligned allocation functions.
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.12
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.11
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.10
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.9
+// However, support for that was broken prior to Clang 8 and AppleClang 11.
+// UNSUPPORTED: apple-clang-9, apple-clang-10
+// UNSUPPORTED: clang-5, clang-6, clang-7
+// XFAIL: with_system_cxx_lib=macosx10.13
+// XFAIL: with_system_cxx_lib=macosx10.12
+// XFAIL: with_system_cxx_lib=macosx10.11
+// XFAIL: with_system_cxx_lib=macosx10.10
+// XFAIL: with_system_cxx_lib=macosx10.9
// On Windows libc++ doesn't provide its own definitions for new/delete
// but instead depends on the ones in VCRuntime. However VCRuntime does not
// Aligned allocation was not provided before macosx10.14 and as a result we
// get availability errors when the deployment target is older than macosx10.14.
-// However, AppleClang 10 (and older) don't trigger availability errors, and
-// Clang < 8.0 doesn't warn for 10.13.
-// XFAIL: !(apple-clang-9 || apple-clang-10 || clang-7) && availability=macosx10.13
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.12
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.11
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.10
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.9
-
-// On AppleClang 10 (and older), instead of getting an availability failure
-// like above, we get a link error when we link against a dylib that does
-// not export the aligned allocation functions.
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.12
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.11
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.10
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.9
+// However, support for that was broken prior to Clang 8 and AppleClang 11.
+// UNSUPPORTED: apple-clang-9, apple-clang-10
+// UNSUPPORTED: clang-5, clang-6, clang-7
+// XFAIL: with_system_cxx_lib=macosx10.13
+// XFAIL: with_system_cxx_lib=macosx10.12
+// XFAIL: with_system_cxx_lib=macosx10.11
+// XFAIL: with_system_cxx_lib=macosx10.10
+// XFAIL: with_system_cxx_lib=macosx10.9
// On Windows libc++ doesn't provide its own definitions for new/delete
// but instead depends on the ones in VCRuntime. However VCRuntime does not
// when sized deallocation is not supported, e.g., prior to C++14.
// UNSUPPORTED: sanitizer-new-delete
-// XFAIL: availability=macosx10.11
-// XFAIL: availability=macosx10.10
-// XFAIL: availability=macosx10.9
+// XFAIL: with_system_cxx_lib=macosx10.11
+// XFAIL: with_system_cxx_lib=macosx10.10
+// XFAIL: with_system_cxx_lib=macosx10.9
-
-// NOTE: Only clang-3.7 and GCC 5.1 and greater support -fsized-deallocation.
// REQUIRES: -fsized-deallocation
// ADDITIONAL_COMPILE_FLAGS: -fsized-deallocation
// Aligned allocation was not provided before macosx10.14 and as a result we
// get availability errors when the deployment target is older than macosx10.14.
-// However, AppleClang 10 (and older) don't trigger availability errors, and
-// Clang < 8.0 doesn't warn for 10.13
-// XFAIL: !(apple-clang-9 || apple-clang-10 || clang-7) && availability=macosx10.13
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.12
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.11
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.10
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.9
-
-// On AppleClang 10 (and older), instead of getting an availability failure
-// like above, we get a link error when we link against a dylib that does
-// not export the aligned allocation functions.
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.12
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.11
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.10
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.9
+// However, support for that was broken prior to Clang 8 and AppleClang 11.
+// UNSUPPORTED: apple-clang-9, apple-clang-10
+// UNSUPPORTED: clang-5, clang-6, clang-7
+// XFAIL: with_system_cxx_lib=macosx10.13
+// XFAIL: with_system_cxx_lib=macosx10.12
+// XFAIL: with_system_cxx_lib=macosx10.11
+// XFAIL: with_system_cxx_lib=macosx10.10
+// XFAIL: with_system_cxx_lib=macosx10.9
// On Windows libc++ doesn't provide its own definitions for new/delete
// but instead depends on the ones in VCRuntime. However VCRuntime does not
// Aligned allocation was not provided before macosx10.14 and as a result we
// get availability errors when the deployment target is older than macosx10.14.
-// However, AppleClang 10 (and older) don't trigger availability errors, and
-// Clang < 8.0 doesn't warn for 10.13.
-// XFAIL: !(apple-clang-9 || apple-clang-10 || clang-7) && availability=macosx10.13
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.12
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.11
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.10
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.9
-
-// On AppleClang 10 (and older), instead of getting an availability failure
-// like above, we get a link error when we link against a dylib that does
-// not export the aligned allocation functions.
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.12
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.11
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.10
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.9
+// However, support for that was broken prior to Clang 8 and AppleClang 11.
+// UNSUPPORTED: apple-clang-9, apple-clang-10
+// UNSUPPORTED: clang-5, clang-6, clang-7
+// XFAIL: with_system_cxx_lib=macosx10.13
+// XFAIL: with_system_cxx_lib=macosx10.12
+// XFAIL: with_system_cxx_lib=macosx10.11
+// XFAIL: with_system_cxx_lib=macosx10.10
+// XFAIL: with_system_cxx_lib=macosx10.9
// asan and msan will not call the new handler.
// UNSUPPORTED: sanitizer-new-delete
// Aligned allocation was not provided before macosx10.14 and as a result we
// get availability errors when the deployment target is older than macosx10.14.
-// However, AppleClang 10 (and older) don't trigger availability errors, and
-// Clang < 8.0 doesn't warn for 10.13
-// XFAIL: !(apple-clang-9 || apple-clang-10 || clang-7) && availability=macosx10.13
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.12
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.11
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.10
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.9
-
-// On AppleClang 10 (and older), instead of getting an availability failure
-// like above, we get a link error when we link against a dylib that does
-// not export the aligned allocation functions.
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.12
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.11
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.10
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.9
+// However, support for that was broken prior to Clang 8 and AppleClang 11.
+// UNSUPPORTED: apple-clang-9, apple-clang-10
+// UNSUPPORTED: clang-5, clang-6, clang-7
+// XFAIL: with_system_cxx_lib=macosx10.13
+// XFAIL: with_system_cxx_lib=macosx10.12
+// XFAIL: with_system_cxx_lib=macosx10.11
+// XFAIL: with_system_cxx_lib=macosx10.10
+// XFAIL: with_system_cxx_lib=macosx10.9
// asan and msan will not call the new handler.
// UNSUPPORTED: sanitizer-new-delete
// Aligned allocation was not provided before macosx10.14 and as a result we
// get availability errors when the deployment target is older than macosx10.14.
-// However, AppleClang 10 (and older) don't trigger availability errors, and
-// Clang < 8.0 doesn't warn for 10.13
-// XFAIL: !(apple-clang-9 || apple-clang-10 || clang-7) && availability=macosx10.13
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.12
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.11
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.10
-// XFAIL: !(apple-clang-9 || apple-clang-10) && availability=macosx10.9
-
-// On AppleClang 10 (and older), instead of getting an availability failure
-// like above, we get a link error when we link against a dylib that does
-// not export the aligned allocation functions.
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.12
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.11
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.10
-// XFAIL: (apple-clang-9 || apple-clang-10) && with_system_cxx_lib=macosx10.9
+// However, support for that was broken prior to Clang 8 and AppleClang 11.
+// UNSUPPORTED: apple-clang-9, apple-clang-10
+// UNSUPPORTED: clang-5, clang-6, clang-7
+// XFAIL: with_system_cxx_lib=macosx10.13
+// XFAIL: with_system_cxx_lib=macosx10.12
+// XFAIL: with_system_cxx_lib=macosx10.11
+// XFAIL: with_system_cxx_lib=macosx10.10
+// XFAIL: with_system_cxx_lib=macosx10.9
// On Windows libc++ doesn't provide its own definitions for new/delete
// but instead depends on the ones in VCRuntime. However VCRuntime does not
// when sized deallocation is not supported, e.g., prior to C++14.
// UNSUPPORTED: sanitizer-new-delete
-// XFAIL: availability=macosx10.11
-// XFAIL: availability=macosx10.10
-// XFAIL: availability=macosx10.9
+// XFAIL: with_system_cxx_lib=macosx10.11
+// XFAIL: with_system_cxx_lib=macosx10.10
+// XFAIL: with_system_cxx_lib=macosx10.9
// NOTE: Only clang-3.7 and GCC 5.1 and greater support -fsized-deallocation.
// REQUIRES: -fsized-deallocation
self.config.available_features.add('with_system_cxx_lib={}{}'.format(sysname, version))
self.config.available_features.add('with_system_cxx_lib={}'.format(sysname))
- self.config.available_features.add('availability={}'.format(sysname))
- self.config.available_features.add('availability={}{}'.format(sysname, version))
-
if self.target_info.is_windows():
if self.cxx_stdlib_under_test == 'libc++':
# LIBCXX-WINDOWS-FIXME is the feature name used to XFAIL the