summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-c-test
diff options
context:
space:
mode:
authorRobert Widmann <devteam.codafi@gmail.com>2018-05-14 08:09:00 +0000
committerRobert Widmann <devteam.codafi@gmail.com>2018-05-14 08:09:00 +0000
commitbce36770b7c5d9e2400216902fe2c27759079eb7 (patch)
treeaa3f5d72ffc5f3deb7a09b3a57165040e870ca44 /llvm/tools/llvm-c-test
parent73cf805ffdc53c384c742f05fb777e9b8a90131c (diff)
downloadbcm5719-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.cpp13
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);
OpenPOWER on IntegriCloud