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