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 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 AllGroups = getDiagnosticGroups(); llvm::DenseSet NonRootGroupIDs; - for (ArrayRef::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] []\n"; + llvm::errs() << "Usage: diagtool tree [--internal] []\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); }