JDevlieghere updated this revision to Diff 113731.
JDevlieghere added a comment.
Herald added subscribers: aheejin, klimek.

Thanks for the review Adrian!

I somehow completely overlooked the existing `--flags-only` option in `diagtool 
tree`. Obviously it makes much more sense to implement printing flags here and 
make it the default behavior. I've also added some code to print the flags with 
the appropriate color, i.e. defaults are printed in green while the others 
remain printed in yellow as before.

I've updated the diff to reflect this and added a test case.


Repository:
  rL LLVM

https://reviews.llvm.org/D37390

Files:
  test/Tooling/diatool.test
  tools/diagtool/TreeView.cpp

Index: tools/diagtool/TreeView.cpp
===================================================================
--- tools/diagtool/TreeView.cpp
+++ tools/diagtool/TreeView.cpp
@@ -32,10 +32,10 @@
 public:
   llvm::raw_ostream &out;
   const bool ShowColors;
-  bool FlagsOnly;
+  bool Internal;
 
   TreePrinter(llvm::raw_ostream &out)
-      : out(out), ShowColors(hasColors(out)), FlagsOnly(false) {}
+      : out(out), ShowColors(hasColors(out)), Internal(false) {}
 
   void setColor(llvm::raw_ostream::Colors Color) {
     if (ShowColors)
@@ -54,23 +54,41 @@
     return Diags.isIgnored(DiagID, SourceLocation());
   }
 
