summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-c-test
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-12-18 23:46:42 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-12-18 23:46:42 +0000
commit2339ffed97f6644294c173107144d2f15ac68987 (patch)
treeb42525d16896bbe1c03e353a7cc68f44027e0b61 /llvm/tools/llvm-c-test
parente6fa51c9416b3cb45af9c31992bb5796336d2906 (diff)
downloadbcm5719-llvm-2339ffed97f6644294c173107144d2f15ac68987.tar.gz
bcm5719-llvm-2339ffed97f6644294c173107144d2f15ac68987.zip
Deprecate a few C APIs.
This deprecates: * LLVMParseBitcode * LLVMParseBitcodeInContext * LLVMGetBitcodeModuleInContext * LLVMGetBitcodeModule They are replaced with the functions with a 2 suffix which do not record a diagnostic. llvm-svn: 256065
Diffstat (limited to 'llvm/tools/llvm-c-test')
-rw-r--r--llvm/tools/llvm-c-test/llvm-c-test.h2
-rw-r--r--llvm/tools/llvm-c-test/main.c15
-rw-r--r--llvm/tools/llvm-c-test/module.c34
3 files changed, 38 insertions, 13 deletions
diff --git a/llvm/tools/llvm-c-test/llvm-c-test.h b/llvm/tools/llvm-c-test/llvm-c-test.h
index 5f49d702b21..7929fc4d19b 100644
--- a/llvm/tools/llvm-c-test/llvm-c-test.h
+++ b/llvm/tools/llvm-c-test/llvm-c-test.h
@@ -19,7 +19,7 @@
void tokenize_stdin(void (*cb)(char **tokens, int ntokens));
// module.c
-int module_dump(bool Lazy);
+int module_dump(bool Lazy, bool New);
int module_list_functions(void);
int module_list_globals(void);
diff --git a/llvm/tools/llvm-c-test/main.c b/llvm/tools/llvm-c-test/main.c
index 185ed4c0e04..e6b6e17098b 100644
--- a/llvm/tools/llvm-c-test/main.c
+++ b/llvm/tools/llvm-c-test/main.c
@@ -26,6 +26,11 @@ static void print_usage(void) {
fprintf(stderr, " * --lazy-module-dump\n");
fprintf(stderr,
" Lazily read bytecode from stdin - print disassembly\n\n");
+ fprintf(stderr, " * --new-module-dump\n");
+ fprintf(stderr, " Read bytecode from stdin - print disassembly\n\n");
+ fprintf(stderr, " * --lazy-new-module-dump\n");
+ fprintf(stderr,
+ " Lazily read bytecode from stdin - print disassembly\n\n");
fprintf(stderr, " * --module-list-functions\n");
fprintf(stderr,
" Read bytecode from stdin - list summary of functions\n\n");
@@ -52,10 +57,14 @@ int main(int argc, char **argv) {
LLVMInitializeCore(pr);
- if (argc == 2 && !strcmp(argv[1], "--lazy-module-dump")) {
- return module_dump(true);
+ if (argc == 2 && !strcmp(argv[1], "--lazy-new-module-dump")) {
+ return module_dump(true, true);
+ } else if (argc == 2 && !strcmp(argv[1], "--new-module-dump")) {
+ return module_dump(false, true);
+ } else if (argc == 2 && !strcmp(argv[1], "--lazy-module-dump")) {
+ return module_dump(true, false);
} else if (argc == 2 && !strcmp(argv[1], "--module-dump")) {
- return module_dump(false);
+ return module_dump(false, false);
} else if (argc == 2 && !strcmp(argv[1], "--module-list-functions")) {
return module_list_functions();
} else if (argc == 2 && !strcmp(argv[1], "--module-list-globals")) {
diff --git a/llvm/tools/llvm-c-test/module.c b/llvm/tools/llvm-c-test/module.c
index 0f27337eb7c..a6c47bf5fa1 100644
--- a/llvm/tools/llvm-c-test/module.c
+++ b/llvm/tools/llvm-c-test/module.c
@@ -19,7 +19,14 @@
#include <stdlib.h>
#include <string.h>
-static LLVMModuleRef load_module(bool Lazy) {
+static void diagnosticHandler(LLVMDiagnosticInfoRef DI, void *C) {
+ char *CErr = LLVMGetDiagInfoDescription(DI);
+ fprintf(stderr, "Error with new bitcode parser: %s\n", CErr);
+ LLVMDisposeMessage(CErr);
+ exit(1);
+}
+
+static LLVMModuleRef load_module(bool Lazy, bool New) {
LLVMMemoryBufferRef MB;
LLVMModuleRef M;
char *msg = NULL;
@@ -30,10 +37,19 @@ static LLVMModuleRef load_module(bool Lazy) {
}
LLVMBool Ret;
- if (Lazy)
- Ret = LLVMGetBitcodeModule(MB, &M, &msg);
- else
- Ret = LLVMParseBitcode(MB, &M, &msg);
+ if (New) {
+ LLVMContextRef C = LLVMGetGlobalContext();
+ LLVMContextSetDiagnosticHandler(C, diagnosticHandler, NULL);
+ if (Lazy)
+ Ret = LLVMGetBitcodeModule2(MB, &M);
+ else
+ Ret = LLVMParseBitcode2(MB, &M);
+ } else {
+ if (Lazy)
+ Ret = LLVMGetBitcodeModule(MB, &M, &msg);
+ else
+ Ret = LLVMParseBitcode(MB, &M, &msg);
+ }
if (Ret) {
fprintf(stderr, "Error parsing bitcode: %s\n", msg);
@@ -47,8 +63,8 @@ static LLVMModuleRef load_module(bool Lazy) {
return M;
}
-int module_dump(bool Lazy) {
- LLVMModuleRef M = load_module(Lazy);
+int module_dump(bool Lazy, bool New) {
+ LLVMModuleRef M = load_module(Lazy, New);
char *irstr = LLVMPrintModuleToString(M);
puts(irstr);
@@ -60,7 +76,7 @@ int module_dump(bool Lazy) {
}
int module_list_functions(void) {
- LLVMModuleRef M = load_module(false);
+ LLVMModuleRef M = load_module(false, false);
LLVMValueRef f;
f = LLVMGetFirstFunction(M);
@@ -101,7 +117,7 @@ int module_list_functions(void) {
}
int module_list_globals(void) {
- LLVMModuleRef M = load_module(false);
+ LLVMModuleRef M = load_module(false, false);
LLVMValueRef g;
g = LLVMGetFirstGlobal(M);
OpenPOWER on IntegriCloud