diff --git a/test/libcxx/test/config.py b/test/libcxx/test/config.py index 9b1ded4c3..6655743ae 100644 --- a/test/libcxx/test/config.py +++ b/test/libcxx/test/config.py @@ -315,6 +315,10 @@ class Configuration(object): if self.cxx.hasCompileFlag('-faligned-allocation'): self.config.available_features.add('-faligned-allocation') + else: + # FIXME remove this once more than just clang-4.0 support + # C++17 aligned allocation. + self.config.available_features.add('no-aligned-allocation') if self.get_lit_bool('has_libatomic', False): self.config.available_features.add('libatomic') diff --git a/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t.pass.cpp b/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t.pass.cpp index 69be9b31f..1d2f799f7 100644 --- a/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t.pass.cpp +++ b/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t.pass.cpp @@ -9,11 +9,13 @@ // UNSUPPORTED: c++98, c++03, c++11, c++14 -// test operator new - // asan and msan will not call the new handler. // UNSUPPORTED: sanitizer-new-delete +// XFAIL: no-aligned-allocation + +// test operator new + #include #include #include diff --git a/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow.pass.cpp b/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow.pass.cpp index 76b503467..d4b149333 100644 --- a/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow.pass.cpp +++ b/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow.pass.cpp @@ -9,11 +9,13 @@ // UNSUPPORTED: c++98, c++03, c++11, c++14 -// test operator new (nothrow) - // asan and msan will not call the new handler. // UNSUPPORTED: sanitizer-new-delete +// XFAIL: no-aligned-allocation + +// test operator new (nothrow) + #include #include #include diff --git a/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow_replace.pass.cpp b/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow_replace.pass.cpp index 48ea3fde5..800318d92 100644 --- a/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow_replace.pass.cpp +++ b/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow_replace.pass.cpp @@ -8,18 +8,18 @@ //===----------------------------------------------------------------------===// // UNSUPPORTED: c++98, c++03, c++11, c++14 +// UNSUPPORTED: sanitizer-new-delete + +// XFAIL: no-aligned-allocation // test operator new nothrow by replacing only operator new -// UNSUPPORTED: sanitizer-new-delete - #include #include #include #include #include - constexpr auto OverAligned = alignof(std::max_align_t) * 2; int A_constructed = 0; diff --git a/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_replace.pass.cpp b/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_replace.pass.cpp index 6ea23ffe9..898d4aa16 100644 --- a/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_replace.pass.cpp +++ b/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_replace.pass.cpp @@ -8,11 +8,12 @@ //===----------------------------------------------------------------------===// // UNSUPPORTED: c++98, c++03, c++11, c++14 +// UNSUPPORTED: sanitizer-new-delete + +// XFAIL: no-aligned-allocation // test operator new replacement -// UNSUPPORTED: sanitizer-new-delete - #include #include #include diff --git a/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t.pass.cpp b/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t.pass.cpp index 1be78fb73..a0caeea95 100644 --- a/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t.pass.cpp +++ b/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t.pass.cpp @@ -9,11 +9,13 @@ // UNSUPPORTED: c++98, c++03, c++11, c++14 -// test operator new - // asan and msan will not call the new handler. // UNSUPPORTED: sanitizer-new-delete +// XFAIL: no-aligned-allocation + +// test operator new + #include #include #include diff --git a/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow.pass.cpp b/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow.pass.cpp index 89e5dc820..4e492e09e 100644 --- a/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow.pass.cpp +++ b/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow.pass.cpp @@ -9,11 +9,13 @@ // UNSUPPORTED: c++98, c++03, c++11, c++14 -// test operator new (nothrow) - // asan and msan will not call the new handler. // UNSUPPORTED: sanitizer-new-delete +// XFAIL: no-aligned-allocation + +// test operator new (nothrow) + #include #include #include diff --git a/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow_replace.pass.cpp b/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow_replace.pass.cpp index fc37677e5..8348240e5 100644 --- a/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow_replace.pass.cpp +++ b/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow_replace.pass.cpp @@ -8,11 +8,11 @@ //===----------------------------------------------------------------------===// // UNSUPPORTED: c++98, c++03, c++11, c++14 - -// test operator new nothrow by replacing only operator new - // UNSUPPORTED: sanitizer-new-delete +// XFAIL: no-aligned-allocation + +// test operator new nothrow by replacing only operator new #include #include diff --git a/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_replace.pass.cpp b/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_replace.pass.cpp index dd6fc676e..8aecc2d77 100644 --- a/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_replace.pass.cpp +++ b/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_replace.pass.cpp @@ -8,11 +8,12 @@ //===----------------------------------------------------------------------===// // UNSUPPORTED: c++98, c++03, c++11, c++14 +// UNSUPPORTED: sanitizer-new-delete + +// XFAIL: no-aligned-allocation // test operator new replacement -// UNSUPPORTED: sanitizer-new-delete - #include #include #include