forked from OSchip/llvm-project
[libc++] Add tests for the content of <cstddef>
As discussed in D114786. Differential Revision: https://reviews.llvm.org/D121110
This commit is contained in:
parent
553ab7a090
commit
071762199f
|
@ -0,0 +1,26 @@
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||||
|
// See https://llvm.org/LICENSE.txt for license information.
|
||||||
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
// Make sure libc++'s <cstddef> defines types like ::nullptr_t in the global namespace.
|
||||||
|
// This is a conforming extension to be consistent with other implementations, which all
|
||||||
|
// appear to provide that behavior too.
|
||||||
|
|
||||||
|
#include <cstddef>
|
||||||
|
#include "test_macros.h"
|
||||||
|
|
||||||
|
using PtrdiffT = ::ptrdiff_t;
|
||||||
|
using SizeT = ::size_t;
|
||||||
|
#if TEST_STD_VER >= 11
|
||||||
|
using MaxAlignT = ::max_align_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Supported in C++03 mode too for backwards compatibility with previous versions of libc++
|
||||||
|
using NullptrT = ::nullptr_t;
|
||||||
|
|
||||||
|
// Also ensure that we provide std::nullptr_t in C++03 mode, which is an extension too.
|
||||||
|
using StdNullptrT = std::nullptr_t;
|
|
@ -0,0 +1,46 @@
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||||
|
// See https://llvm.org/LICENSE.txt for license information.
|
||||||
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
// test the contents of <cstddef>
|
||||||
|
|
||||||
|
// namespace std {
|
||||||
|
// using ptrdiff_t = see below;
|
||||||
|
// using size_t = see below;
|
||||||
|
// using max_align_t = see below;
|
||||||
|
// using nullptr_t = decltype(nullptr);
|
||||||
|
//
|
||||||
|
// enum class byte : unsigned char {};
|
||||||
|
//
|
||||||
|
// // [support.types.byteops], byte type operations
|
||||||
|
// [...] other byte-related functionality is tested elsewhere
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// #define NULL see below
|
||||||
|
// #define offsetof(P, D) see below
|
||||||
|
|
||||||
|
#include <cstddef>
|
||||||
|
#include "test_macros.h"
|
||||||
|
|
||||||
|
using PtrdiffT = std::ptrdiff_t;
|
||||||
|
using SizeT = std::size_t;
|
||||||
|
#if TEST_STD_VER >= 11
|
||||||
|
using MaxAlignT = std::max_align_t;
|
||||||
|
using NullptrT = std::nullptr_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if TEST_STD_VER >= 17
|
||||||
|
using Byte = std::byte;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NULL
|
||||||
|
# error "NULL should be defined by <cstddef>"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef offsetof
|
||||||
|
# error "offsetof() should be defined by <cstddef>"
|
||||||
|
#endif
|
Loading…
Reference in New Issue