summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-c-test
diff options
context:
space:
mode:
authorRobert Widmann <devteam.codafi@gmail.com>2018-04-23 14:29:33 +0000
committerRobert Widmann <devteam.codafi@gmail.com>2018-04-23 14:29:33 +0000
commit6978db7800b6fe4a239c161b0ecd7bf1024abbe0 (patch)
treee0d70de76b2890e66d5e015569f89bb76eaf9203 /llvm/tools/llvm-c-test
parent514837cc6e731c6fc555548824a0435065d7dbb3 (diff)
downloadbcm5719-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.c28
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 =
OpenPOWER on IntegriCloud