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
This commit is contained in:
parent
06d1110584
commit
3f76260dc0
|
@ -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();
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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", [&]() {
|
||||
|
|
|
@ -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 @@ private:
|
|||
} // 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.
|
||||
|
|
|
@ -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";
|
||||
});
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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 @@ public:
|
|||
} // 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();
|
||||
|
|
|
@ -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 "
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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 @@ public:
|
|||
} // 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) {
|
||||
|
|
|
@ -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 @@ private:
|
|||
} // end anonymous namespace
|
||||
|
||||
int main(int argc, const char **argv) {
|
||||
llvm::sys::PrintStackTraceOnErrorSignal(argv[0]);
|
||||
llvm::InitLLVM X(argc, argv);
|
||||
|
||||
ClangRefactorTool RefactorTool;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue
Block a user