summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-c-test
diff options
context:
space:
mode:
authorRobert Widmann <devteam.codafi@gmail.com>2018-04-23 22:31:49 +0000
committerRobert Widmann <devteam.codafi@gmail.com>2018-04-23 22:31:49 +0000
commit21fc15d55387151f9b15a0e3b96cdda92c18e31a (patch)
tree6fc7c0cc08b73818b4c5067eea310e0ff6d3451e /llvm/tools/llvm-c-test
parent3c6ea7e28c957bdaf03df8a3a4ff00c46e9315f6 (diff)
downloadbcm5719-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.c33
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);
OpenPOWER on IntegriCloud