mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-08 12:08:46 +00:00
Add unittest for extreme alignments.
llvm-svn: 220483
This commit is contained in:
parent
b1cc8f92d6
commit
0e2a6b8223
@ -60,6 +60,10 @@ TEST(GlobalTest, CreateAddressSpace) {
|
|||||||
GlobalVariable::NotThreadLocal,
|
GlobalVariable::NotThreadLocal,
|
||||||
1);
|
1);
|
||||||
|
|
||||||
|
EXPECT_TRUE(Value::MaximumAlignment == 536870912U);
|
||||||
|
Dummy0->setAlignment(536870912U);
|
||||||
|
EXPECT_EQ(Dummy0->getAlignment(), 536870912U);
|
||||||
|
|
||||||
// Make sure the address space isn't dropped when returning this.
|
// Make sure the address space isn't dropped when returning this.
|
||||||
Constant *Dummy1 = M->getOrInsertGlobal("dummy", Int32Ty);
|
Constant *Dummy1 = M->getOrInsertGlobal("dummy", Int32Ty);
|
||||||
EXPECT_EQ(Dummy0, Dummy1);
|
EXPECT_EQ(Dummy0, Dummy1);
|
||||||
@ -83,4 +87,23 @@ TEST(GlobalTest, CreateAddressSpace) {
|
|||||||
EXPECT_EQ(1u, DummyCast1->getType()->getPointerAddressSpace());
|
EXPECT_EQ(1u, DummyCast1->getType()->getPointerAddressSpace());
|
||||||
EXPECT_NE(DummyCast0, DummyCast1) << *DummyCast1;
|
EXPECT_NE(DummyCast0, DummyCast1) << *DummyCast1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef GTEST_HAS_DEATH_TEST
|
||||||
|
#ifndef NDEBUG
|
||||||
|
TEST(GlobalTest, AlignDeath) {
|
||||||
|
LLVMContext &Ctx = getGlobalContext();
|
||||||
|
std::unique_ptr<Module> M(new Module("TestModule", Ctx));
|
||||||
|
Type *Int32Ty = Type::getInt32Ty(Ctx);
|
||||||
|
GlobalVariable *Var =
|
||||||
|
new GlobalVariable(*M, Int32Ty, true, GlobalValue::ExternalLinkage,
|
||||||
|
Constant::getAllOnesValue(Int32Ty), "var", nullptr,
|
||||||
|
GlobalVariable::NotThreadLocal, 1);
|
||||||
|
|
||||||
|
EXPECT_DEATH(Var->setAlignment(536870913U), "Alignment is not a power of 2");
|
||||||
|
EXPECT_DEATH(Var->setAlignment(1073741824U),
|
||||||
|
"Alignment is greater than MaximumAlignment");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
} // end anonymous namespace
|
} // end anonymous namespace
|
||||||
|
Loading…
Reference in New Issue
Block a user