summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-mt/llvm-mt.cpp
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2018-04-13 18:26:06 +0000
committerRui Ueyama <ruiu@google.com>2018-04-13 18:26:06 +0000
commit197194b6c9829b9cdc5222939dd8cb25af05b3ca (patch)
tree385d75220b3266383a2a7f3c3d1467dbca4ca04b /llvm/tools/llvm-mt/llvm-mt.cpp
parenta4e874c516517a5e479599755734a734faefe128 (diff)
downloadbcm5719-llvm-197194b6c9829b9cdc5222939dd8cb25af05b3ca.tar.gz
bcm5719-llvm-197194b6c9829b9cdc5222939dd8cb25af05b3ca.zip
Define InitLLVM to do common initialization all at once.
We have a few functions that virtually all command wants to run on process startup/shutdown. This patch adds InitLLVM class to do that all at once, so that we don't need to copy-n-paste boilerplate code to each llvm command's main() function. Differential Revision: https://reviews.llvm.org/D45602 llvm-svn: 330046
Diffstat (limited to 'llvm/tools/llvm-mt/llvm-mt.cpp')
-rw-r--r--llvm/tools/llvm-mt/llvm-mt.cpp18
1 files changed, 4 insertions, 14 deletions
diff --git a/llvm/tools/llvm-mt/llvm-mt.cpp b/llvm/tools/llvm-mt/llvm-mt.cpp
index f95745e14f1..41f7327e9c2 100644
--- a/llvm/tools/llvm-mt/llvm-mt.cpp
+++ b/llvm/tools/llvm-mt/llvm-mt.cpp
@@ -17,6 +17,7 @@
#include "llvm/Option/Option.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/FileOutputBuffer.h"
+#include "llvm/Support/InitLLVM.h"
#include "llvm/Support/ManagedStatic.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/Path.h"
@@ -61,8 +62,6 @@ class CvtResOptTable : public opt::OptTable {
public:
CvtResOptTable() : OptTable(InfoTable, true) {}
};
-
-static ExitOnError ExitOnErr;
} // namespace
LLVM_ATTRIBUTE_NORETURN void reportError(Twine Msg) {
@@ -86,21 +85,12 @@ void error(Error EC) {
});
}
-int main(int argc, const char **argv) {
- sys::PrintStackTraceOnErrorSignal(argv[0]);
- PrettyStackTraceProgram X(argc, argv);
-
- ExitOnErr.setBanner("llvm-mt: ");
-
- SmallVector<const char *, 256> argv_buf;
- SpecificBumpPtrAllocator<char> ArgAllocator;
- ExitOnErr(errorCodeToError(sys::Process::GetArgumentVector(
- argv_buf, makeArrayRef(argv, argc), ArgAllocator)));
- llvm_shutdown_obj Y; // Call llvm_shutdown() on exit.
+int main(int Argc, const char **Argv) {
+ InitLLVM X(Argc, Argv);
CvtResOptTable T;
unsigned MAI, MAC;
- ArrayRef<const char *> ArgsArr = makeArrayRef(argv + 1, argc);
+ ArrayRef<const char *> ArgsArr = makeArrayRef(Argv + 1, Argc - 1);
opt::InputArgList InputArgs = T.ParseArgs(ArgsArr, MAI, MAC);
for (auto *Arg : InputArgs.filtered(OPT_INPUT)) {
OpenPOWER on IntegriCloud