mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-27 21:50:40 +00:00
Add some negative (and positive) static_assert checks for ArrayRef-of-pointer conversions introduced in r216709
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216830 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6e153ad30a
commit
07f352637c
@ -13,6 +13,23 @@
|
||||
#include "gtest/gtest.h"
|
||||
using namespace llvm;
|
||||
|
||||
// Check that the ArrayRef-of-pointer converting constructor only allows adding
|
||||
// cv qualifiers (not removing them, or otherwise changing the type)
|
||||
static_assert(
|
||||
std::is_convertible<ArrayRef<int *>, ArrayRef<const int *>>::value,
|
||||
"Adding const");
|
||||
static_assert(
|
||||
std::is_convertible<ArrayRef<int *>, ArrayRef<volatile int *>>::value,
|
||||
"Adding volatile");
|
||||
static_assert(!std::is_convertible<ArrayRef<int *>, ArrayRef<float *>>::value,
|
||||
"Changing pointer of one type to a pointer of another");
|
||||
static_assert(
|
||||
!std::is_convertible<ArrayRef<const int *>, ArrayRef<int *>>::value,
|
||||
"Removing const");
|
||||
static_assert(
|
||||
!std::is_convertible<ArrayRef<volatile int *>, ArrayRef<int *>>::value,
|
||||
"Removing volatile");
|
||||
|
||||
namespace llvm {
|
||||
|
||||
TEST(ArrayRefTest, AllocatorCopy) {
|
||||
|
Loading…
Reference in New Issue
Block a user