mstorsjo created this revision. mstorsjo added reviewers: labath, amccarth, rnk. Herald added a project: LLDB.
This avoids the currently MSVC specific codepath of using the wchar entry point and converting that to utf8. In the main lldb driver, we had this MSVC specific codepath, but in other potentially important entry points (like lldb-server), there's none at all. So if this is fine, we should probably add the same InitLLVM call to other lldb entry points as well. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D68770 Files: lldb/tools/driver/Driver.cpp Index: lldb/tools/driver/Driver.cpp =================================================================== --- lldb/tools/driver/Driver.cpp +++ lldb/tools/driver/Driver.cpp @@ -19,8 +19,8 @@ #include "lldb/API/SBStringList.h" #include "llvm/ADT/StringRef.h" -#include "llvm/Support/ConvertUTF.h" #include "llvm/Support/Format.h" +#include "llvm/Support/InitLLVM.h" #include "llvm/Support/Path.h" #include "llvm/Support/PrettyStackTrace.h" #include "llvm/Support/Process.h" @@ -807,23 +807,9 @@ return llvm::None; } -int -#ifdef _MSC_VER -wmain(int argc, wchar_t const *wargv[]) -#else -main(int argc, char const *argv[]) -#endif +int main(int argc, char const *argv[]) { -#ifdef _MSC_VER - // Convert wide arguments to UTF-8 - std::vector<std::string> argvStrings(argc); - std::vector<const char *> argvPointers(argc); - for (int i = 0; i != argc; ++i) { - llvm::convertWideToUTF8(wargv[i], argvStrings[i]); - argvPointers[i] = argvStrings[i].c_str(); - } - const char **argv = argvPointers.data(); -#endif + llvm::InitLLVM IL(argc, argv); // Print stack trace on crash. llvm::StringRef ToolName = llvm::sys::path::filename(argv[0]);
Index: lldb/tools/driver/Driver.cpp =================================================================== --- lldb/tools/driver/Driver.cpp +++ lldb/tools/driver/Driver.cpp @@ -19,8 +19,8 @@ #include "lldb/API/SBStringList.h" #include "llvm/ADT/StringRef.h" -#include "llvm/Support/ConvertUTF.h" #include "llvm/Support/Format.h" +#include "llvm/Support/InitLLVM.h" #include "llvm/Support/Path.h" #include "llvm/Support/PrettyStackTrace.h" #include "llvm/Support/Process.h" @@ -807,23 +807,9 @@ return llvm::None; } -int -#ifdef _MSC_VER -wmain(int argc, wchar_t const *wargv[]) -#else -main(int argc, char const *argv[]) -#endif +int main(int argc, char const *argv[]) { -#ifdef _MSC_VER - // Convert wide arguments to UTF-8 - std::vector<std::string> argvStrings(argc); - std::vector<const char *> argvPointers(argc); - for (int i = 0; i != argc; ++i) { - llvm::convertWideToUTF8(wargv[i], argvStrings[i]); - argvPointers[i] = argvStrings[i].c_str(); - } - const char **argv = argvPointers.data(); -#endif + llvm::InitLLVM IL(argc, argv); // Print stack trace on crash. llvm::StringRef ToolName = llvm::sys::path::filename(argv[0]);
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits