diff options
author | Robert Widmann <devteam.codafi@gmail.com> | 2018-04-23 22:31:49 +0000 |
---|---|---|
committer | Robert Widmann <devteam.codafi@gmail.com> | 2018-04-23 22:31:49 +0000 |
commit | 21fc15d55387151f9b15a0e3b96cdda92c18e31a (patch) | |
tree | 6fc7c0cc08b73818b4c5067eea310e0ff6d3451e /llvm/tools/llvm-c-test | |
parent | 3c6ea7e28c957bdaf03df8a3a4ff00c46e9315f6 (diff) | |
download | bcm5719-llvm-21fc15d55387151f9b15a0e3b96cdda92c18e31a.tar.gz bcm5719-llvm-21fc15d55387151f9b15a0e3b96cdda92c18e31a.zip |
[LLVM-C] DIBuilder Bindings For Variable Expressions
Summary: Add DIBuilder bindings for (global) variable expressions, variable value expressions, and debug value intrinsic insertion.
Reviewers: harlanhaskins, deadalnix, whitequark
Reviewed By: whitequark
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D45979
llvm-svn: 330661
Diffstat (limited to 'llvm/tools/llvm-c-test')
-rw-r--r-- | llvm/tools/llvm-c-test/debuginfo.c | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/llvm/tools/llvm-c-test/debuginfo.c b/llvm/tools/llvm-c-test/debuginfo.c index b9c73f3b00d..411c4958d8c 100644 --- a/llvm/tools/llvm-c-test/debuginfo.c +++ b/llvm/tools/llvm-c-test/debuginfo.c @@ -36,11 +36,17 @@ int llvm_test_dibuilder(void) { "/test/include/llvm-c-test.h", 27, "", 0); - LLVMMetadataRef NameSpace = - LLVMDIBuilderCreateNameSpace(DIB, Module, "NameSpace", 9, false); - LLVMMetadataRef Int64Ty = LLVMDIBuilderCreateBasicType(DIB, "Int64", 5, 64, 0); + LLVMMetadataRef GlobalVarValueExpr = + LLVMDIBuilderCreateConstantValueExpression(DIB, 0); + LLVMDIBuilderCreateGlobalVariableExpression(DIB, Module, "global", 6, + "", 0, File, 1, Int64Ty, + true, GlobalVarValueExpr, + NULL, 0); + + LLVMMetadataRef NameSpace = + LLVMDIBuilderCreateNameSpace(DIB, Module, "NameSpace", 9, false); LLVMMetadataRef StructDbgElts[] = {Int64Ty, Int64Ty, Int64Ty}; LLVMMetadataRef StructDbgTy = @@ -109,14 +115,19 @@ int llvm_test_dibuilder(void) { LLVMMetadataRef FooLexicalBlock = LLVMDIBuilderCreateLexicalBlock(DIB, FunctionMetadata, File, 42, 0); - LLVMValueRef InnerFooFunction = - LLVMAddFunction(M, "foo_inner_scope", FooFuncTy); - LLVMMetadataRef InnerFunctionMetadata = - LLVMDIBuilderCreateFunction(DIB, FooLexicalBlock, "foo_inner_scope", 15, - "foo_inner_scope", 15, - File, 42, FunctionTy, true, true, - 42, 0, false); - LLVMSetSubprogram(InnerFooFunction, InnerFunctionMetadata); + LLVMBasicBlockRef FooVarBlock = LLVMAppendBasicBlock(FooFunction, "vars"); + LLVMMetadataRef FooVarsLocation = + LLVMDIBuilderCreateDebugLocation(LLVMGetGlobalContext(), 43, 0, + FunctionMetadata, NULL); + LLVMMetadataRef FooVar1 = + LLVMDIBuilderCreateAutoVariable(DIB, FooLexicalBlock, "d", 1, File, + 43, Int64Ty, true, 0, 0); + LLVMValueRef FooVal1 = LLVMConstInt(LLVMInt64Type(), 0, false); + LLVMMetadataRef FooVarValueExpr = + LLVMDIBuilderCreateConstantValueExpression(DIB, 0); + + LLVMDIBuilderInsertDbgValueAtEnd(DIB, FooVal1, FooVar1, FooVarValueExpr, + FooVarsLocation, FooVarBlock); LLVMDIBuilderFinalize(DIB); |