diff options
| author | Mehdi Amini <joker.eph@gmail.com> | 2017-05-04 17:08:54 +0000 |
|---|---|---|
| committer | Mehdi Amini <joker.eph@gmail.com> | 2017-05-04 17:08:54 +0000 |
| commit | e9c66ad9fa9f1c1138c2a4868610e1d77271216c (patch) | |
| tree | 622d32e491f918b6603f83aabac0930f87f27d1d /libcxx/test/std/experimental | |
| parent | 93c68e11893e895a3f70b848c4f6589920c1d2e6 (diff) | |
| download | bcm5719-llvm-e9c66ad9fa9f1c1138c2a4868610e1d77271216c.tar.gz bcm5719-llvm-e9c66ad9fa9f1c1138c2a4868610e1d77271216c.zip | |
Add markup for libc++ dylib availability
Libc++ is used as a system library on macOS and iOS (amongst others). In order
for users to be able to compile a binary that is intended to be deployed to an
older version of the platform, clang provides the
availability attribute <https://clang.llvm.org/docs/AttributeReference.html#availability>_
that can be placed on declarations to describe the lifecycle of a symbol in the
library.
See docs/DesignDocs/AvailabilityMarkup.rst for more information.
Differential Revision: https://reviews.llvm.org/D31739
llvm-svn: 302172
Diffstat (limited to 'libcxx/test/std/experimental')
15 files changed, 90 insertions, 5 deletions
diff --git a/libcxx/test/std/experimental/any/any.class/any.assign/copy.pass.cpp b/libcxx/test/std/experimental/any/any.class/any.assign/copy.pass.cpp index 17b01fe630b..7140fab88fe 100644 --- a/libcxx/test/std/experimental/any/any.class/any.assign/copy.pass.cpp +++ b/libcxx/test/std/experimental/any/any.class/any.assign/copy.pass.cpp @@ -9,6 +9,13 @@ // UNSUPPORTED: c++98, c++03, c++11 +// 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 +// XFAIL: with_system_cxx_lib=macosx10.7 +// XFAIL: with_system_cxx_lib=macosx10.8 + // <experimental/any> // any& operator=(any const &); diff --git a/libcxx/test/std/experimental/any/any.class/any.assign/move.pass.cpp b/libcxx/test/std/experimental/any/any.class/any.assign/move.pass.cpp index 49508febd94..35fc56c24d3 100644 --- a/libcxx/test/std/experimental/any/any.class/any.assign/move.pass.cpp +++ b/libcxx/test/std/experimental/any/any.class/any.assign/move.pass.cpp @@ -9,6 +9,13 @@ // UNSUPPORTED: c++98, c++03, c++11 +// 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 +// XFAIL: with_system_cxx_lib=macosx10.7 +// XFAIL: with_system_cxx_lib=macosx10.8 + // <experimental/any> // any& operator=(any &&); diff --git a/libcxx/test/std/experimental/any/any.class/any.assign/value.pass.cpp b/libcxx/test/std/experimental/any/any.class/any.assign/value.pass.cpp index b42a4ba2b05..8ff4ad59415 100644 --- a/libcxx/test/std/experimental/any/any.class/any.assign/value.pass.cpp +++ b/libcxx/test/std/experimental/any/any.class/any.assign/value.pass.cpp @@ -9,6 +9,13 @@ // UNSUPPORTED: c++98, c++03, c++11 +// 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 +// XFAIL: with_system_cxx_lib=macosx10.7 +// XFAIL: with_system_cxx_lib=macosx10.8 + // <experimental/any> // any& operator=(any const &); @@ -174,4 +181,4 @@ int main() { test_assign_throws<small_throws_on_copy>(); test_assign_throws<large_throws_on_copy>(); test_assign_throws<throws_on_move, /* Move = */ true>(); -}
\ No newline at end of file +} diff --git a/libcxx/test/std/experimental/any/any.class/any.cons/copy.pass.cpp b/libcxx/test/std/experimental/any/any.class/any.cons/copy.pass.cpp index 69341ca6b80..47f12d73923 100644 --- a/libcxx/test/std/experimental/any/any.class/any.cons/copy.pass.cpp +++ b/libcxx/test/std/experimental/any/any.class/any.cons/copy.pass.cpp @@ -9,6 +9,13 @@ // UNSUPPORTED: c++98, c++03, c++11 +// 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 +// XFAIL: with_system_cxx_lib=macosx10.7 +// XFAIL: with_system_cxx_lib=macosx10.8 + // <experimental/any> // any(any const &); diff --git a/libcxx/test/std/experimental/any/any.class/any.cons/move.pass.cpp b/libcxx/test/std/experimental/any/any.class/any.cons/move.pass.cpp index 2a050946afa..c5395daa3da 100644 --- a/libcxx/test/std/experimental/any/any.class/any.cons/move.pass.cpp +++ b/libcxx/test/std/experimental/any/any.class/any.cons/move.pass.cpp @@ -9,6 +9,13 @@ // UNSUPPORTED: c++98, c++03, c++11 +// 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 +// XFAIL: with_system_cxx_lib=macosx10.7 +// XFAIL: with_system_cxx_lib=macosx10.8 + // <experimental/any> // any(any &&) noexcept; diff --git a/libcxx/test/std/experimental/any/any.class/any.cons/value.pass.cpp b/libcxx/test/std/experimental/any/any.class/any.cons/value.pass.cpp index a3ab0edc8b6..fcace5028ec 100644 --- a/libcxx/test/std/experimental/any/any.class/any.cons/value.pass.cpp +++ b/libcxx/test/std/experimental/any/any.class/any.cons/value.pass.cpp @@ -9,6 +9,13 @@ // UNSUPPORTED: c++98, c++03, c++11 +// 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 +// XFAIL: with_system_cxx_lib=macosx10.7 +// XFAIL: with_system_cxx_lib=macosx10.8 + // <experimental/any> // template <class Value> any(Value &&) @@ -113,4 +120,4 @@ int main() { test_copy_value_throws<small_throws_on_copy>(); test_copy_value_throws<large_throws_on_copy>(); test_move_value_throws(); -}
\ No newline at end of file +} diff --git a/libcxx/test/std/experimental/any/any.class/any.modifiers/clear.pass.cpp b/libcxx/test/std/experimental/any/any.class/any.modifiers/clear.pass.cpp index 781ed73f2b3..1b0b75d61fe 100644 --- a/libcxx/test/std/experimental/any/any.class/any.modifiers/clear.pass.cpp +++ b/libcxx/test/std/experimental/any/any.class/any.modifiers/clear.pass.cpp @@ -9,6 +9,13 @@ // UNSUPPORTED: c++98, c++03, c++11 +// 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 +// XFAIL: with_system_cxx_lib=macosx10.7 +// XFAIL: with_system_cxx_lib=macosx10.8 + // <experimental/any> // any::clear() noexcept diff --git a/libcxx/test/std/experimental/any/any.class/any.modifiers/swap.pass.cpp b/libcxx/test/std/experimental/any/any.class/any.modifiers/swap.pass.cpp index b1d31546896..9f499b4a1fb 100644 --- a/libcxx/test/std/experimental/any/any.class/any.modifiers/swap.pass.cpp +++ b/libcxx/test/std/experimental/any/any.class/any.modifiers/swap.pass.cpp @@ -9,6 +9,13 @@ // UNSUPPORTED: c++98, c++03, c++11 +// 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 +// XFAIL: with_system_cxx_lib=macosx10.7 +// XFAIL: with_system_cxx_lib=macosx10.8 + // <experimental/any> // any::swap(any &) noexcept diff --git a/libcxx/test/std/experimental/any/any.nonmembers/any.cast/any_cast_reference.pass.cpp b/libcxx/test/std/experimental/any/any.nonmembers/any.cast/any_cast_reference.pass.cpp index 47fe52f7b1d..ca6d1de116e 100644 --- a/libcxx/test/std/experimental/any/any.nonmembers/any.cast/any_cast_reference.pass.cpp +++ b/libcxx/test/std/experimental/any/any.nonmembers/any.cast/any_cast_reference.pass.cpp @@ -9,6 +9,8 @@ // UNSUPPORTED: c++98, c++03, c++11 +// XFAIL: availability=macosx + // <experimental/any> // template <class ValueType> diff --git a/libcxx/test/std/experimental/any/any.nonmembers/any.cast/not_copy_constructible.fail.cpp b/libcxx/test/std/experimental/any/any.nonmembers/any.cast/not_copy_constructible.fail.cpp index c6cc68d7270..1c52a64fce6 100644 --- a/libcxx/test/std/experimental/any/any.nonmembers/any.cast/not_copy_constructible.fail.cpp +++ b/libcxx/test/std/experimental/any/any.nonmembers/any.cast/not_copy_constructible.fail.cpp @@ -42,4 +42,4 @@ int main() { any_cast<no_copy>(static_cast<any &&>(a)); // expected-error@experimental/any:* 3 {{static_assert failed "_ValueType is required to be a reference or a CopyConstructible type."}} // expected-error@experimental/any:* 3 {{calling a private constructor of class 'no_copy'}} -}
\ No newline at end of file +} diff --git a/libcxx/test/std/experimental/any/any.nonmembers/swap.pass.cpp b/libcxx/test/std/experimental/any/any.nonmembers/swap.pass.cpp index a3fbd43d924..e79bc9ef099 100644 --- a/libcxx/test/std/experimental/any/any.nonmembers/swap.pass.cpp +++ b/libcxx/test/std/experimental/any/any.nonmembers/swap.pass.cpp @@ -34,7 +34,8 @@ int main() swap(a1, a2); - assert(any_cast<int>(a1) == 2); - assert(any_cast<int>(a2) == 1); + // Support testing against system dylibs that don't have bad_any_cast. + assert(*any_cast<int>(&a1) == 2); + assert(*any_cast<int>(&a2) == 1); } } 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 c166bb72a83..f269149829d 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 @@ -8,6 +8,12 @@ //===----------------------------------------------------------------------===// // UNSUPPORTED: c++98, c++03, c++11 +// XFAIL: availability=macosx10.12 +// XFAIL: availability=macosx10.11 +// XFAIL: availability=macosx10.10 +// XFAIL: availability=macosx10.9 +// XFAIL: availability=macosx10.8 +// XFAIL: availability=macosx10.7 // <optional> 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 4630165f070..a4af713a391 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 @@ -8,6 +8,12 @@ //===----------------------------------------------------------------------===// // UNSUPPORTED: c++98, c++03, c++11 +// XFAIL: availability_markup=macosx10.12 +// XFAIL: availability_markup=macosx10.11 +// XFAIL: availability_markup=macosx10.10 +// XFAIL: availability_markup=macosx10.9 +// XFAIL: availability_markup=macosx10.8 +// XFAIL: availability_markup=macosx10.7 // <optional> 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 c8f07111c23..72d7790590d 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 @@ -8,6 +8,13 @@ //===----------------------------------------------------------------------===// // UNSUPPORTED: c++98, c++03, c++11 +// XFAIL: availability=macosx10.12 +// XFAIL: availability=macosx10.11 +// XFAIL: availability=macosx10.10 +// XFAIL: availability=macosx10.9 +// XFAIL: availability=macosx10.8 +// XFAIL: availability=macosx10.7 + // <optional> // T& optional<T>::value(); 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 98ff16e4d13..b3d6dfda4fb 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 @@ -8,6 +8,13 @@ //===----------------------------------------------------------------------===// // UNSUPPORTED: c++98, c++03, c++11 +// XFAIL: availability=macosx10.12 +// XFAIL: availability=macosx10.11 +// XFAIL: availability=macosx10.10 +// XFAIL: availability=macosx10.9 +// XFAIL: availability=macosx10.8 +// XFAIL: availability=macosx10.7 + // <optional> // constexpr const T& optional<T>::value() const; |

