blob: 8f596d563eed75f5eba6003808b4d6545e5d0a90 [file] [log] [blame]
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// This is a "No Compile Test" suite.
// http://dev.chromium.org/developers/testing/no-compile-tests
#include "base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ref.h"
namespace {
#if defined(NCTEST_CROSS_KIND_CONVERSION_FROM_MAY_DANGLE) // [r"static assertion failed due to requirement '\(partition_alloc::internal::RawPtrTraits\)4U == \(\(partition_alloc::internal::RawPtrTraits\)5U | RawPtrTraits::kMayDangle\)'"]
void WontCompile() {
int x = 123;
raw_ref<int, base::RawPtrTraits::kMayDangle> ref(x);
[[maybe_unused]] raw_ref<int> ref2(ref);
}
#elif defined(NCTEST_CROSS_KIND_CONVERSION_FROM_DUMMY) // [r"static assertion failed due to requirement '\(partition_alloc::internal::RawPtrTraits\)5U == \(\(partition_alloc::internal::RawPtrTraits\)2052U \| RawPtrTraits::kMayDangle\)'"]
void WontCompile() {
int x = 123;
raw_ref<int, base::RawPtrTraits::kDummyForTest> ref(x);
[[maybe_unused]] raw_ref<int, base::RawPtrTraits::kMayDangle> ref2(ref);
}
#elif defined(NCTEST_CROSS_KIND_CONVERSION_MOVE_FROM_MAY_DANGLE) // [r"static assertion failed due to requirement '\(partition_alloc::internal::RawPtrTraits\)4U == \(\(partition_alloc::internal::RawPtrTraits\)5U \| RawPtrTraits::kMayDangle\)'"]
void WontCompile() {
int x = 123;
raw_ref<int, base::RawPtrTraits::kMayDangle> ref(x);
[[maybe_unused]] raw_ref<int> ref2(std::move(ref));
}
#elif defined(NCTEST_CROSS_KIND_CONVERSION_MOVE_FROM_DUMMY) // [r"static assertion failed due to requirement '\(partition_alloc::internal::RawPtrTraits\)5U == \(\(partition_alloc::internal::RawPtrTraits\)2052U \| RawPtrTraits::kMayDangle\)'"]
void WontCompile() {
int x = 123;
raw_ref<int, base::RawPtrTraits::kDummyForTest> ref(x);
[[maybe_unused]] raw_ref<int, base::RawPtrTraits::kMayDangle> ref2(std::move(ref));
}
#elif defined(NCTEST_CROSS_KIND_ASSIGNMENT_FROM_MAY_DANGLE) // [r"static assertion failed due to requirement '\(partition_alloc::internal::RawPtrTraits\)4U == \(\(partition_alloc::internal::RawPtrTraits\)5U \| RawPtrTraits::kMayDangle\)'"]
void WontCompile() {
int x = 123;
raw_ref<int, base::RawPtrTraits::kMayDangle> ref(x);
raw_ref<int> ref2(x);
ref2 = ref;
}
#elif defined(NCTEST_CROSS_KIND_ASSIGNMENT_FROM_DUMMY) // [r"static assertion failed due to requirement '\(partition_alloc::internal::RawPtrTraits\)5U == \(\(partition_alloc::internal::RawPtrTraits\)2052U \| RawPtrTraits::kMayDangle\)'"]
void WontCompile() {
int x = 123;
raw_ref<int, base::RawPtrTraits::kDummyForTest> ref(x);
raw_ref<int, base::RawPtrTraits::kMayDangle> ref2(x);
ref2 = ref;
}
#elif defined(NCTEST_CROSS_KIND_ASSIGNMENT_MOVE_FROM_MAY_DANGLE) // [r"static assertion failed due to requirement '\(partition_alloc::internal::RawPtrTraits\)4U == \(\(partition_alloc::internal::RawPtrTraits\)5U \| RawPtrTraits::kMayDangle\)'"]
void WontCompile() {
int x = 123;
raw_ref<int, base::RawPtrTraits::kMayDangle> ref(x);
raw_ref<int> ref2(x);
ref2 = std::move(ref);
}
#elif defined(NCTEST_CROSS_KIND_ASSIGNMENT_MOVE_FROM_DUMMY) // [r"static assertion failed due to requirement '\(partition_alloc::internal::RawPtrTraits\)5U == \(\(partition_alloc::internal::RawPtrTraits\)2052U \| RawPtrTraits::kMayDangle\)'"]
void WontCompile() {
int x = 123;
raw_ref<int, base::RawPtrTraits::kDummyForTest> ref(x);
raw_ref<int, base::RawPtrTraits::kMayDangle> ref2(x);
ref2 = std::move(ref);
}
#endif
} // namespace