diff options
| author | whitequark <whitequark@whitequark.org> | 2019-10-07 13:57:13 +0000 |
|---|---|---|
| committer | whitequark <whitequark@whitequark.org> | 2019-10-07 13:57:13 +0000 |
| commit | b63db94fa54789d8241b16e05f2c9d9959afe297 (patch) | |
| tree | 804900a952b6714a5cb34791c423f209c32494b7 /llvm/tools | |
| parent | a6fc72fba9dc3cc5d02236190df9d661563ddfd7 (diff) | |
| download | bcm5719-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.c | 21 |
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); |

