diff options
-rw-r--r-- | libcxx/test/std/language.support/support.dynamic/destroying_delete_t.pass.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/libcxx/test/std/language.support/support.dynamic/destroying_delete_t.pass.cpp b/libcxx/test/std/language.support/support.dynamic/destroying_delete_t.pass.cpp index 834222c06bf..fa4e77c71f7 100644 --- a/libcxx/test/std/language.support/support.dynamic/destroying_delete_t.pass.cpp +++ b/libcxx/test/std/language.support/support.dynamic/destroying_delete_t.pass.cpp @@ -52,10 +52,19 @@ void A::operator delete(A* a, std::destroying_delete_t) { ::operator delete(a); } -#ifndef __cpp_lib_destroying_delete -#error "Expected __cpp_lib_destroying_delete to be defined" -#elif __cpp_lib_destroying_delete < 201806L -#error "Unexpected value of __cpp_lib_destroying_delete" +// Only test the definition of the library feature-test macro when the compiler +// supports the feature -- otherwise we don't define the library feature-test +// macro. +#if defined(__cpp_impl_destroying_delete) +# if !defined(__cpp_lib_destroying_delete) +# error "Expected __cpp_lib_destroying_delete to be defined" +# elif __cpp_lib_destroying_delete < 201806L +# error "Unexpected value of __cpp_lib_destroying_delete" +# endif +#else +# if defined(__cpp_lib_destroying_delete) +# error "The library feature-test macro for destroying delete shouldn't be defined when the compiler doesn't support the language feature" +# endif #endif int main() { |