diff options
author | Ryan Prichard <rprichard@google.com> | 2022-11-04 15:51:44 -0700 |
---|---|---|
committer | Ryan Prichard <rprichard@google.com> | 2022-11-04 15:51:44 -0700 |
commit | 292533324cadf0164a7e1d532508cb59775e0a72 (patch) | |
tree | 3906b3a3781f9c5ef96683d3f3e6dad8ac1deba9 /libcxxabi/test | |
parent | ada6aa3f5c9693130747549f99b6bb27cff58f2f (diff) | |
download | llvm-292533324cadf0164a7e1d532508cb59775e0a72.tar.gz |
[libc++abi] Use std::nullptr_t instead of declaring it manually
Sometimes libc++'s stddef.h wrapper gets included, which defines
::nullptr_t. This test is compiled with -Wshadow -Werror, so shadowing
::nullptr_t with a nullptr_t in main is an error. Include cstddef,
which is guaranteed to define std::nullptr_t in C++11 and forward.
Reviewed By: ldionne, #libc_abi
Differential Revision: https://reviews.llvm.org/D137127
Diffstat (limited to 'libcxxabi/test')
-rw-r--r-- | libcxxabi/test/catch_reference_nullptr.pass.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/libcxxabi/test/catch_reference_nullptr.pass.cpp b/libcxxabi/test/catch_reference_nullptr.pass.cpp index 708d5d798a1d..e9c3ba31b06b 100644 --- a/libcxxabi/test/catch_reference_nullptr.pass.cpp +++ b/libcxxabi/test/catch_reference_nullptr.pass.cpp @@ -6,11 +6,13 @@ // //===----------------------------------------------------------------------===// -// UNSUPPORTED: c++03, +// UNSUPPORTED: c++03 // UNSUPPORTED: no-exceptions #include <cassert> +#include <cstddef> #include <cstdlib> +#include <type_traits> struct A {}; @@ -27,13 +29,13 @@ static void catch_nullptr_test() { int main(int, char**) { - using nullptr_t = decltype(nullptr); + static_assert(std::is_same<std::nullptr_t, decltype(nullptr)>::value, ""); // A reference to nullptr_t can catch nullptr. - catch_nullptr_test<nullptr_t, true>(); - catch_nullptr_test<const nullptr_t, true>(); - catch_nullptr_test<volatile nullptr_t, true>(); - catch_nullptr_test<const volatile nullptr_t, true>(); + catch_nullptr_test<std::nullptr_t, true>(); + catch_nullptr_test<const std::nullptr_t, true>(); + catch_nullptr_test<volatile std::nullptr_t, true>(); + catch_nullptr_test<const volatile std::nullptr_t, true>(); // No other reference type can. #if 0 |