summaryrefslogtreecommitdiff
path: root/libcxxabi/test
diff options
context:
space:
mode:
authorRyan Prichard <rprichard@google.com>2022-11-04 15:51:44 -0700
committerRyan Prichard <rprichard@google.com>2022-11-04 15:51:44 -0700
commit292533324cadf0164a7e1d532508cb59775e0a72 (patch)
tree3906b3a3781f9c5ef96683d3f3e6dad8ac1deba9 /libcxxabi/test
parentada6aa3f5c9693130747549f99b6bb27cff58f2f (diff)
downloadllvm-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.cpp14
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