forked from OSchip/llvm-project
[clang][driver] adds `-print-diagnostics`
Prints a list of all the warnings that Clang offers. Differential Revision: https://reviews.llvm.org/D126796
This commit is contained in:
parent
ab34ab2b87
commit
288c1bff96
|
@ -4005,6 +4005,8 @@ def print_rocm_search_dirs : Flag<["-", "--"], "print-rocm-search-dirs">,
|
|||
HelpText<"Print the paths used for finding ROCm installation">;
|
||||
def print_runtime_dir : Flag<["-", "--"], "print-runtime-dir">,
|
||||
HelpText<"Print the directory pathname containing clangs runtime libraries">;
|
||||
def print_diagnostic_options : Flag<["-", "--"], "print-diagnostic-options">,
|
||||
HelpText<"Print all of Clang's warning options">;
|
||||
def private__bundle : Flag<["-"], "private_bundle">;
|
||||
def pthreads : Flag<["-"], "pthreads">;
|
||||
defm pthread : BoolOption<"", "pthread",
|
||||
|
|
|
@ -653,7 +653,7 @@ StringRef DiagnosticIDs::getWarningOptionForDiag(unsigned DiagID) {
|
|||
}
|
||||
|
||||
std::vector<std::string> DiagnosticIDs::getDiagnosticFlags() {
|
||||
std::vector<std::string> Res;
|
||||
std::vector<std::string> Res{"-W", "-Wno-"};
|
||||
for (size_t I = 1; DiagGroupNames[I] != '\0';) {
|
||||
std::string Diag(DiagGroupNames + I + 1, DiagGroupNames[I]);
|
||||
I += DiagGroupNames[I] + 1;
|
||||
|
|
|
@ -2010,6 +2010,13 @@ bool Driver::HandleImmediateArgs(const Compilation &C) {
|
|||
return false;
|
||||
}
|
||||
|
||||
if (C.getArgs().hasArg(options::OPT_print_diagnostic_options)) {
|
||||
std::vector<std::string> Flags = DiagnosticIDs::getDiagnosticFlags();
|
||||
for (std::size_t I = 0; I != Flags.size(); I += 2)
|
||||
llvm::outs() << " " << Flags[I] << "\n " << Flags[I + 1] << "\n\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
// FIXME: The following handlers should use a callback mechanism, we don't
|
||||
// know what the client would like to do.
|
||||
if (Arg *A = C.getArgs().getLastArg(options::OPT_print_file_name_EQ)) {
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
// Test that -print-diagnostic-options prints warning groups and disablers
|
||||
|
||||
// RUN: %clang -print-diagnostic-options | FileCheck %s
|
||||
|
||||
// CHECK: -W
|
||||
// CHECK: -Wno-
|
||||
// CHECK: -W#pragma-messages
|
||||
// CHECK: -Wno-#pragma-messages
|
||||
// CHECK: -W#warnings
|
||||
// CHECK: -Wabi
|
||||
// CHECK: -Wno-abi
|
||||
// CHECK: -Wall
|
||||
// CHECK: -Wno-all
|
Loading…
Reference in New Issue