diff options
author | Robert Widmann <devteam.codafi@gmail.com> | 2018-05-14 08:09:00 +0000 |
---|---|---|
committer | Robert Widmann <devteam.codafi@gmail.com> | 2018-05-14 08:09:00 +0000 |
commit | bce36770b7c5d9e2400216902fe2c27759079eb7 (patch) | |
tree | aa3f5d72ffc5f3deb7a09b3a57165040e870ca44 /llvm/tools/llvm-c-test | |
parent | 73cf805ffdc53c384c742f05fb777e9b8a90131c (diff) | |
download | bcm5719-llvm-bce36770b7c5d9e2400216902fe2c27759079eb7.tar.gz bcm5719-llvm-bce36770b7c5d9e2400216902fe2c27759079eb7.zip |
[LLVM-C] Add Bindings For Module Flags
Summary:
The first foray into merging debug info into the echo tests.
- Add bindings to Module::getModuleFlagsMetadata() in the form of LLVMCopyModuleFlagsMetadata
- Add the opaque type LLVMModuleFlagEntry to represent Module::ModuleFlagEntry
- Add accessors for LLVMModuleFlagEntry's behavior, key, and metadata node.
Reviewers: whitequark, deadalnix
Reviewed By: whitequark
Subscribers: aprantl, JDevlieghere, llvm-commits, harlanhaskins
Differential Revision: https://reviews.llvm.org/D46792
llvm-svn: 332219
Diffstat (limited to 'llvm/tools/llvm-c-test')
-rw-r--r-- | llvm/tools/llvm-c-test/echo.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/llvm/tools/llvm-c-test/echo.cpp b/llvm/tools/llvm-c-test/echo.cpp index 19ad5bd854b..fb7a4d720c4 100644 --- a/llvm/tools/llvm-c-test/echo.cpp +++ b/llvm/tools/llvm-c-test/echo.cpp @@ -997,6 +997,18 @@ int llvm_echo(void) { LLVMSetSourceFileName(M, SourceFileName, SourceFileLen); LLVMSetModuleIdentifier(M, ModuleName, ModuleIdentLen); + size_t SourceFlagsLen; + LLVMModuleFlagEntry *ModuleFlags = + LLVMCopyModuleFlagsMetadata(Src, &SourceFlagsLen); + for (unsigned i = 0; i < SourceFlagsLen; ++i) { + size_t EntryNameLen; + const char *EntryName = + LLVMModuleFlagEntriesGetKey(ModuleFlags, i, &EntryNameLen); + LLVMAddModuleFlag(M, LLVMModuleFlagEntriesGetFlagBehavior(ModuleFlags, i), + EntryName, EntryNameLen, + LLVMModuleFlagEntriesGetMetadata(ModuleFlags, i)); + } + LLVMSetTarget(M, LLVMGetTarget(Src)); LLVMSetModuleDataLayout(M, LLVMGetModuleDataLayout(Src)); if (strcmp(LLVMGetDataLayoutStr(M), LLVMGetDataLayoutStr(Src))) @@ -1011,6 +1023,7 @@ int llvm_echo(void) { char *Str = LLVMPrintModuleToString(M); fputs(Str, stdout); + LLVMDisposeModuleFlagsMetadata(ModuleFlags); LLVMDisposeMessage(Str); LLVMDisposeModule(Src); LLVMDisposeModule(M); |