aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/IR/DebugInfoTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/unittests/IR/DebugInfoTest.cpp')
-rw-r--r--llvm/unittests/IR/DebugInfoTest.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/llvm/unittests/IR/DebugInfoTest.cpp b/llvm/unittests/IR/DebugInfoTest.cpp
index cac8acb..953df22 100644
--- a/llvm/unittests/IR/DebugInfoTest.cpp
+++ b/llvm/unittests/IR/DebugInfoTest.cpp
@@ -1244,4 +1244,37 @@ TEST(DIBuilder, HashingDISubprogram) {
EXPECT_EQ(HashDefinition, HashDefinitionAfter);
}
+TEST(DIBuilder, CompositeTypes) {
+ LLVMContext Ctx;
+ std::unique_ptr<Module> M = std::make_unique<Module>("MyModule", Ctx);
+ DIBuilder DIB(*M);
+
+ DIFile *F = DIB.createFile("main.c", "/");
+ DICompileUnit *CU =
+ DIB.createCompileUnit(dwarf::DW_LANG_C, F, "Test", false, "", 0);
+
+ DICompositeType *Class =
+ DIB.createClassType(CU, "MyClass", F, 0, 8, 8, 0, {}, nullptr, {}, 0,
+ nullptr, nullptr, "ClassUniqueIdentifier");
+ EXPECT_EQ(Class->getTag(), dwarf::DW_TAG_class_type);
+
+ DICompositeType *Struct = DIB.createStructType(
+ CU, "MyStruct", F, 0, 8, 8, {}, {}, {}, 0, {}, "StructUniqueIdentifier");
+ EXPECT_EQ(Struct->getTag(), dwarf::DW_TAG_structure_type);
+
+ DICompositeType *Union = DIB.createUnionType(CU, "MyUnion", F, 0, 8, 8, {},
+ {}, 0, "UnionUniqueIdentifier");
+ EXPECT_EQ(Union->getTag(), dwarf::DW_TAG_union_type);
+
+ DICompositeType *Array = DIB.createArrayType(8, 8, nullptr, {});
+ EXPECT_EQ(Array->getTag(), dwarf::DW_TAG_array_type);
+
+ DICompositeType *Vector = DIB.createVectorType(8, 8, nullptr, {});
+ EXPECT_EQ(Vector->getTag(), dwarf::DW_TAG_array_type);
+
+ DICompositeType *Enum = DIB.createEnumerationType(
+ CU, "MyEnum", F, 0, 8, 8, {}, nullptr, 0, "EnumUniqueIdentifier");
+ EXPECT_EQ(Enum->getTag(), dwarf::DW_TAG_enumeration_type);
+}
+
} // end namespace