forked from OSchip/llvm-project
Avoid use of std::make_unique in compiler-rt/lib/scudo/standalone/tests/combined_test.cpp
make_unique is a C++14 feature, and this prevents us from building on Ubuntu Trusty. While we do use a C++14 compatible toolchain for building in general, we fall back to the system toolchain for building the compiler-rt tests. The reason is that those tests get cross-compiled for e.g. 32-bit and 64-bit x86, and while the toolchain provides libstdc++ in those flavours, the resulting compiler-rt test binaries don't get RPATH set and so won't start if they're linked with that toolchain. We've tried linking the test binaries against libstdc++ statically, by passing COMPILER_RT_TEST_COMPILER_CFLAGS=-static-libstdc++. That mostly works, but some test targets append -lstdc++ to the compiler invocation. So, after spending way too much time on this, let's just avoid C++14 here for now.
This commit is contained in:
parent
93b7915504
commit
7e8d5a90f2
|
@ -78,7 +78,7 @@ template <typename Config> struct TestAllocator : scudo::Allocator<Config> {
|
|||
|
||||
template <class Config> static void testAllocator() {
|
||||
using AllocatorT = TestAllocator<Config>;
|
||||
auto Allocator = std::make_unique<AllocatorT>();
|
||||
auto Allocator = std::unique_ptr<AllocatorT>(new AllocatorT());
|
||||
|
||||
EXPECT_FALSE(Allocator->isOwned(&Mutex));
|
||||
EXPECT_FALSE(Allocator->isOwned(&Allocator));
|
||||
|
@ -352,7 +352,7 @@ template <typename AllocatorT> static void stressAllocator(AllocatorT *A) {
|
|||
|
||||
template <class Config> static void testAllocatorThreaded() {
|
||||
using AllocatorT = TestAllocator<Config>;
|
||||
auto Allocator = std::make_unique<AllocatorT>();
|
||||
auto Allocator = std::unique_ptr<AllocatorT>(new AllocatorT());
|
||||
std::thread Threads[32];
|
||||
for (scudo::uptr I = 0; I < ARRAY_SIZE(Threads); I++)
|
||||
Threads[I] = std::thread(stressAllocator<AllocatorT>, Allocator.get());
|
||||
|
@ -399,7 +399,7 @@ struct DeathConfig {
|
|||
|
||||
TEST(ScudoCombinedTest, DeathCombined) {
|
||||
using AllocatorT = TestAllocator<DeathConfig>;
|
||||
auto Allocator = std::make_unique<AllocatorT>();
|
||||
auto Allocator = std::unique_ptr<AllocatorT>(new AllocatorT());
|
||||
|
||||
const scudo::uptr Size = 1000U;
|
||||
void *P = Allocator->allocate(Size, Origin);
|
||||
|
@ -434,7 +434,7 @@ TEST(ScudoCombinedTest, DeathCombined) {
|
|||
// operation without issue.
|
||||
TEST(ScudoCombinedTest, ReleaseToOS) {
|
||||
using AllocatorT = TestAllocator<DeathConfig>;
|
||||
auto Allocator = std::make_unique<AllocatorT>();
|
||||
auto Allocator = std::unique_ptr<AllocatorT>(new AllocatorT());
|
||||
|
||||
Allocator->releaseToOS();
|
||||
}
|
||||
|
@ -443,7 +443,7 @@ TEST(ScudoCombinedTest, ReleaseToOS) {
|
|||
// fulfill the allocation through a larger size class.
|
||||
TEST(ScudoCombinedTest, FullRegion) {
|
||||
using AllocatorT = TestAllocator<DeathConfig>;
|
||||
auto Allocator = std::make_unique<AllocatorT>();
|
||||
auto Allocator = std::unique_ptr<AllocatorT>(new AllocatorT());
|
||||
|
||||
std::vector<void *> V;
|
||||
scudo::uptr FailedAllocationsCount = 0;
|
||||
|
@ -474,7 +474,7 @@ TEST(ScudoCombinedTest, FullRegion) {
|
|||
TEST(ScudoCombinedTest, OddEven) {
|
||||
using AllocatorT = TestAllocator<scudo::AndroidConfig>;
|
||||
using SizeClassMap = AllocatorT::PrimaryT::SizeClassMap;
|
||||
auto Allocator = std::make_unique<AllocatorT>();
|
||||
auto Allocator = std::unique_ptr<AllocatorT>(new AllocatorT());
|
||||
|
||||
if (!Allocator->useMemoryTagging())
|
||||
return;
|
||||
|
|
Loading…
Reference in New Issue