summaryrefslogtreecommitdiffstats
path: root/llvm/tools
diff options
context:
space:
mode:
authorwhitequark <whitequark@whitequark.org>2019-10-07 13:57:13 +0000
committerwhitequark <whitequark@whitequark.org>2019-10-07 13:57:13 +0000
commitb63db94fa54789d8241b16e05f2c9d9959afe297 (patch)
tree804900a952b6714a5cb34791c423f209c32494b7 /llvm/tools
parenta6fc72fba9dc3cc5d02236190df9d661563ddfd7 (diff)
downloadbcm5719-llvm-b63db94fa54789d8241b16e05f2c9d9959afe297.tar.gz
bcm5719-llvm-b63db94fa54789d8241b16e05f2c9d9959afe297.zip
[LLVM-C] Add bindings to create macro debug info
Summary: The C API doesn't have the bindings to create macro debug information. Reviewers: whitequark, CodaFi, deadalnix Reviewed By: whitequark Subscribers: aprantl, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D58334 llvm-svn: 373903
Diffstat (limited to 'llvm/tools')
-rw-r--r--llvm/tools/llvm-c-test/debuginfo.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/llvm/tools/llvm-c-test/debuginfo.c b/llvm/tools/llvm-c-test/debuginfo.c
index ff96037d4af..e498de6a745 100644
--- a/llvm/tools/llvm-c-test/debuginfo.c
+++ b/llvm/tools/llvm-c-test/debuginfo.c
@@ -170,6 +170,27 @@ int llvm_test_dibuilder(void) {
LLVMDIBuilderInsertDbgValueAtEnd(DIB, FooVal1, FooVar1, FooVarValueExpr,
FooVarsLocation, FooVarBlock);
+ LLVMMetadataRef MacroFile =
+ LLVMDIBuilderCreateTempMacroFile(DIB, NULL, 0, File);
+ LLVMDIBuilderCreateMacro(DIB, MacroFile, 0, LLVMDWARFMacinfoRecordTypeDefine,
+ "SIMPLE_DEFINE", 13, NULL, 0);
+ LLVMDIBuilderCreateMacro(DIB, MacroFile, 0, LLVMDWARFMacinfoRecordTypeDefine,
+ "VALUE_DEFINE", 12, "1", 1);
+
+ LLVMMetadataRef EnumeratorTestA =
+ LLVMDIBuilderCreateEnumerator(DIB, "Test_A", strlen("Test_A"), 0, true);
+ LLVMMetadataRef EnumeratorTestB =
+ LLVMDIBuilderCreateEnumerator(DIB, "Test_B", strlen("Test_B"), 1, true);
+ LLVMMetadataRef EnumeratorTestC =
+ LLVMDIBuilderCreateEnumerator(DIB, "Test_B", strlen("Test_C"), 2, true);
+ LLVMMetadataRef EnumeratorsTest[] = {EnumeratorTestA, EnumeratorTestB,
+ EnumeratorTestC};
+ LLVMMetadataRef EnumTest = LLVMDIBuilderCreateEnumerationType(
+ DIB, NameSpace, "EnumTest", strlen("EnumTest"), File, 0, 64, 0,
+ EnumeratorsTest, 3, Int64Ty);
+ LLVMAddNamedMetadataOperand(
+ M, "EnumTest", LLVMMetadataAsValue(LLVMGetModuleContext(M), EnumTest));
+
LLVMDIBuilderFinalize(DIB);
char *MStr = LLVMPrintModuleToString(M);
OpenPOWER on IntegriCloud