diff options
author | Robert Widmann <devteam.codafi@gmail.com> | 2018-04-23 14:29:33 +0000 |
---|---|---|
committer | Robert Widmann <devteam.codafi@gmail.com> | 2018-04-23 14:29:33 +0000 |
commit | 6978db7800b6fe4a239c161b0ecd7bf1024abbe0 (patch) | |
tree | e0d70de76b2890e66d5e015569f89bb76eaf9203 /llvm/tools/llvm-c-test | |
parent | 514837cc6e731c6fc555548824a0435065d7dbb3 (diff) | |
download | bcm5719-llvm-6978db7800b6fe4a239c161b0ecd7bf1024abbe0.tar.gz bcm5719-llvm-6978db7800b6fe4a239c161b0ecd7bf1024abbe0.zip |
[LLVM-C] DIBuilderBindings for Subrange and Arrays
Summary: Move Go bindings for subranges and DINode arrays.
Reviewers: harlanhaskins, whitequark, deadalnix
Reviewed By: whitequark
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D45933
llvm-svn: 330594
Diffstat (limited to 'llvm/tools/llvm-c-test')
-rw-r--r-- | llvm/tools/llvm-c-test/debuginfo.c | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/llvm/tools/llvm-c-test/debuginfo.c b/llvm/tools/llvm-c-test/debuginfo.c index db950e044f8..b9c73f3b00d 100644 --- a/llvm/tools/llvm-c-test/debuginfo.c +++ b/llvm/tools/llvm-c-test/debuginfo.c @@ -55,18 +55,31 @@ int llvm_test_dibuilder(void) { LLVMMetadataAsValue(LLVMGetModuleContext(M), StructDbgPtrTy)); - LLVMTypeRef FooParamTys[] = { LLVMInt64Type(), LLVMInt64Type() }; - LLVMTypeRef FooFuncTy = LLVMFunctionType(LLVMInt64Type(), FooParamTys, 2, 0); + LLVMTypeRef FooParamTys[] = { + LLVMInt64Type(), + LLVMInt64Type(), + LLVMVectorType(LLVMInt64Type(), 10), + }; + LLVMTypeRef FooFuncTy = LLVMFunctionType(LLVMInt64Type(), FooParamTys, 3, 0); LLVMValueRef FooFunction = LLVMAddFunction(M, "foo", FooFuncTy); LLVMBasicBlockRef FooEntryBlock = LLVMAppendBasicBlock(FooFunction, "entry"); - LLVMMetadataRef ParamTypes[] = {Int64Ty, Int64Ty}; + LLVMMetadataRef Subscripts[] = { + LLVMDIBuilderGetOrCreateSubrange(DIB, 0, 10), + }; + LLVMMetadataRef VectorTy = + LLVMDIBuilderCreateVectorType(DIB, 64 * 10, 0, + Int64Ty, Subscripts, 1); + + + LLVMMetadataRef ParamTypes[] = {Int64Ty, Int64Ty, VectorTy}; LLVMMetadataRef FunctionTy = - LLVMDIBuilderCreateSubroutineType(DIB, File, ParamTypes, 2, 0); + LLVMDIBuilderCreateSubroutineType(DIB, File, ParamTypes, 3, 0); LLVMMetadataRef FunctionMetadata = LLVMDIBuilderCreateFunction(DIB, File, "foo", 3, "foo", 3, File, 42, FunctionTy, true, true, 42, 0, false); + LLVMMetadataRef FooParamLocation = LLVMDIBuilderCreateDebugLocation(LLVMGetGlobalContext(), 42, 0, FunctionMetadata, NULL); @@ -84,6 +97,13 @@ int llvm_test_dibuilder(void) { LLVMDIBuilderInsertDeclareAtEnd(DIB, LLVMConstInt(LLVMInt64Type(), 0, false), FooParamVar2, FooParamExpression, FooParamLocation, FooEntryBlock); + LLVMMetadataRef FooParamVar3 = + LLVMDIBuilderCreateParameterVariable(DIB, FunctionMetadata, "c", 1, 3, File, + 42, VectorTy, true, 0); + LLVMDIBuilderInsertDeclareAtEnd(DIB, LLVMConstInt(LLVMInt64Type(), 0, false), + FooParamVar3, FooParamExpression, + FooParamLocation, FooEntryBlock); + LLVMSetSubprogram(FooFunction, FunctionMetadata); LLVMMetadataRef FooLexicalBlock = |