summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-c-test
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/tools/llvm-c-test')
-rw-r--r--llvm/tools/llvm-c-test/debuginfo.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/llvm/tools/llvm-c-test/debuginfo.c b/llvm/tools/llvm-c-test/debuginfo.c
index 26a477e432f..74d215ea818 100644
--- a/llvm/tools/llvm-c-test/debuginfo.c
+++ b/llvm/tools/llvm-c-test/debuginfo.c
@@ -17,6 +17,17 @@
#include <stdio.h>
#include <string.h>
+static LLVMMetadataRef
+declare_objc_class(LLVMDIBuilderRef DIB, LLVMMetadataRef File) {
+ LLVMMetadataRef Decl = LLVMDIBuilderCreateStructType(DIB, File, "TestClass", 9, File, 42, 64, 0, LLVMDIFlagObjcClassComplete, NULL, NULL, 0, 0, NULL, NULL, 0);
+ LLVMMetadataRef SuperDecl = LLVMDIBuilderCreateStructType(DIB, File, "TestSuperClass", 14, File, 42, 64, 0, LLVMDIFlagObjcClassComplete, NULL, NULL, 0, 0, NULL, NULL, 0);
+ LLVMDIBuilderCreateInheritance(DIB, Decl, SuperDecl, 0, 0, 0);
+ LLVMMetadataRef TestProperty =
+ LLVMDIBuilderCreateObjCProperty(DIB, "test", 4, File, 42, "getTest", 7, "setTest", 7, 0x20 /*copy*/ | 0x40 /*nonatomic*/, SuperDecl);
+ LLVMDIBuilderCreateObjCIVar(DIB, "_test", 5, File, 42, 64, 0, 64, LLVMDIFlagPublic, SuperDecl, TestProperty);
+ return Decl;
+}
+
int llvm_test_dibuilder(void) {
const char *Filename = "debuginfo.c";
LLVMModuleRef M = LLVMModuleCreateWithName(Filename);
@@ -48,6 +59,14 @@ int llvm_test_dibuilder(void) {
LLVMDIBuilderCreateImportedModuleFromAlias(DIB, Module, ImportedModule,
File, 42);
+ LLVMMetadataRef ClassTy = declare_objc_class(DIB, File);
+ LLVMMetadataRef GlobalClassValueExpr =
+ LLVMDIBuilderCreateConstantValueExpression(DIB, 0);
+ LLVMDIBuilderCreateGlobalVariableExpression(DIB, Module, "globalClass", 11,
+ "", 0, File, 1, ClassTy,
+ true, GlobalClassValueExpr,
+ NULL, 0);
+
LLVMMetadataRef Int64Ty =
LLVMDIBuilderCreateBasicType(DIB, "Int64", 5, 64, 0);
LLVMMetadataRef Int64TypeDef =
OpenPOWER on IntegriCloud