Changeset View
Changeset View
Standalone View
Standalone View
llvm/unittests/IR/MetadataTest.cpp
Show First 20 Lines • Show All 1,774 Lines • ▼ Show 20 Lines | TEST_F(DICompositeTypeTest, dynamicArray) { | ||||
Metadata *DlVar2 = DILocalVariable::get(Context, Scope, "dl_var2", File, 8, | Metadata *DlVar2 = DILocalVariable::get(Context, Scope, "dl_var2", File, 8, | ||||
Type, 2, Flags, 8); | Type, 2, Flags, 8); | ||||
uint64_t Elements1[] = {dwarf::DW_OP_push_object_address, dwarf::DW_OP_deref}; | uint64_t Elements1[] = {dwarf::DW_OP_push_object_address, dwarf::DW_OP_deref}; | ||||
Metadata *DataLocation1 = DIExpression::get(Context, Elements1); | Metadata *DataLocation1 = DIExpression::get(Context, Elements1); | ||||
uint64_t Elements2[] = {dwarf::DW_OP_constu, 0}; | uint64_t Elements2[] = {dwarf::DW_OP_constu, 0}; | ||||
Metadata *DataLocation2 = DIExpression::get(Context, Elements2); | Metadata *DataLocation2 = DIExpression::get(Context, Elements2); | ||||
uint64_t Elements3[] = {dwarf::DW_OP_constu, 3}; | |||||
Metadata *Rank1 = DIExpression::get(Context, Elements3); | |||||
uint64_t Elements4[] = {dwarf::DW_OP_constu, 4}; | |||||
Metadata *Rank2 = DIExpression::get(Context, Elements4); | |||||
ConstantInt *RankInt1 = ConstantInt::get(Context, APInt(7, 0)); | |||||
ConstantAsMetadata *RankConst1 = ConstantAsMetadata::get(RankInt1); | |||||
ConstantInt *RankInt2 = ConstantInt::get(Context, APInt(6, 0)); | |||||
ConstantAsMetadata *RankConst2 = ConstantAsMetadata::get(RankInt2); | |||||
auto *N1 = DICompositeType::get( | auto *N1 = DICompositeType::get( | ||||
Context, Tag, Name, File, Line, Scope, BaseType, SizeInBits, AlignInBits, | Context, Tag, Name, File, Line, Scope, BaseType, SizeInBits, AlignInBits, | ||||
OffsetInBits, Flags, nullptr, RuntimeLang, nullptr, nullptr, Identifier, | OffsetInBits, Flags, nullptr, RuntimeLang, nullptr, nullptr, Identifier, | ||||
nullptr, DlVar1); | nullptr, DlVar1); | ||||
auto *Same1 = DICompositeType::get( | auto *Same1 = DICompositeType::get( | ||||
Context, Tag, Name, File, Line, Scope, BaseType, SizeInBits, AlignInBits, | Context, Tag, Name, File, Line, Scope, BaseType, SizeInBits, AlignInBits, | ||||
OffsetInBits, Flags, nullptr, RuntimeLang, nullptr, nullptr, Identifier, | OffsetInBits, Flags, nullptr, RuntimeLang, nullptr, nullptr, Identifier, | ||||
Show All 21 Lines | TEST_F(DICompositeTypeTest, dynamicArray) { | ||||
auto *Other2 = DICompositeType::get( | auto *Other2 = DICompositeType::get( | ||||
Context, Tag, Name, File, Line, Scope, BaseType, SizeInBits, AlignInBits, | Context, Tag, Name, File, Line, Scope, BaseType, SizeInBits, AlignInBits, | ||||
OffsetInBits, Flags, nullptr, RuntimeLang, nullptr, nullptr, Identifier, | OffsetInBits, Flags, nullptr, RuntimeLang, nullptr, nullptr, Identifier, | ||||
nullptr, DataLocation2); | nullptr, DataLocation2); | ||||
EXPECT_EQ(N2, Same2); | EXPECT_EQ(N2, Same2); | ||||
EXPECT_NE(Same2, Other2); | EXPECT_NE(Same2, Other2); | ||||
EXPECT_EQ(N2->getDataLocationExp(), DataLocation1); | EXPECT_EQ(N2->getDataLocationExp(), DataLocation1); | ||||
auto *N3 = DICompositeType::get( | |||||
Context, Tag, Name, File, Line, Scope, BaseType, SizeInBits, AlignInBits, | |||||
OffsetInBits, Flags, nullptr, RuntimeLang, nullptr, nullptr, Identifier, | |||||
nullptr, DataLocation1, nullptr, nullptr, Rank1); | |||||
auto *Same3 = DICompositeType::get( | |||||
Context, Tag, Name, File, Line, Scope, BaseType, SizeInBits, AlignInBits, | |||||
OffsetInBits, Flags, nullptr, RuntimeLang, nullptr, nullptr, Identifier, | |||||
nullptr, DataLocation1, nullptr, nullptr, Rank1); | |||||
auto *Other3 = DICompositeType::get( | |||||
Context, Tag, Name, File, Line, Scope, BaseType, SizeInBits, AlignInBits, | |||||
OffsetInBits, Flags, nullptr, RuntimeLang, nullptr, nullptr, Identifier, | |||||
nullptr, DataLocation1, nullptr, nullptr, Rank2); | |||||
EXPECT_EQ(N3, Same3); | |||||
EXPECT_NE(Same3, Other3); | |||||
EXPECT_EQ(N3->getRankExp(), Rank1); | |||||
auto *N4 = DICompositeType::get( | |||||
Context, Tag, Name, File, Line, Scope, BaseType, SizeInBits, AlignInBits, | |||||
OffsetInBits, Flags, nullptr, RuntimeLang, nullptr, nullptr, Identifier, | |||||
nullptr, DataLocation1, nullptr, nullptr, RankConst1); | |||||
auto *Same4 = DICompositeType::get( | |||||
Context, Tag, Name, File, Line, Scope, BaseType, SizeInBits, AlignInBits, | |||||
OffsetInBits, Flags, nullptr, RuntimeLang, nullptr, nullptr, Identifier, | |||||
nullptr, DataLocation1, nullptr, nullptr, RankConst1); | |||||
auto *Other4 = DICompositeType::get( | |||||
Context, Tag, Name, File, Line, Scope, BaseType, SizeInBits, AlignInBits, | |||||
OffsetInBits, Flags, nullptr, RuntimeLang, nullptr, nullptr, Identifier, | |||||
nullptr, DataLocation1, nullptr, nullptr, RankConst2); | |||||
EXPECT_EQ(N4, Same4); | |||||
EXPECT_NE(Same4, Other4); | |||||
EXPECT_EQ(N4->getRankConst(), RankInt1); | |||||
} | } | ||||
typedef MetadataTest DISubroutineTypeTest; | typedef MetadataTest DISubroutineTypeTest; | ||||
TEST_F(DISubroutineTypeTest, get) { | TEST_F(DISubroutineTypeTest, get) { | ||||
DINode::DIFlags Flags = static_cast<DINode::DIFlags>(1); | DINode::DIFlags Flags = static_cast<DINode::DIFlags>(1); | ||||
DINode::DIFlags FlagsPOne = static_cast<DINode::DIFlags>(Flags + 1); | DINode::DIFlags FlagsPOne = static_cast<DINode::DIFlags>(Flags + 1); | ||||
MDTuple *TypeArray = getTuple(); | MDTuple *TypeArray = getTuple(); | ||||
▲ Show 20 Lines • Show All 1,341 Lines • Show Last 20 Lines |