+  static bool enabledByDefault(const GroupRecord &Group) {
+    for (auto I = Group.diagnostics_begin(), E = Group.diagnostics_end();
+         I != E; ++I) {
+      if (isIgnored(I->DiagID))
+        return false;
+    }
+
+    for (auto I = Group.subgroup_begin(), E = Group.subgroup_end(); I != E;
+         ++I) {
+      if (!enabledByDefault(*I))
+        return false;
+    }
+
+    return true;
+  }
+
   void printGroup(const GroupRecord &Group, unsigned Indent = 0) {
     out.indent(Indent * 2);
 
-    setColor(llvm::raw_ostream::YELLOW);
+    if (enabledByDefault(Group))
+      setColor(llvm::raw_ostream::GREEN);
+    else
+      setColor(llvm::raw_ostream::YELLOW);
+
     out << "-W" << Group.getName() << "\n";
     resetColor();
 
     ++Indent;
-    for (GroupRecord::subgroup_iterator I = Group.subgroup_begin(),
-                                        E = Group.subgroup_end();
-         I != E; ++I) {
+    for (auto I = Group.subgroup_begin(), E = Group.subgroup_end(); I != E;
+         ++I) {
       printGroup(*I, Indent);
     }
 
-    if (!FlagsOnly) {
-      for (GroupRecord::diagnostics_iterator I = Group.diagnostics_begin(),
-                                             E = Group.diagnostics_end();
+    if (Internal) {
+      for (auto I = Group.diagnostics_begin(), E = Group.diagnostics_end();
            I != E; ++I) {
         if (ShowColors && !isIgnored(I->DiagID))
           setColor(llvm::raw_ostream::GREEN);
@@ -107,12 +125,9 @@
     ArrayRef<GroupRecord> AllGroups = getDiagnosticGroups();
     llvm::DenseSet<unsigned> NonRootGroupIDs;
 
-    for (ArrayRef<GroupRecord>::iterator I = AllGroups.begin(),
-                                         E = AllGroups.end();
-         I != E; ++I) {
-      for (GroupRecord::subgroup_iterator SI = I->subgroup_begin(),
-                                          SE = I->subgroup_end();
-           SI != SE; ++SI) {
+    for (auto I = AllGroups.begin(), E = AllGroups.end(); I != E; ++I) {
+      for (auto SI = I->subgroup_begin(), SE = I->subgroup_end(); SI != SE;
+           ++SI) {
         NonRootGroupIDs.insert((unsigned)SI.getID());
       }
     }
@@ -139,16 +154,16 @@
 };
 
 static void printUsage() {
-  llvm::errs() << "Usage: diagtool tree [--flags-only] [<diagnostic-group>]\n";
+  llvm::errs() << "Usage: diagtool tree [--internal] [<diagnostic-group>]\n";
 }
 
 int TreeView::run(unsigned int argc, char **argv, llvm::raw_ostream &out) {
   // First check our one flag (--flags-only).
-  bool FlagsOnly = false;
+  bool Internal = false;
   if (argc > 0) {
     StringRef FirstArg(*argv);
-    if (FirstArg.equals("--flags-only")) {
-      FlagsOnly = true;
+    if (FirstArg.equals("--internal")) {
+      Internal = true;
       --argc;
       ++argv;
     }
@@ -175,7 +190,7 @@
   }
 
   TreePrinter TP(out);
-  TP.FlagsOnly = FlagsOnly;
+  TP.Internal = Internal;
   TP.showKey();
   return ShowAll ? TP.showAll() : TP.showGroup(RootGroup);
 }
Index: test/Tooling/diatool.test
===================================================================
--- /dev/null
+++ test/Tooling/diatool.test
@@ -0,0 +1,816 @@
+RUN: diagtool tree | FileCheck %s
+
+CHECK: -W
+CHECK:   -Wextra
+CHECK:     -Wmissing-field-initializers
+CHECK:     -Wignored-qualifiers
+CHECK:     -Winitializer-overrides
+CHECK:     -Wsemicolon-before-method-body
+CHECK:     -Wmissing-method-return-type
+CHECK:     -Wsign-compare
+CHECK:     -Wunused-parameter
+CHECK: -W#pragma-messages
+CHECK: -WCFString-literal
+CHECK: -WCL4
+CHECK:   -Wall
+CHECK:     -Wmost
+CHECK:       -Wchar-subscripts
+CHECK:       -Wcomment
+CHECK:       -Wdelete-non-virtual-dtor
+CHECK:       -Wfor-loop-analysis
+CHECK:       -Wformat
+CHECK:         -Wformat-extra-args
+CHECK:         -Wformat-zero-length
+CHECK:         -Wnonnull
+CHECK:         -Wformat-security
+CHECK:         -Wformat-y2k
+CHECK:         -Wformat-invalid-specifier
+CHECK:       -Wimplicit
+CHECK:         -Wimplicit-function-declaration
+CHECK:         -Wimplicit-int
+CHECK:       -Winfinite-recursion
+CHECK:       -Wmismatched-tags
+CHECK:       -Wmissing-braces
+CHECK:       -Wmove
+CHECK:         -Wpessimizing-move
+CHECK:         -Wredundant-move
+CHECK:         -Wself-move
+CHECK:       -Wmultichar
+CHECK:       -Wreorder
+CHECK:       -Wreturn-type
+CHECK:         -Wreturn-type-c-linkage
+CHECK:       -Wself-assign
+CHECK:         -Wself-assign-field
+CHECK:       -Wself-move
+CHECK:       -Wsizeof-array-argument
+CHECK:       -Wsizeof-array-decay
+CHECK:       -Wstring-plus-int
+CHECK:       -Wtrigraphs
+CHECK:       -Wuninitialized
+CHECK:         -Wsometimes-uninitialized
+CHECK:         -Wstatic-self-init
+CHECK:       -Wunknown-pragmas
+CHECK:       -Wunused
+CHECK:         -Wunused-argument
+CHECK:         -Wunused-function
+CHECK:           -Wunneeded-internal-declaration
+CHECK:         -Wunused-label
+CHECK:         -Wunused-private-field
+CHECK:         -Wunused-lambda-capture
+CHECK:         -Wunused-local-typedef
+CHECK:         -Wunused-value
+CHECK:           -Wunused-comparison
+CHECK:           -Wunused-result
+CHECK:           -Wunevaluated-expression
+CHECK:             -Wpotentially-evaluated-expression
+CHECK:         -Wunused-variable
+CHECK:           -Wunused-const-variable
+CHECK:         -Wunused-property-ivar
+CHECK:       -Wvolatile-register-var
+CHECK:       -Wobjc-missing-super-calls
+CHECK:       -Wobjc-designated-initializers
+CHECK:       -Woverloaded-virtual
+CHECK:       -Wprivate-extern
+CHECK:       -Wcast-of-sel-type
+CHECK:       -Wextern-c-compat
+CHECK:       -Wuser-defined-warnings
+CHECK:     -Wparentheses
+CHECK:       -Wlogical-op-parentheses
+CHECK:       -Wlogical-not-parentheses
+CHECK:       -Wbitwise-op-parentheses
+CHECK:       -Wshift-op-parentheses
+CHECK:       -Woverloaded-shift-op-parentheses
+CHECK:       -Wparentheses-equality
+CHECK:       -Wdangling-else
+CHECK:     -Wswitch
+CHECK:     -Wswitch-bool
+CHECK:   -Wextra
+CHECK:     -Wmissing-field-initializers
+CHECK:     -Wignored-qualifiers
+CHECK:     -Winitializer-overrides
+CHECK:     -Wsemicolon-before-method-body
+CHECK:     -Wmissing-method-return-type
+CHECK:     -Wsign-compare
+CHECK:     -Wunused-parameter
+CHECK: -WIndependentClass-attribute
+CHECK: -WNSObject-attribute
+CHECK: -Wabi
+CHECK: -Wabsolute-value
+CHECK: -Wabstract-final-class
+CHECK: -Wabstract-vbase-init
+CHECK: -Waddress
+CHECK:   -Wpointer-bool-conversion
+CHECK:   -Wstring-compare
+CHECK:   -Wtautological-pointer-compare
+CHECK: -Waddress-of-array-temporary
+CHECK: -Waddress-of-packed-member
+CHECK: -Waddress-of-temporary
+CHECK: -Waggregate-return
+CHECK: -Waligned-allocation-unavailable
+CHECK: -Walloca-with-align-alignof
+CHECK: -Wambiguous-delete
+CHECK: -Wambiguous-ellipsis
+CHECK: -Wambiguous-macro
+CHECK: -Wambiguous-member-template
+CHECK: -Wanalyzer-incompatible-plugin
+CHECK: -Wanonymous-pack-parens
+CHECK: -Warc
+CHECK:   -Warc-unsafe-retained-assign
+CHECK:   -Warc-retain-cycles
+CHECK:   -Warc-non-pod-memaccess
+CHECK: -Warc-bridge-casts-disallowed-in-nonarc
+CHECK: -Warc-performSelector-leaks
+CHECK: -Warc-repeated-use-of-weak
+CHECK:   -Warc-maybe-repeated-use-of-weak
+CHECK: -Warray-bounds
+CHECK: -Warray-bounds-pointer-arithmetic
+CHECK: -Wasm
+CHECK:   -Wasm-operand-widths
+CHECK:   -Wasm-ignored-qualifier
+CHECK: -Wassign-enum
+CHECK: -Wassume
+CHECK: -Wat-protocol
+CHECK: -Watomic-memory-ordering
+CHECK: -Watomic-properties
+CHECK:   -Wimplicit-atomic-properties
+CHECK:   -Wcustom-atomic-properties
+CHECK: -Watomic-property-with-user-defined-accessor
+CHECK: -Wattribute-packed-for-bitfield
+CHECK: -Wattributes
+CHECK:   -Wunknown-attributes
+CHECK:   -Wignored-attributes
+CHECK: -Wauto-disable-vptr-sanitizer
+CHECK: -Wauto-import
+CHECK: -Wauto-storage-class
+CHECK: -Wauto-var-id
+CHECK: -Wavailability
+CHECK: -Wbackend-plugin
+CHECK: -Wbackslash-newline-escape
+CHECK: -Wbad-function-cast
+CHECK: -Wbind-to-temporary-copy
+CHECK:   -Wc++98-compat-bind-to-temporary-copy
+CHECK: -Wbitfield-width
+CHECK: -Wblock-capture-autoreleasing
+CHECK: -Wbool-conversions
+CHECK:   -Wbool-conversion
+CHECK:     -Wpointer-bool-conversion
+CHECK:     -Wundefined-bool-conversion
+CHECK: -Wbraced-scalar-init
+CHECK: -Wbridge-cast
+CHECK: -Wbuiltin-macro-redefined
+CHECK: -Wbuiltin-memcpy-chk-size
+CHECK: -Wbuiltin-requires-header
+CHECK: -Wc++-compat
+CHECK: -Wc++0x-compat
+CHECK:   -Wc++11-compat
+CHECK:     -Wc++11-narrowing
+CHECK:     -Wc++11-compat-reserved-user-defined-literal
+CHECK:     -Wc++11-compat-deprecated-writable-strings
+CHECK:     -Wc++98-c++11-compat
+CHECK:     -Wc++98-c++11-c++14-compat
+CHECK:     -Wc++98-c++11-c++14-c++17-compat
+CHECK: -Wc++0x-extensions
+CHECK:   -Wc++11-extensions
+CHECK:     -Wc++11-extra-semi
+CHECK:     -Wc++11-inline-namespace
+CHECK:     -Wc++11-long-long
+CHECK: -Wc++0x-narrowing
+CHECK:   -Wc++11-narrowing
+CHECK: -Wc++11-compat-pedantic
+CHECK:   -Wc++11-compat
+CHECK:     -Wc++11-narrowing
+CHECK:     -Wc++11-compat-reserved-user-defined-literal
+CHECK:     -Wc++11-compat-deprecated-writable-strings
+CHECK:     -Wc++98-c++11-compat
+CHECK:     -Wc++98-c++11-c++14-compat
+CHECK:     -Wc++98-c++11-c++14-c++17-compat
+CHECK:   -Wc++98-c++11-compat-pedantic
+CHECK:     -Wc++98-c++11-compat
+CHECK:   -Wc++98-c++11-c++14-compat-pedantic
+CHECK:     -Wc++98-c++11-c++14-compat
+CHECK:   -Wc++98-c++11-c++14-c++17-compat-pedantic
+CHECK:     -Wc++98-c++11-c++14-c++17-compat
+CHECK: -Wc++14-compat-pedantic
+CHECK:   -Wc++14-compat
+CHECK:     -Wc++98-c++11-c++14-compat
+CHECK:     -Wc++98-c++11-c++14-c++17-compat
+CHECK:   -Wc++98-c++11-c++14-compat-pedantic
+CHECK:     -Wc++98-c++11-c++14-compat
+CHECK:   -Wc++98-c++11-c++14-c++17-compat-pedantic
+CHECK:     -Wc++98-c++11-c++14-c++17-compat
+CHECK: -Wc++17-compat-pedantic
+CHECK:   -Wc++17-compat
+CHECK:     -Wdeprecated-register
+CHECK:     -Wdeprecated-increment-bool
+CHECK:     -Wc++17-compat-mangling
+CHECK:     -Wc++98-c++11-c++14-c++17-compat
+CHECK:   -Wc++98-c++11-c++14-c++17-compat-pedantic
+CHECK:     -Wc++98-c++11-c++14-c++17-compat
+CHECK: -Wc++1y-extensions
+CHECK:   -Wc++14-extensions
+CHECK:     -Wc++14-binary-literal
+CHECK: -Wc++1z-compat
+CHECK:   -Wc++17-compat
+CHECK:     -Wdeprecated-register
+CHECK:     -Wdeprecated-increment-bool
+CHECK:     -Wc++17-compat-mangling
+CHECK:     -Wc++98-c++11-c++14-c++17-compat
+CHECK: -Wc++1z-compat-mangling
+CHECK:   -Wc++17-compat-mangling
+CHECK: -Wc++1z-extensions
+CHECK:   -Wc++17-extensions
+CHECK: -Wc++2a-compat-pedantic
+CHECK:   -Wc++2a-compat
+CHECK: -Wc++2a-extensions
+CHECK: -Wc++98-compat-pedantic
+CHECK:   -Wc++98-compat
+CHECK:     -Wc++98-compat-local-type-template-args
+CHECK:     -Wc++98-compat-unnamed-type-template-args
+CHECK:     -Wc++98-c++11-compat
+CHECK:     -Wc++98-c++11-c++14-compat
+CHECK:     -Wc++98-c++11-c++14-c++17-compat
+CHECK:   -Wc++98-compat-bind-to-temporary-copy
+CHECK:   -Wc++98-c++11-compat-pedantic
+CHECK:     -Wc++98-c++11-compat
+CHECK:   -Wc++98-c++11-c++14-compat-pedantic
+CHECK:     -Wc++98-c++11-c++14-compat
+CHECK:   -Wc++98-c++11-c++14-c++17-compat-pedantic
+CHECK:     -Wc++98-c++11-c++14-c++17-compat
+CHECK: -Wc99-compat
+CHECK: -Wc99-extensions
+CHECK: -Wcast-align
+CHECK: -Wcast-calling-convention
+CHECK: -Wcast-qual
+CHECK: -Wchar-align
+CHECK: -Wclang-cl-pch
+CHECK: -Wclass-varargs
+CHECK:   -Wnon-pod-varargs
+CHECK: -Wcomma
+CHECK: -Wcomments
+CHECK:   -Wcomment
+CHECK: -Wcompare-distinct-pointer-types
+CHECK: -Wconditional-type-mismatch
+CHECK: -Wconditional-uninitialized
+CHECK: -Wconfig-macros
+CHECK: -Wconstant-logical-operand
+CHECK: -Wconstexpr-not-const
+CHECK: -Wconsumed
+CHECK: -Wconversion-null
+CHECK:   -Wnull-conversion
+CHECK: -Wcoroutine
+CHECK:   -Wcoroutine-missing-unhandled-exception
+CHECK: -Wcovered-switch-default
+CHECK: -Wcpp
+CHECK:   -W#warnings
+CHECK: -Wcstring-format-directive
+CHECK: -Wctor-dtor-privacy
+CHECK: -Wcuda-compat
+CHECK: -Wdangling-field
+CHECK: -Wdangling-initializer-list
+CHECK: -Wdate-time
+CHECK: -Wdealloc-in-category
+CHECK: -Wdebug-compression-unavailable
+CHECK: -Wdelegating-ctor-cycles
+CHECK: -Wdelete-incomplete
+CHECK: -Wdeprecated
+CHECK:   -Wdeprecated-attributes
+CHECK:   -Wdeprecated-declarations
+CHECK:   -Wdeprecated-dynamic-exception-spec
+CHECK:   -Wdeprecated-increment-bool
+CHECK:   -Wdeprecated-register
+CHECK:   -Wdeprecated-writable-strings
+CHECK:     -Wc++11-compat-deprecated-writable-strings
+CHECK: -Wdeprecated-implementations
+CHECK: -Wdeprecated-objc-isa-usage
+CHECK: -Wdeprecated-objc-pointer-introspection
+CHECK:   -Wdeprecated-objc-pointer-introspection-performSelector
+CHECK: -Wdirect-ivar-access
+CHECK: -Wdisabled-macro-expansion
+CHECK: -Wdisabled-optimization
+CHECK: -Wdiscard-qual
+CHECK: -Wdistributed-object-modifiers
+CHECK: -Wdiv-by-zero
+CHECK:   -Wdivision-by-zero
+CHECK: -Wdll-attribute-on-redeclaration
+CHECK: -Wdllexport-explicit-instantiation-decl
+CHECK: -Wdllimport-static-field-def
+CHECK: -Wdocumentation
+CHECK:   -Wdocumentation-html
+CHECK:   -Wdocumentation-deprecated-sync
+CHECK: -Wdocumentation-pedantic
+CHECK:   -Wdocumentation-unknown-command
+CHECK: -Wdouble-promotion
+CHECK: -Wduplicate-decl-specifier
+CHECK: -Wduplicate-enum
+CHECK: -Wduplicate-method-arg
+CHECK: -Wduplicate-method-match
+CHECK: -Wduplicate-protocol
+CHECK: -Wdynamic-class-memaccess
+CHECK: -Wdynamic-exception-spec
+CHECK:   -Wdeprecated-dynamic-exception-spec
+CHECK: -Weffc++
+CHECK:   -Wnon-virtual-dtor
+CHECK: -Wempty-body
+CHECK: -Wempty-decomposition
+CHECK: -Wencode-type
+CHECK: -Wendif-labels
+CHECK:   -Wextra-tokens
+CHECK: -Wenum-compare
+CHECK:   -Wenum-compare-switch
+CHECK: -Wenum-too-large
+CHECK: -Wexceptions
+CHECK: -Wexit-time-destructors
+CHECK: -Wexpansion-to-defined
+CHECK: -Wexplicit-initialize-call
+CHECK: -Wexplicit-ownership-type
+CHECK: -Wextern-initializer
+CHECK: -Wextra-qualification
+CHECK: -Wextra-semi
+CHECK:   -Wc++11-extra-semi
+CHECK: -Wfallback
+CHECK: -Wflag-enum
+CHECK: -Wfloat-equal
+CHECK: -Wformat-non-iso
+CHECK: -Wformat=2
+CHECK:   -Wformat-nonliteral
+CHECK:   -Wformat-security
+CHECK:   -Wformat-y2k
+CHECK: -Wframe-larger-than=
+CHECK: -Wfunction-def-in-objc-container
+CHECK: -Wfuture-compat
+CHECK: -Wgcc-compat
+CHECK: -Wglobal-constructors
+CHECK: -Wgnu
+CHECK:   -Wgnu-alignof-expression
+CHECK:   -Wgnu-anonymous-struct
+CHECK:   -Wgnu-auto-type
+CHECK:   -Wgnu-binary-literal
+CHECK:   -Wgnu-case-range
+CHECK:   -Wgnu-complex-integer
+CHECK:   -Wgnu-compound-literal-initializer
+CHECK:   -Wgnu-conditional-omitted-operand
+CHECK:   -Wgnu-designator
+CHECK:   -Wgnu-empty-initializer
+CHECK:   -Wgnu-empty-struct
+CHECK:   -Wvla-extension
+CHECK:   -Wgnu-flexible-array-initializer
+CHECK:   -Wgnu-flexible-array-union-member
+CHECK:   -Wgnu-folding-constant
+CHECK:   -Wgnu-imaginary-constant
+CHECK:   -Wgnu-include-next
+CHECK:   -Wgnu-label-as-value
+CHECK:   -Wredeclared-class-member
+CHECK:   -Wgnu-redeclared-enum
+CHECK:   -Wgnu-statement-expression
+CHECK:   -Wgnu-static-float-init
+CHECK:   -Wgnu-string-literal-operator-template
+CHECK:   -Wgnu-union-cast
+CHECK:   -Wgnu-variable-sized-type-not-at-end
+CHECK:   -Wzero-length-array
+CHECK:   -Wgnu-zero-line-directive
+CHECK:   -Wgnu-zero-variadic-macro-arguments
+CHECK: -Wgnu-array-member-paren-init
+CHECK: -Wheader-guard
+CHECK: -Wheader-hygiene
+CHECK: -Widiomatic-parentheses
+CHECK: -Wimplicit-conversion-floating-point-to-bool
+CHECK: -Wimplicit-exception-spec-mismatch
+CHECK: -Wimplicit-fallthrough
+CHECK:   -Wimplicit-fallthrough-per-function
+CHECK: -Wimplicit-retain-self
+CHECK: -Wimplicitly-unsigned-literal
+CHECK: -Wimport
+CHECK: -Winaccessible-base
+CHECK: -Winclude-next-absolute-path
+CHECK: -Winclude-next-outside-header
+CHECK: -Wincompatible-exception-spec
+CHECK: -Wincompatible-library-redeclaration
+CHECK: -Wincompatible-ms-struct
+CHECK: -Wincompatible-pointer-types
+CHECK:   -Wincompatible-pointer-types-discards-qualifiers
+CHECK:   -Wincompatible-function-pointer-types
+CHECK: -Wincompatible-property-type
+CHECK: -Wincompatible-sysroot
+CHECK: -Wincomplete-implementation
+CHECK: -Wincomplete-module
+CHECK:   -Wincomplete-umbrella
+CHECK:   -Wnon-modular-include-in-module
+CHECK:     -Wnon-modular-include-in-framework-module
+CHECK: -Winconsistent-missing-destructor-override
+CHECK: -Winconsistent-missing-override
+CHECK: -Wincrement-bool
+CHECK:   -Wdeprecated-increment-bool
+CHECK: -Winit-self
+CHECK: -Winjected-class-name
+CHECK: -Winline
+CHECK: -Winline-asm
+CHECK: -Winline-new-delete
+CHECK: -Winstantiation-after-specialization
+CHECK: -Wint-conversions
+CHECK:   -Wint-conversion
+CHECK: -Wint-to-pointer-cast
+CHECK:   -Wint-to-void-pointer-cast
+CHECK: -Winteger-overflow
+CHECK: -Winvalid-command-line-argument
+CHECK:   -Wignored-optimization-argument
+CHECK: -Winvalid-constexpr
+CHECK: -Winvalid-iboutlet
+CHECK: -Winvalid-initializer-from-system-header
+CHECK: -Winvalid-ios-deployment-target
+CHECK: -Winvalid-noreturn
+CHECK: -Winvalid-offsetof
+CHECK: -Winvalid-or-nonexistent-directory
+CHECK: -Winvalid-partial-specialization
+CHECK: -Winvalid-pch
+CHECK: -Winvalid-pp-token
+CHECK: -Winvalid-source-encoding
+CHECK: -Winvalid-token-paste
+CHECK: -Wjump-seh-finally
+CHECK: -Wkeyword-compat
+CHECK: -Wknr-promoted-parameter
+CHECK: -Wlarge-by-value-copy
+CHECK: -Wliblto
+CHECK: -Wlocal-type-template-args
+CHECK:   -Wc++98-compat-local-type-template-args
+CHECK: -Wloop-analysis
+CHECK:   -Wfor-loop-analysis
+CHECK:   -Wrange-loop-analysis
+CHECK: -Wmacro-redefined
+CHECK: -Wmain
+CHECK: -Wmain-return-type
+CHECK: -Wmalformed-warning-check
+CHECK: -Wmany-braces-around-scalar-init
+CHECK: -Wmax-unsigned-zero
+CHECK: -Wmemsize-comparison
+CHECK: -Wmethod-signatures
+CHECK: -Wmicrosoft
+CHECK:   -Wmicrosoft-charize
+CHECK:   -Wmicrosoft-include
+CHECK:   -Wmicrosoft-cpp-macro
+CHECK:   -Wmicrosoft-fixed-enum
+CHECK:   -Wmicrosoft-sealed
+CHECK:   -Wmicrosoft-unqualified-friend
+CHECK:   -Wmicrosoft-exception-spec
+CHECK:   -Wmicrosoft-using-decl
+CHECK:   -Wmicrosoft-mutable-reference
+CHECK:   -Wmicrosoft-pure-definition
+CHECK:   -Wmicrosoft-union-member-reference
+CHECK:   -Wmicrosoft-explicit-constructor-call
+CHECK:   -Wmicrosoft-enum-value
+CHECK:   -Wmicrosoft-default-arg-redefinition
+CHECK:   -Wmicrosoft-template
+CHECK:   -Wmicrosoft-redeclare-static
+CHECK:   -Wmicrosoft-enum-forward-reference
+CHECK:   -Wmicrosoft-goto
+CHECK:   -Wmicrosoft-flexible-array
+CHECK:   -Wmicrosoft-extra-qualification
+CHECK:   -Wmicrosoft-cast
+CHECK:   -Wmicrosoft-const-init
+CHECK:   -Wmicrosoft-void-pseudo-dtor
+CHECK:   -Wmicrosoft-anon-tag
+CHECK:   -Wmicrosoft-comment-paste
+CHECK:   -Wmicrosoft-end-of-file
+CHECK:   -Winconsistent-dllimport
+CHECK: -Wmicrosoft-exists
+CHECK: -Wmismatched-new-delete
+CHECK: -Wmismatched-parameter-types
+CHECK: -Wmismatched-return-types
+CHECK: -Wmissing-declarations
+CHECK: -Wmissing-exception-spec
+CHECK: -Wmissing-format-attribute
+CHECK: -Wmissing-include-dirs
+CHECK: -Wmissing-noreturn
+CHECK: -Wmissing-prototype-for-cc
+CHECK: -Wmissing-prototypes
+CHECK: -Wmissing-selector-name
+CHECK: -Wmissing-sysroot
+CHECK: -Wmissing-variable-declarations
+CHECK: -Wmodule-build
+CHECK: -Wmodule-conflict
+CHECK: -Wmodule-file-config-mismatch
+CHECK: -Wmodule-file-extension
+CHECK: -Wmodule-import-in-extern-c
+CHECK: -Wmodules-ambiguous-internal-linkage
+CHECK: -Wmodules-import-nested-redundant
+CHECK: -Wmsvc-include
+CHECK:   -Wmicrosoft-include
+CHECK: -Wmsvc-not-found
+CHECK: -Wmultiple-move-vbase
+CHECK: -Wnarrowing
+CHECK:   -Wc++11-narrowing
+CHECK: -Wnested-externs
+CHECK: -Wnew-returns-null
+CHECK: -Wnewline-eof
+CHECK: -Wnoexcept-type
+CHECK:   -Wc++17-compat-mangling
+CHECK: -Wnon-gcc
+CHECK:   -Wsign-compare
+CHECK:   -Wconversion
+CHECK:     -Wbool-conversion
+CHECK:       -Wpointer-bool-conversion
+CHECK:       -Wundefined-bool-conversion
+CHECK:     -Wconstant-conversion
+CHECK:       -Wbitfield-constant-conversion
+CHECK:     -Wenum-conversion
+CHECK:     -Wbitfield-enum-conversion
+CHECK:     -Wfloat-conversion
+CHECK:       -Wfloat-overflow-conversion
+CHECK:       -Wfloat-zero-conversion
+CHECK:     -Wshorten-64-to-32
+CHECK:     -Wint-conversion
+CHECK:     -Wliteral-conversion
+CHECK:     -Wnon-literal-null-conversion
+CHECK:     -Wnull-conversion
+CHECK:     -Wobjc-literal-conversion
+CHECK:     -Wsign-conversion
+CHECK:     -Wstring-conversion
+CHECK:   -Wliteral-range
+CHECK: -Wnonportable-cfstrings
+CHECK: -Wnonportable-include-path
+CHECK: -Wnonportable-system-include-path
+CHECK: -Wnonportable-vector-initialization
+CHECK: -Wnull-arithmetic
+CHECK: -Wnull-character
+CHECK: -Wnull-dereference
+CHECK: -Wnullability
+CHECK: -Wnullability-completeness
+CHECK:   -Wnullability-completeness-on-arrays
+CHECK: -Wnullability-declspec
+CHECK: -Wnullability-inferred-on-nested-type
+CHECK: -Wnullable-to-nonnull-conversion
+CHECK: -Wobjc-autosynthesis-property-ivar-name-match
+CHECK: -Wobjc-circular-container
+CHECK: -Wobjc-cocoa-api
+CHECK:   -Wobjc-redundant-api-use
+CHECK:     -Wobjc-redundant-literal-use
+CHECK: -Wobjc-forward-class-redefinition
+CHECK: -Wobjc-interface-ivars
+CHECK: -Wobjc-literal-compare
+CHECK:   -Wobjc-string-compare
+CHECK: -Wobjc-macro-redefinition
+CHECK: -Wobjc-messaging-id
+CHECK: -Wobjc-method-access
+CHECK: -Wobjc-missing-property-synthesis
+CHECK: -Wobjc-multiple-method-names
+CHECK: -Wobjc-noncopy-retain-block-property
+CHECK: -Wobjc-nonunified-exceptions
+CHECK: -Wobjc-property-implementation
+CHECK: -Wobjc-property-implicit-mismatch
+CHECK: -Wobjc-property-matches-cocoa-ownership-rule
+CHECK: -Wobjc-property-no-attribute
+CHECK: -Wobjc-property-synthesis
+CHECK: -Wobjc-protocol-method-implementation
+CHECK: -Wobjc-protocol-property-synthesis
+CHECK: -Wobjc-protocol-qualifiers
+CHECK: -Wobjc-readonly-with-setter-property
+CHECK: -Wobjc-root-class
+CHECK: -Wobjc-string-concatenation
+CHECK: -Wobjc-unsafe-perform-selector
+CHECK: -Wodr
+CHECK: -Wold-style-cast
+CHECK: -Wold-style-definition
+CHECK: -Wopencl-unsupported-rgba
+CHECK: -Wopenmp-clauses
+CHECK: -Wopenmp-loop-form
+CHECK: -Wopenmp-target
+CHECK: -Woption-ignored
+CHECK: -Wout-of-line-declaration
+CHECK: -Wover-aligned
+CHECK: -Woverflow
+CHECK: -Woverride-module
+CHECK: -Woverriding-method-mismatch
+CHECK: -Woverriding-t-option
+CHECK: -Wpacked
+CHECK: -Wpadded
+CHECK: -Wpartial-availability
+CHECK:   -Wunguarded-availability
+CHECK:     -Wunguarded-availability-new
+CHECK: -Wpass
+CHECK: -Wpass-analysis
+CHECK: -Wpass-failed
+CHECK: -Wpass-missed
+CHECK: -Wpch-date-time
+CHECK: -Wpedantic
+CHECK:   -Wc11-extensions
+CHECK:   -Wc++11-extra-semi
+CHECK:   -Wc++11-long-long
+CHECK:   -Wc++14-binary-literal
+CHECK:   -Wflexible-array-extensions
+CHECK:   -Wformat-pedantic
+CHECK:   -Wfour-char-constants
+CHECK:   -Wgnu-anonymous-struct
+CHECK:   -Wgnu-auto-type
+CHECK:   -Wgnu-binary-literal
+CHECK:   -Wgnu-case-range
+CHECK:   -Wgnu-complex-integer
+CHECK:   -Wgnu-compound-literal-initializer
+CHECK:   -Wgnu-conditional-omitted-operand
+CHECK:   -Wgnu-empty-initializer
+CHECK:   -Wgnu-empty-struct
+CHECK:   -Wgnu-flexible-array-initializer
+CHECK:   -Wgnu-flexible-array-union-member
+CHECK:   -Wgnu-folding-constant
+CHECK:   -Wgnu-imaginary-constant
+CHECK:   -Wgnu-include-next
+CHECK:   -Wgnu-label-as-value
+CHECK:   -Wgnu-redeclared-enum
+CHECK:   -Wgnu-statement-expression
+CHECK:   -Wgnu-union-cast
+CHECK:   -Wgnu-zero-line-directive
+CHECK:   -Wgnu-zero-variadic-macro-arguments
+CHECK:   -Wkeyword-macro
+CHECK:   -Wlong-long
+CHECK:     -Wc++11-long-long
+CHECK:   -Wmicrosoft-charize
+CHECK:   -Wmicrosoft-comment-paste
+CHECK:   -Wmicrosoft-cpp-macro
+CHECK:   -Wmicrosoft-end-of-file
+CHECK:   -Wmicrosoft-enum-value
+CHECK:   -Wmicrosoft-fixed-enum
+CHECK:   -Wmicrosoft-flexible-array
+CHECK:   -Wmicrosoft-redeclare-static
+CHECK:   -Woverlength-strings
+CHECK:   -Wvla-extension
+CHECK:   -Wvariadic-macros
+CHECK:   -Wzero-length-array
+CHECK:   -Wretained-language-linkage
+CHECK:   -Wcomplex-component-init
+CHECK:   -Wextended-offsetof
+CHECK:   -Wnested-anon-types
+CHECK:   -Wdeclaration-after-statement
+CHECK:   -Wdollar-in-identifier-extension
+CHECK:   -Wlanguage-extension-token
+CHECK:   -Wimport-preprocessor-directive-pedantic
+CHECK:   -Wembedded-directive
+CHECK:   -Wempty-translation-unit
+CHECK:   -Wnullability-extension
+CHECK: -Wpedantic-core-features
+CHECK: -Wpointer-arith
+CHECK: -Wpointer-sign
+CHECK: -Wpointer-to-int-cast
+CHECK: -Wpointer-type-mismatch
+CHECK: -Wpragma-once-outside-header
+CHECK: -Wpragma-system-header-outside-header
+CHECK: -Wpragmas
+CHECK:   -Wunknown-pragmas
+CHECK:   -Wignored-pragmas
+CHECK:     -Wignored-pragma-intrinsic
+CHECK:   -Wpragma-clang-attribute
+CHECK:   -Wpragma-pack
+CHECK:     -Wpragma-pack-suspicious-include
+CHECK: -Wpredefined-identifier-outside-function
+CHECK: -Wprivate-header
+CHECK: -Wprivate-module
+CHECK: -Wprofile-instr-missing
+CHECK: -Wprofile-instr-out-of-date
+CHECK: -Wprofile-instr-unprofiled
+CHECK: -Wproperty-access-dot-syntax
+CHECK: -Wproperty-attribute-mismatch
+CHECK: -Wprotocol
+CHECK: -Wprotocol-property-synthesis-ambiguity
+CHECK: -Wqualified-void-return-type
+CHECK: -Wreadonly-iboutlet-property
+CHECK: -Wreceiver-expr
+CHECK: -Wreceiver-forward-class
+CHECK: -Wredundant-decls
+CHECK: -Wregister
+CHECK:   -Wdeprecated-register
+CHECK: -Wreinterpret-base-class
+CHECK: -Wremark-backend-plugin
+CHECK: -Wrequires-super-attribute
+CHECK: -Wreserved-id-macro
+CHECK: -Wreserved-user-defined-literal
+CHECK:   -Wc++11-compat-reserved-user-defined-literal
+CHECK: -Wreturn-stack-address
+CHECK: -Wrtti-for-exceptions
+CHECK: -Wsanitize-address
+CHECK: -Wsection
+CHECK: -Wselector
+CHECK:   -Wselector-type-mismatch
+CHECK: -Wsentinel
+CHECK: -Wsequence-point
+CHECK:   -Wunsequenced
+CHECK: -Wserialized-diagnostics
+CHECK: -Wshadow-all
+CHECK:   -Wshadow
+CHECK:     -Wshadow-field-in-constructor-modified
+CHECK:     -Wshadow-ivar
+CHECK:   -Wshadow-field-in-constructor
+CHECK:     -Wshadow-field-in-constructor-modified
+CHECK:   -Wshadow-uncaptured-local
+CHECK:   -Wshadow-field
+CHECK: -Wshift-count-negative
+CHECK: -Wshift-count-overflow
+CHECK: -Wshift-negative-value
+CHECK: -Wshift-overflow
+CHECK: -Wshift-sign-overflow
+CHECK: -Wsign-promo
+CHECK: -Wsigned-enum-bitfield
+CHECK: -Wsizeof-pointer-memaccess
+CHECK: -Wslash-u-filename
+CHECK: -Wsource-uses-openmp
+CHECK: -Wspir-compat
+CHECK: -Wstack-protector
+CHECK: -Wstatic-float-init
+CHECK:   -Wgnu-static-float-init
+CHECK: -Wstatic-in-inline
+CHECK: -Wstatic-inline-explicit-instantiation
+CHECK: -Wstatic-local-in-inline
+CHECK: -Wstrict-aliasing
+CHECK: -Wstrict-aliasing=0
+CHECK: -Wstrict-aliasing=1
+CHECK: -Wstrict-aliasing=2
+CHECK: -Wstrict-overflow
+CHECK: -Wstrict-overflow=0
+CHECK: -Wstrict-overflow=1
+CHECK: -Wstrict-overflow=2
+CHECK: -Wstrict-overflow=3
+CHECK: -Wstrict-overflow=4
+CHECK: -Wstrict-overflow=5
+CHECK: -Wstrict-prototypes
+CHECK: -Wstrict-selector-match
+CHECK: -Wstring-plus-char
+CHECK: -Wstrlcpy-strlcat-size
+CHECK: -Wstrncat-size
+CHECK: -Wsuper-class-method-mismatch
+CHECK: -Wswitch-default
+CHECK: -Wswitch-enum
+CHECK: -Wsync-fetch-and-nand-semantics-changed
+CHECK: -Wsynth
+CHECK: -Wtautological-compare
+CHECK:   -Wtautological-constant-out-of-range-compare
+CHECK:   -Wtautological-pointer-compare
+CHECK:   -Wtautological-overlap-compare
+CHECK:   -Wtautological-undefined-compare
+CHECK: -Wtentative-definition-incomplete-type
+CHECK: -Wthread-safety
+CHECK:   -Wthread-safety-attributes
+CHECK:   -Wthread-safety-analysis
+CHECK:   -Wthread-safety-precise
+CHECK:   -Wthread-safety-reference
+CHECK: -Wthread-safety-beta
+CHECK: -Wthread-safety-negative
+CHECK: -Wthread-safety-verbose
+CHECK: -Wtype-limits
+CHECK: -Wtype-safety
+CHECK: -Wtypedef-redefinition
+CHECK: -Wtypename-missing
+CHECK: -Wunable-to-open-stats-file
+CHECK: -Wunavailable-declarations
+CHECK: -Wundeclared-selector
+CHECK: -Wundef
+CHECK: -Wundefined-func-template
+CHECK: -Wundefined-inline
+CHECK: -Wundefined-internal
+CHECK: -Wundefined-reinterpret-cast
+CHECK: -Wundefined-var-template
+CHECK: -Wunicode
+CHECK: -Wunicode-whitespace
+CHECK: -Wunknown-argument
+CHECK: -Wunknown-escape-sequence
+CHECK: -Wunknown-sanitizers
+CHECK: -Wunknown-warning-option
+CHECK: -Wunnamed-type-template-args
+CHECK:   -Wc++98-compat-unnamed-type-template-args
+CHECK: -Wunreachable-code-aggressive
+CHECK:   -Wunreachable-code
+CHECK:     -Wunreachable-code-loop-increment
+CHECK:   -Wunreachable-code-break
+CHECK:   -Wunreachable-code-return
+CHECK: -Wunsupported-abs
+CHECK: -Wunsupported-availability-guard
+CHECK: -Wunsupported-cb
+CHECK: -Wunsupported-dll-base-class-template
+CHECK: -Wunsupported-friend
+CHECK: -Wunsupported-gpopt
+CHECK: -Wunsupported-nan
+CHECK: -Wunsupported-visibility
+CHECK: -Wunusable-partial-specialization
+CHECK: -Wunused-command-line-argument
+CHECK: -Wunused-exception-parameter
+CHECK: -Wunused-getter-return-value
+CHECK: -Wunused-local-typedefs
+CHECK:   -Wunused-local-typedef
+CHECK: -Wunused-macros
+CHECK: -Wunused-member-function
+CHECK:   -Wunneeded-member-function
+CHECK: -Wunused-template
+CHECK:   -Wunneeded-internal-declaration
+CHECK: -Wunused-volatile-lvalue
+CHECK: -Wused-but-marked-unused
+CHECK: -Wuser-defined-literals
+CHECK: -Wvarargs
+CHECK: -Wvec-elem-size
+CHECK: -Wvector-conversions
+CHECK:   -Wvector-conversion
+CHECK: -Wvexing-parse
+CHECK: -Wvisibility
+CHECK: -Wvla
+CHECK: -Wvoid-ptr-dereference
+CHECK: -Wweak-template-vtables
+CHECK: -Wweak-vtables
+CHECK: -Wwrite-strings
+CHECK:   -Wwritable-strings
+CHECK:     -Wdeprecated-writable-strings
+CHECK:       -Wc++11-compat-deprecated-writable-strings
+CHECK: -Wzero-as-null-pointer-constant
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to