diff options
author | Brad King <brad.king@kitware.com> | 2018-07-27 17:12:47 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2018-07-27 17:13:45 (GMT) |
commit | a345f628237a36c9ca55364760e41ff7a936e7da (patch) | |
tree | 6e4a868fe12a8e02d87eb0b5063c38e95827ec4a /src/castxml.cxx | |
parent | 98a626ecb1aa522ca4f2575aeddc4ca3bb8c76db (diff) | |
download | CastXML-a345f628237a36c9ca55364760e41ff7a936e7da.zip CastXML-a345f628237a36c9ca55364760e41ff7a936e7da.tar.gz CastXML-a345f628237a36c9ca55364760e41ff7a936e7da.tar.bz2 |
Port to LLVM/Clang SVN r338041 (trunk)
LLVM/Clang commit r334518 (Refactor ExecuteAndWait to take StringRefs,
2018-06-12) changed the signature of `ExecuteAndWait`. Update our call.
LLVM/Clang commit r330216 (Rename sys::Process::GetArgumentVector ->
sys::windows::GetCommandLineArguments, 2018-04-17) removed the
`GetArgumentVector` API we were using. Instead use `InitLLVM` to get
proper command-line arguments as was done for Clang by LLVM/Clang
commit r330067 (Use InitLLVM in clang as well, 2018-04-13).
Diffstat (limited to 'src/castxml.cxx')
-rw-r--r-- | src/castxml.cxx | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/castxml.cxx b/src/castxml.cxx index 9b75e94..4989857 100644 --- a/src/castxml.cxx +++ b/src/castxml.cxx @@ -28,6 +28,10 @@ #include "llvm/Support/TargetSelect.h" #include "llvm/Support/raw_ostream.h" +#if LLVM_VERSION_MAJOR >= 7 +#include "llvm/Support/InitLLVM.h" +#endif + #include <iostream> #include <set> #include <sstream> @@ -55,13 +59,20 @@ int main(int argc_in, const char** argv_in) { suppressInteractiveErrors(); +#if LLVM_VERSION_MAJOR >= 7 + llvm::InitLLVM initLLVM(argc_in, argv_in); + llvm::SmallVector<const char*, 64> argv(argv_in, argv_in + argc_in); +#else llvm::SmallVector<const char*, 64> argv; llvm::SpecificBumpPtrAllocator<char> argAlloc; if (std::error_code e = llvm::sys::Process::GetArgumentVector( argv, llvm::ArrayRef<const char*>(argv_in, argc_in), argAlloc)) { llvm::errs() << "error: could not get arguments: " << e.message() << "\n"; return 1; - } else if (argv.empty()) { + } +#endif + + if (argv.empty()) { llvm::errs() << "error: no argv[0]?!\n"; return 1; } |