Author: Rui Ueyama Date: 2019-11-26T10:56:10+09:00 New Revision: 3f76260dc0674cc0acb25f550a0f0c594cf537ea
URL: https://github.com/llvm/llvm-project/commit/3f76260dc0674cc0acb25f550a0f0c594cf537ea DIFF: https://github.com/llvm/llvm-project/commit/3f76260dc0674cc0acb25f550a0f0c594cf537ea.diff LOG: Use InitLLVM to setup a pretty stack printer InitLLVM does not only save a few lines from main() but also makes the commands do the right thing for multibyte character pathnames on Windows (i.e. canonicalize argv's to UTF-8) because of the code we have in this file: https://github.com/llvm/llvm-project/blob/master/llvm/lib/Support/InitLLVM.cpp#L32 For many LLVM commands, we already have calls of InitLLVM, but there are still remainings. Differential Revision: https://reviews.llvm.org/D70702 Added: Modified: clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp clang-tools-extra/clang-doc/tool/ClangDocMain.cpp clang-tools-extra/clang-move/tool/ClangMove.cpp clang-tools-extra/clang-query/tool/ClangQuery.cpp clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp clang-tools-extra/clangd/index/dex/dexp/Dexp.cpp clang-tools-extra/clangd/indexer/IndexerMain.cpp clang-tools-extra/clangd/tool/ClangdMain.cpp clang-tools-extra/tool-template/ToolTemplate.cpp clang/tools/arcmt-test/arcmt-test.cpp clang/tools/c-index-test/core_main.cpp clang/tools/clang-check/ClangCheck.cpp clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp clang/tools/clang-refactor/ClangRefactor.cpp clang/utils/TableGen/TableGen.cpp llvm/utils/KillTheDoctor/KillTheDoctor.cpp llvm/utils/TableGen/TableGen.cpp Removed: ################################################################################ diff --git a/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp b/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp index a97be99b0bd8..a567d7f82dea 100644 --- a/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp +++ b/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp @@ -37,6 +37,7 @@ #include "clang/Tooling/Refactoring.h" #include "clang/Tooling/Tooling.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/InitLLVM.h" #include "llvm/Support/Signals.h" #include "llvm/Support/YAMLTraits.h" @@ -98,7 +99,7 @@ llvm::ErrorOr<std::vector<std::string>> GetWhiteListedSymbolPatterns() { } // anonymous namespace int main(int argc, const char **argv) { - llvm::sys::PrintStackTraceOnErrorSignal(argv[0]); + llvm::InitLLVM X(argc, argv); tooling::CommonOptionsParser OptionsParser(argc, argv, ChangeNamespaceCategory); const auto &Files = OptionsParser.getSourcePathList(); diff --git a/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp b/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp index 38b781ed39f4..d27a012b78ff 100644 --- a/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp +++ b/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp @@ -36,6 +36,7 @@ #include "llvm/Support/CommandLine.h" #include "llvm/Support/Error.h" #include "llvm/Support/FileSystem.h" +#include "llvm/Support/InitLLVM.h" #include "llvm/Support/Mutex.h" #include "llvm/Support/Path.h" #include "llvm/Support/Process.h" @@ -179,7 +180,7 @@ llvm::Expected<llvm::SmallString<128>> getInfoOutputFile(StringRef Root, } int main(int argc, const char **argv) { - llvm::sys::PrintStackTraceOnErrorSignal(argv[0]); + llvm::InitLLVM X(argc, argv); std::error_code OK; ExecutorName.setInitialValue("all-TUs"); diff --git a/clang-tools-extra/clang-move/tool/ClangMove.cpp b/clang-tools-extra/clang-move/tool/ClangMove.cpp index 2df7df7fe3a7..fdf83ab4604b 100644 --- a/clang-tools-extra/clang-move/tool/ClangMove.cpp +++ b/clang-tools-extra/clang-move/tool/ClangMove.cpp @@ -15,6 +15,7 @@ #include "clang/Tooling/Tooling.h" #include "llvm/ADT/StringRef.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/InitLLVM.h" #include "llvm/Support/Path.h" #include "llvm/Support/Process.h" #include "llvm/Support/Signals.h" @@ -94,7 +95,7 @@ cl::opt<bool> DumpDecls( } // namespace int main(int argc, const char **argv) { - llvm::sys::PrintStackTraceOnErrorSignal(argv[0]); + llvm::InitLLVM X(argc, argv); tooling::CommonOptionsParser OptionsParser(argc, argv, ClangMoveCategory); if (OldDependOnNew && NewDependOnOld) { diff --git a/clang-tools-extra/clang-query/tool/ClangQuery.cpp b/clang-tools-extra/clang-query/tool/ClangQuery.cpp index 80e1c602796c..56a1e25e1447 100644 --- a/clang-tools-extra/clang-query/tool/ClangQuery.cpp +++ b/clang-tools-extra/clang-query/tool/ClangQuery.cpp @@ -33,6 +33,7 @@ #include "clang/Tooling/Tooling.h" #include "llvm/LineEditor/LineEditor.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/InitLLVM.h" #include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/Signals.h" #include <fstream> @@ -81,7 +82,7 @@ bool runCommandsInFile(const char *ExeName, std::string const &FileName, } int main(int argc, const char **argv) { - llvm::sys::PrintStackTraceOnErrorSignal(argv[0]); + llvm::InitLLVM X(argc, argv); CommonOptionsParser OptionsParser(argc, argv, ClangQueryCategory); diff --git a/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp b/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp index df83de856238..ad6182def20d 100644 --- a/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp +++ b/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp @@ -18,6 +18,7 @@ #include "../ClangTidyForceLinker.h" #include "../GlobList.h" #include "clang/Tooling/CommonOptionsParser.h" +#include "llvm/Support/InitLLVM.h" #include "llvm/Support/Process.h" #include "llvm/Support/Signals.h" #include "llvm/Support/TargetSelect.h" @@ -327,7 +328,7 @@ getVfsFromFile(const std::string &OverlayFile, } static int clangTidyMain(int argc, const char **argv) { - llvm::sys::PrintStackTraceOnErrorSignal(argv[0]); + llvm::InitLLVM X(argc, argv); CommonOptionsParser OptionsParser(argc, argv, ClangTidyCategory, cl::ZeroOrMore); llvm::IntrusiveRefCntPtr<vfs::OverlayFileSystem> BaseFS( diff --git a/clang-tools-extra/clangd/index/dex/dexp/Dexp.cpp b/clang-tools-extra/clangd/index/dex/dexp/Dexp.cpp index 81e435fb64d0..a026f25a0818 100644 --- a/clang-tools-extra/clangd/index/dex/dexp/Dexp.cpp +++ b/clang-tools-extra/clangd/index/dex/dexp/Dexp.cpp @@ -19,6 +19,7 @@ #include "llvm/ADT/StringSwitch.h" #include "llvm/LineEditor/LineEditor.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/InitLLVM.h" #include "llvm/Support/Signals.h" namespace clang { @@ -275,9 +276,9 @@ std::unique_ptr<SymbolIndex> openIndex(llvm::StringRef Index) { int main(int argc, const char *argv[]) { using namespace clang::clangd; + llvm::InitLLVM X(argc, argv); llvm::cl::ParseCommandLineOptions(argc, argv, Overview); llvm::cl::ResetCommandLineParser(); // We reuse it for REPL commands. - llvm::sys::PrintStackTraceOnErrorSignal(argv[0]); std::unique_ptr<SymbolIndex> Index; reportTime("Dex build", [&]() { diff --git a/clang-tools-extra/clangd/indexer/IndexerMain.cpp b/clang-tools-extra/clangd/indexer/IndexerMain.cpp index dac038308d9e..1bff91f1a2d3 100644 --- a/clang-tools-extra/clangd/indexer/IndexerMain.cpp +++ b/clang-tools-extra/clangd/indexer/IndexerMain.cpp @@ -21,6 +21,7 @@ #include "clang/Tooling/Execution.h" #include "clang/Tooling/Tooling.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/InitLLVM.h" #include "llvm/Support/Signals.h" namespace clang { @@ -92,7 +93,7 @@ class IndexActionFactory : public tooling::FrontendActionFactory { } // namespace clang int main(int argc, const char **argv) { - llvm::sys::PrintStackTraceOnErrorSignal(argv[0]); + llvm::InitLLVM X(argc, argv); const char *Overview = R"( Creates an index of symbol information etc in a whole project. diff --git a/clang-tools-extra/clangd/tool/ClangdMain.cpp b/clang-tools-extra/clangd/tool/ClangdMain.cpp index 2639df31dbe8..b8df361d4d2f 100644 --- a/clang-tools-extra/clangd/tool/ClangdMain.cpp +++ b/clang-tools-extra/clangd/tool/ClangdMain.cpp @@ -21,6 +21,7 @@ #include "llvm/ADT/StringRef.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/FileSystem.h" +#include "llvm/Support/InitLLVM.h" #include "llvm/Support/Path.h" #include "llvm/Support/Process.h" #include "llvm/Support/Program.h" @@ -433,8 +434,8 @@ int main(int argc, char *argv[]) { using namespace clang; using namespace clang::clangd; + llvm::InitLLVM X(argc, argv); llvm::InitializeAllTargetInfos(); - llvm::sys::PrintStackTraceOnErrorSignal(argv[0]); llvm::cl::SetVersionPrinter([](llvm::raw_ostream &OS) { OS << clang::getClangToolFullVersion("clangd") << "\n"; }); diff --git a/clang-tools-extra/tool-template/ToolTemplate.cpp b/clang-tools-extra/tool-template/ToolTemplate.cpp index 3220eb33ac40..f9949d79a3f9 100644 --- a/clang-tools-extra/tool-template/ToolTemplate.cpp +++ b/clang-tools-extra/tool-template/ToolTemplate.cpp @@ -44,6 +44,7 @@ #include "clang/Tooling/Refactoring/AtomicChange.h" #include "clang/Tooling/Tooling.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/InitLLVM.h" #include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/Signals.h" @@ -88,7 +89,7 @@ static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); static cl::OptionCategory ToolTemplateCategory("tool-template options"); int main(int argc, const char **argv) { - llvm::sys::PrintStackTraceOnErrorSignal(argv[0]); + llvm::InitLLVM X(argc, argv); auto Executor = clang::tooling::createExecutorFromCommandLineArgs( argc, argv, ToolTemplateCategory); diff --git a/clang/tools/arcmt-test/arcmt-test.cpp b/clang/tools/arcmt-test/arcmt-test.cpp index c4ba12d4f7cf..5c79321967f1 100644 --- a/clang/tools/arcmt-test/arcmt-test.cpp +++ b/clang/tools/arcmt-test/arcmt-test.cpp @@ -15,6 +15,7 @@ #include "clang/Lex/Preprocessor.h" #include "clang/Lex/PreprocessorOptions.h" #include "llvm/Support/FileSystem.h" +#include "llvm/Support/InitLLVM.h" #include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/Path.h" #include "llvm/Support/Signals.h" @@ -340,8 +341,8 @@ static void printSourceRange(CharSourceRange range, ASTContext &Ctx, //===----------------------------------------------------------------------===// int main(int argc, const char **argv) { + llvm::InitLLVM X(argc, argv); void *MainAddr = (void*) (intptr_t) GetExecutablePath; - llvm::sys::PrintStackTraceOnErrorSignal(argv[0]); std::string resourcesPath = CompilerInvocation::GetResourcesPath(argv[0], MainAddr); diff --git a/clang/tools/c-index-test/core_main.cpp b/clang/tools/c-index-test/core_main.cpp index faf8b668b4e3..6a8877b113e6 100644 --- a/clang/tools/c-index-test/core_main.cpp +++ b/clang/tools/c-index-test/core_main.cpp @@ -13,16 +13,17 @@ #include "clang/Frontend/CompilerInstance.h" #include "clang/Frontend/CompilerInvocation.h" #include "clang/Frontend/FrontendAction.h" -#include "clang/Index/IndexingAction.h" #include "clang/Index/IndexDataConsumer.h" +#include "clang/Index/IndexingAction.h" #include "clang/Index/USRGeneration.h" #include "clang/Lex/Preprocessor.h" #include "clang/Serialization/ASTReader.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/FileSystem.h" +#include "llvm/Support/InitLLVM.h" +#include "llvm/Support/PrettyStackTrace.h" #include "llvm/Support/Signals.h" #include "llvm/Support/raw_ostream.h" -#include "llvm/Support/PrettyStackTrace.h" using namespace clang; using namespace clang::index; @@ -320,8 +321,7 @@ static void printSymbolNameAndUSR(const clang::Module *Mod, raw_ostream &OS) { //===----------------------------------------------------------------------===// int indextest_core_main(int argc, const char **argv) { - sys::PrintStackTraceOnErrorSignal(argv[0]); - PrettyStackTraceProgram X(argc, argv); + llvm::InitLLVM X(argc, argv); void *MainAddr = (void*) (intptr_t) indextest_core_main; std::string Executable = llvm::sys::fs::getMainExecutable(argv[0], MainAddr); diff --git a/clang/tools/clang-check/ClangCheck.cpp b/clang/tools/clang-check/ClangCheck.cpp index 2f59e2b82d34..466dac942254 100644 --- a/clang/tools/clang-check/ClangCheck.cpp +++ b/clang/tools/clang-check/ClangCheck.cpp @@ -27,6 +27,7 @@ #include "clang/Tooling/Tooling.h" #include "llvm/ADT/STLExtras.h" #include "llvm/Option/OptTable.h" +#include "llvm/Support/InitLLVM.h" #include "llvm/Support/Path.h" #include "llvm/Support/Signals.h" #include "llvm/Support/TargetSelect.h" @@ -151,7 +152,7 @@ class ClangCheckActionFactory { } // namespace int main(int argc, const char **argv) { - llvm::sys::PrintStackTraceOnErrorSignal(argv[0]); + llvm::InitLLVM X(argc, argv); // Initialize targets for clang module support. llvm::InitializeAllTargets(); diff --git a/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp b/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp index 0047aa4724f7..8776deeb2c5c 100644 --- a/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp +++ b/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp @@ -20,6 +20,7 @@ #include "clang/Tooling/CommonOptionsParser.h" #include "clang/Tooling/Tooling.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/InitLLVM.h" #include "llvm/Support/Signals.h" #include <sstream> #include <string> @@ -113,8 +114,7 @@ static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); int main(int argc, const char **argv) { // Print a stack trace if we signal out. - sys::PrintStackTraceOnErrorSignal(argv[0], false); - PrettyStackTraceProgram X(argc, argv); + llvm::InitLLVM X(argc, argv); const char *Overview = "\nThis tool collects the USR name and location " "of external definitions in the source files " diff --git a/clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp b/clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp index a75d2a630cf4..27d5cc4535ad 100644 --- a/clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp +++ b/clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp @@ -30,6 +30,7 @@ #include "llvm/Support/Error.h" #include "llvm/Support/ErrorOr.h" #include "llvm/Support/FileSystem.h" +#include "llvm/Support/InitLLVM.h" #include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/Path.h" #include "llvm/Support/Program.h" @@ -816,7 +817,7 @@ static void PrintVersion(raw_ostream &OS) { } int main(int argc, const char **argv) { - sys::PrintStackTraceOnErrorSignal(argv[0]); + llvm::InitLLVM X(argc, argv); cl::HideUnrelatedOptions(ClangOffloadBundlerCategory); cl::SetVersionPrinter(PrintVersion); diff --git a/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp b/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp index c3863422adf6..f232eafec683 100644 --- a/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp +++ b/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp @@ -27,6 +27,7 @@ #include "llvm/Support/Errc.h" #include "llvm/Support/Error.h" #include "llvm/Support/ErrorOr.h" +#include "llvm/Support/InitLLVM.h" #include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/Signals.h" #include "llvm/Support/ToolOutputFile.h" @@ -303,7 +304,7 @@ class BinaryWrapper { } // anonymous namespace int main(int argc, const char **argv) { - sys::PrintStackTraceOnErrorSignal(argv[0]); + llvm::InitLLVM X(argc, argv); cl::HideUnrelatedOptions(ClangOffloadWrapperCategory); cl::SetVersionPrinter([](raw_ostream &OS) { diff --git a/clang/tools/clang-refactor/ClangRefactor.cpp b/clang/tools/clang-refactor/ClangRefactor.cpp index 8b44c7fa6ede..2314317b7db2 100644 --- a/clang/tools/clang-refactor/ClangRefactor.cpp +++ b/clang/tools/clang-refactor/ClangRefactor.cpp @@ -24,6 +24,7 @@ #include "clang/Tooling/Tooling.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/FileSystem.h" +#include "llvm/Support/InitLLVM.h" #include "llvm/Support/Signals.h" #include "llvm/Support/raw_ostream.h" #include <string> @@ -608,7 +609,7 @@ class ClangRefactorTool { } // end anonymous namespace int main(int argc, const char **argv) { - llvm::sys::PrintStackTraceOnErrorSignal(argv[0]); + llvm::InitLLVM X(argc, argv); ClangRefactorTool RefactorTool; diff --git a/clang/utils/TableGen/TableGen.cpp b/clang/utils/TableGen/TableGen.cpp index c988a580f298..3b9c8336bb64 100644 --- a/clang/utils/TableGen/TableGen.cpp +++ b/clang/utils/TableGen/TableGen.cpp @@ -10,9 +10,10 @@ // //===----------------------------------------------------------------------===// -#include "TableGenBackends.h" // Declares all backends. #include "ClangASTEmitters.h" +#include "TableGenBackends.h" // Declares all backends. #include "llvm/Support/CommandLine.h" +#include "llvm/Support/InitLLVM.h" #include "llvm/Support/PrettyStackTrace.h" #include "llvm/Support/Signals.h" #include "llvm/TableGen/Error.h" @@ -349,8 +350,7 @@ bool ClangTableGenMain(raw_ostream &OS, RecordKeeper &Records) { } int main(int argc, char **argv) { - sys::PrintStackTraceOnErrorSignal(argv[0]); - PrettyStackTraceProgram X(argc, argv); + llvm::InitLLVM X(argc, argv); cl::ParseCommandLineOptions(argc, argv); llvm_shutdown_obj Y; diff --git a/llvm/utils/KillTheDoctor/KillTheDoctor.cpp b/llvm/utils/KillTheDoctor/KillTheDoctor.cpp index 358ef165cf63..c5501f9688d9 100644 --- a/llvm/utils/KillTheDoctor/KillTheDoctor.cpp +++ b/llvm/utils/KillTheDoctor/KillTheDoctor.cpp @@ -36,6 +36,7 @@ #include "llvm/ADT/StringRef.h" #include "llvm/ADT/Twine.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/InitLLVM.h" #include "llvm/Support/ManagedStatic.h" #include "llvm/Support/Path.h" #include "llvm/Support/PrettyStackTrace.h" @@ -295,8 +296,7 @@ static StringRef ExceptionCodeToString(DWORD ExceptionCode) { int main(int argc, char **argv) { // Print a stack trace if we signal out. - sys::PrintStackTraceOnErrorSignal(argv[0]); - PrettyStackTraceProgram X(argc, argv); + llvm::InitLLVM X(argc, argv); llvm_shutdown_obj Y; // Call llvm_shutdown() on exit. ToolName = argv[0]; diff --git a/llvm/utils/TableGen/TableGen.cpp b/llvm/utils/TableGen/TableGen.cpp index 086560e7b265..e7f96c26fcce 100644 --- a/llvm/utils/TableGen/TableGen.cpp +++ b/llvm/utils/TableGen/TableGen.cpp @@ -12,6 +12,7 @@ #include "TableGenBackends.h" // Declares all backends. #include "llvm/Support/CommandLine.h" +#include "llvm/Support/InitLLVM.h" #include "llvm/Support/ManagedStatic.h" #include "llvm/Support/PrettyStackTrace.h" #include "llvm/Support/Signals.h" @@ -266,8 +267,7 @@ bool LLVMTableGenMain(raw_ostream &OS, RecordKeeper &Records) { } int main(int argc, char **argv) { - sys::PrintStackTraceOnErrorSignal(argv[0]); - PrettyStackTraceProgram X(argc, argv); + llvm::InitLLVM X(argc, argv); cl::ParseCommandLineOptions(argc, argv); llvm_shutdown_obj Y; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits