Diagnostic flags in Clang
- Introduction
-
Diagnostic flags
- -W
- -W#pragma-messages
- -W#warnings
- -WCFString-literal
- -WCL4
- -WIndependentClass-attribute
- -WNSObject-attribute
- -Wabi
- -Wabsolute-value
- -Wabstract-final-class
- -Wabstract-vbase-init
- -Waddress
- -Waddress-of-packed-member
- -Waddress-of-temporary
- -Waggregate-return
- -Wall
- -Walloca
- -Walloca-with-align-alignof
- -Wambiguous-delete
- -Wambiguous-ellipsis
- -Wambiguous-macro
- -Wambiguous-member-template
- -Wambiguous-reversed-operator
- -Wanalyzer-incompatible-plugin
- -Wanon-enum-enum-conversion
- -Wanonymous-pack-parens
- -Warc
- -Warc-bridge-casts-disallowed-in-nonarc
- -Warc-maybe-repeated-use-of-weak
- -Warc-non-pod-memaccess
- -Warc-performSelector-leaks
- -Warc-repeated-use-of-weak
- -Warc-retain-cycles
- -Warc-unsafe-retained-assign
- -Wargument-outside-range
- -Warray-bounds
- -Warray-bounds-pointer-arithmetic
- -Wasm
- -Wasm-operand-widths
- -Wassign-enum
- -Wassume
- -Wat-protocol
- -Watimport-in-framework-header
- -Watomic-alignment
- -Watomic-implicit-seq-cst
- -Watomic-memory-ordering
- -Watomic-properties
- -Watomic-property-with-user-defined-accessor
- -Wattribute-packed-for-bitfield
- -Wattributes
- -Wauto-disable-vptr-sanitizer
- -Wauto-import
- -Wauto-storage-class
- -Wauto-var-id
- -Wavailability
- -Wavr-rtlib-linking-quirks
- -Wbackend-plugin
- -Wbackslash-newline-escape
- -Wbad-function-cast
- -Wbinary-literal
- -Wbind-to-temporary-copy
- -Wbinding-in-condition
- -Wbitfield-constant-conversion
- -Wbitfield-enum-conversion
- -Wbitfield-width
- -Wbitwise-conditional-parentheses
- -Wbitwise-op-parentheses
- -Wblock-capture-autoreleasing
- -Wbool-conversion
- -Wbool-conversions
- -Wbool-operation
- -Wbraced-scalar-init
- -Wbridge-cast
- -Wbuiltin-assume-aligned-alignment
- -Wbuiltin-macro-redefined
- -Wbuiltin-memcpy-chk-size
- -Wbuiltin-requires-header
- -Wc++-compat
- -Wc++0x-compat
- -Wc++0x-extensions
- -Wc++0x-narrowing
- -Wc++11-compat
- -Wc++11-compat-deprecated-writable-strings
- -Wc++11-compat-pedantic
- -Wc++11-compat-reserved-user-defined-literal
- -Wc++11-extensions
- -Wc++11-extra-semi
- -Wc++11-inline-namespace
- -Wc++11-long-long
- -Wc++11-narrowing
- -Wc++14-binary-literal
- -Wc++14-compat
- -Wc++14-compat-pedantic
- -Wc++14-extensions
- -Wc++17-compat
- -Wc++17-compat-mangling
- -Wc++17-compat-pedantic
- -Wc++17-extensions
- -Wc++1y-extensions
- -Wc++1z-compat
- -Wc++1z-compat-mangling
- -Wc++1z-extensions
- -Wc++20-compat
- -Wc++20-compat-pedantic
- -Wc++20-designator
- -Wc++20-extensions
- -Wc++2a-compat
- -Wc++2a-compat-pedantic
- -Wc++2a-extensions
- -Wc++98-c++11-c++14-c++17-compat
- -Wc++98-c++11-c++14-c++17-compat-pedantic
- -Wc++98-c++11-c++14-compat
- -Wc++98-c++11-c++14-compat-pedantic
- -Wc++98-c++11-compat
- -Wc++98-c++11-compat-binary-literal
- -Wc++98-c++11-compat-pedantic
- -Wc++98-compat
- -Wc++98-compat-bind-to-temporary-copy
- -Wc++98-compat-extra-semi
- -Wc++98-compat-local-type-template-args
- -Wc++98-compat-pedantic
- -Wc++98-compat-unnamed-type-template-args
- -Wc11-extensions
- -Wc2x-extensions
- -Wc99-compat
- -Wc99-designator
- -Wc99-extensions
- -Wcall-to-pure-virtual-from-ctor-dtor
- -Wcast-align
- -Wcast-calling-convention
- -Wcast-of-sel-type
- -Wcast-qual
- -Wcast-qual-unrelated
- -Wchar-align
- -Wchar-subscripts
- -Wclang-cl-pch
- -Wclass-varargs
- -Wcmse-union-leak
- -Wcomma
- -Wcomment
- -Wcomments
- -Wcompare-distinct-pointer-types
- -Wcomplex-component-init
- -Wconcepts-ts-compat
- -Wconditional-type-mismatch
- -Wconditional-uninitialized
- -Wconfig-macros
- -Wconstant-conversion
- -Wconstant-evaluated
- -Wconstant-logical-operand
- -Wconstexpr-not-const
- -Wconsumed
- -Wconversion
- -Wconversion-null
- -Wcoroutine
- -Wcoroutine-missing-unhandled-exception
- -Wcovered-switch-default
- -Wcpp
- -Wcstring-format-directive
- -Wctad-maybe-unsupported
- -Wctor-dtor-privacy
- -Wctu
- -Wcuda-compat
- -Wcustom-atomic-properties
- -Wdangling
- -Wdangling-else
- -Wdangling-field
- -Wdangling-gsl
- -Wdangling-initializer-list
- -Wdarwin-sdk-settings
- -Wdate-time
- -Wdealloc-in-category
- -Wdebug-compression-unavailable
- -Wdeclaration-after-statement
- -Wdefaulted-function-deleted
- -Wdelegating-ctor-cycles
- -Wdelete-abstract-non-virtual-dtor
- -Wdelete-incomplete
- -Wdelete-non-abstract-non-virtual-dtor
- -Wdelete-non-virtual-dtor
- -Wdeprecated
- -Wdeprecated-anon-enum-enum-conversion
- -Wdeprecated-array-compare
- -Wdeprecated-attributes
- -Wdeprecated-comma-subscript
- -Wdeprecated-copy
- -Wdeprecated-copy-dtor
- -Wdeprecated-declarations
- -Wdeprecated-dynamic-exception-spec
- -Wdeprecated-enum-compare
- -Wdeprecated-enum-compare-conditional
- -Wdeprecated-enum-enum-conversion
- -Wdeprecated-enum-float-conversion
- -Wdeprecated-implementations
- -Wdeprecated-increment-bool
- -Wdeprecated-objc-isa-usage
- -Wdeprecated-objc-pointer-introspection
- -Wdeprecated-objc-pointer-introspection-performSelector
- -Wdeprecated-register
- -Wdeprecated-this-capture
- -Wdeprecated-volatile
- -Wdeprecated-writable-strings
- -Wdirect-ivar-access
- -Wdisabled-macro-expansion
- -Wdisabled-optimization
- -Wdiscard-qual
- -Wdistributed-object-modifiers
- -Wdiv-by-zero
- -Wdivision-by-zero
- -Wdll-attribute-on-redeclaration
- -Wdllexport-explicit-instantiation-decl
- -Wdllimport-static-field-def
- -Wdocumentation
- -Wdocumentation-deprecated-sync
- -Wdocumentation-html
- -Wdocumentation-pedantic
- -Wdocumentation-unknown-command
- -Wdollar-in-identifier-extension
- -Wdouble-promotion
- -Wdtor-name
- -Wdtor-typedef
- -Wduplicate-decl-specifier
- -Wduplicate-enum
- -Wduplicate-method-arg
- -Wduplicate-method-match
- -Wduplicate-protocol
- -Wdynamic-class-memaccess
- -Wdynamic-exception-spec
- -Weffc++
- -Wembedded-directive
- -Wempty-body
- -Wempty-decomposition
- -Wempty-init-stmt
- -Wempty-translation-unit
- -Wencode-type
- -Wendif-labels
- -Wenum-compare
- -Wenum-compare-conditional
- -Wenum-compare-switch
- -Wenum-conversion
- -Wenum-enum-conversion
- -Wenum-float-conversion
- -Wenum-too-large
- -Wexceptions
- -Wexcess-initializers
- -Wexit-time-destructors
- -Wexpansion-to-defined
- -Wexplicit-initialize-call
- -Wexplicit-ownership-type
- -Wexport-unnamed
- -Wexport-using-directive
- -Wextern-c-compat
- -Wextern-initializer
- -Wextra
- -Wextra-qualification
- -Wextra-semi
- -Wextra-semi-stmt
- -Wextra-tokens
- -Wfallback
- -Wfinal-dtor-non-final-class
- -Wfixed-enum-extension
- -Wflag-enum
- -Wflexible-array-extensions
- -Wfloat-conversion
- -Wfloat-equal
- -Wfloat-overflow-conversion
- -Wfloat-zero-conversion
- -Wfor-loop-analysis
- -Wformat
- -Wformat-extra-args
- -Wformat-invalid-specifier
- -Wformat-non-iso
- -Wformat-nonliteral
- -Wformat-pedantic
- -Wformat-security
- -Wformat-type-confusion
- -Wformat-y2k
- -Wformat-zero-length
- -Wformat=2
- -Wfortify-source
- -Wfour-char-constants
- -Wframe-address
- -Wframe-larger-than=
- -Wframework-include-private-from-public
- -Wfunction-def-in-objc-container
- -Wfunction-multiversion
- -Wfuture-compat
- -Wgcc-compat
- -Wglobal-constructors
- -Wglobal-isel
- -Wgnu
- -Wgnu-alignof-expression
- -Wgnu-anonymous-struct
- -Wgnu-array-member-paren-init
- -Wgnu-auto-type
- -Wgnu-binary-literal
- -Wgnu-case-range
- -Wgnu-complex-integer
- -Wgnu-compound-literal-initializer
- -Wgnu-conditional-omitted-operand
- -Wgnu-designator
- -Wgnu-empty-initializer
- -Wgnu-empty-struct
- -Wgnu-flexible-array-initializer
- -Wgnu-flexible-array-union-member
- -Wgnu-folding-constant
- -Wgnu-imaginary-constant
- -Wgnu-include-next
- -Wgnu-inline-cpp-without-extern
- -Wgnu-label-as-value
- -Wgnu-redeclared-enum
- -Wgnu-statement-expression
- -Wgnu-static-float-init
- -Wgnu-string-literal-operator-template
- -Wgnu-union-cast
- -Wgnu-variable-sized-type-not-at-end
- -Wgnu-zero-line-directive
- -Wgnu-zero-variadic-macro-arguments
- -Wheader-guard
- -Wheader-hygiene
- -Whip-only
- -Widiomatic-parentheses
- -Wignored-attributes
- -Wignored-optimization-argument
- -Wignored-pragma-intrinsic
- -Wignored-pragma-optimize
- -Wignored-pragmas
- -Wignored-qualifiers
- -Wimplicit
- -Wimplicit-atomic-properties
- -Wimplicit-const-int-float-conversion
- -Wimplicit-conversion-floating-point-to-bool
- -Wimplicit-exception-spec-mismatch
- -Wimplicit-fallthrough
- -Wimplicit-fallthrough-per-function
- -Wimplicit-fixed-point-conversion
- -Wimplicit-float-conversion
- -Wimplicit-function-declaration
- -Wimplicit-int
- -Wimplicit-int-conversion
- -Wimplicit-int-float-conversion
- -Wimplicit-retain-self
- -Wimplicitly-unsigned-literal
- -Wimport
- -Wimport-preprocessor-directive-pedantic
- -Winaccessible-base
- -Winclude-next-absolute-path
- -Winclude-next-outside-header
- -Wincompatible-exception-spec
- -Wincompatible-function-pointer-types
- -Wincompatible-library-redeclaration
- -Wincompatible-ms-struct
- -Wincompatible-pointer-types
- -Wincompatible-pointer-types-discards-qualifiers
- -Wincompatible-property-type
- -Wincompatible-sysroot
- -Wincomplete-framework-module-declaration
- -Wincomplete-implementation
- -Wincomplete-module
- -Wincomplete-setjmp-declaration
- -Wincomplete-umbrella
- -Winconsistent-dllimport
- -Winconsistent-missing-destructor-override
- -Winconsistent-missing-override
- -Wincrement-bool
- -Winfinite-recursion
- -Winit-self
- -Winitializer-overrides
- -Winjected-class-name
- -Winline
- -Winline-asm
- -Winline-new-delete
- -Winstantiation-after-specialization
- -Wint-conversion
- -Wint-conversions
- -Wint-in-bool-context
- -Wint-to-pointer-cast
- -Wint-to-void-pointer-cast
- -Winteger-overflow
- -Winvalid-command-line-argument
- -Winvalid-constexpr
- -Winvalid-iboutlet
- -Winvalid-initializer-from-system-header
- -Winvalid-ios-deployment-target
- -Winvalid-no-builtin-names
- -Winvalid-noreturn
- -Winvalid-offsetof
- -Winvalid-or-nonexistent-directory
- -Winvalid-partial-specialization
- -Winvalid-pch
- -Winvalid-pp-token
- -Winvalid-source-encoding
- -Winvalid-token-paste
- -Wjump-seh-finally
- -Wkeyword-compat
- -Wkeyword-macro
- -Wknr-promoted-parameter
- -Wlanguage-extension-token
- -Wlarge-by-value-copy
- -Wliblto
- -Wliteral-conversion
- -Wliteral-range
- -Wlocal-type-template-args
- -Wlogical-not-parentheses
- -Wlogical-op-parentheses
- -Wlong-long
- -Wloop-analysis
- -Wmacro-redefined
- -Wmain
- -Wmain-return-type
- -Wmalformed-warning-check
- -Wmany-braces-around-scalar-init
- -Wmax-tokens
- -Wmax-unsigned-zero
- -Wmemset-transposed-args
- -Wmemsize-comparison
- -Wmethod-signatures
- -Wmicrosoft
- -Wmicrosoft-anon-tag
- -Wmicrosoft-cast
- -Wmicrosoft-charize
- -Wmicrosoft-comment-paste
- -Wmicrosoft-const-init
- -Wmicrosoft-cpp-macro
- -Wmicrosoft-default-arg-redefinition
- -Wmicrosoft-drectve-section
- -Wmicrosoft-end-of-file
- -Wmicrosoft-enum-forward-reference
- -Wmicrosoft-enum-value
- -Wmicrosoft-exception-spec
- -Wmicrosoft-exists
- -Wmicrosoft-explicit-constructor-call
- -Wmicrosoft-extra-qualification
- -Wmicrosoft-fixed-enum
- -Wmicrosoft-flexible-array
- -Wmicrosoft-goto
- -Wmicrosoft-inaccessible-base
- -Wmicrosoft-include
- -Wmicrosoft-mutable-reference
- -Wmicrosoft-pure-definition
- -Wmicrosoft-redeclare-static
- -Wmicrosoft-sealed
- -Wmicrosoft-template
- -Wmicrosoft-template-shadow
- -Wmicrosoft-union-member-reference
- -Wmicrosoft-unqualified-friend
- -Wmicrosoft-using-decl
- -Wmicrosoft-void-pseudo-dtor
- -Wmisexpect
- -Wmisleading-indentation
- -Wmismatched-new-delete
- -Wmismatched-parameter-types
- -Wmismatched-return-types
- -Wmismatched-tags
- -Wmissing-braces
- -Wmissing-constinit
- -Wmissing-declarations
- -Wmissing-exception-spec
- -Wmissing-field-initializers
- -Wmissing-format-attribute
- -Wmissing-include-dirs
- -Wmissing-method-return-type
- -Wmissing-noescape
- -Wmissing-noreturn
- -Wmissing-prototype-for-cc
- -Wmissing-prototypes
- -Wmissing-selector-name
- -Wmissing-sysroot
- -Wmissing-variable-declarations
- -Rmodule-build
- -Wmodule-conflict
- -Wmodule-file-config-mismatch
- -Wmodule-file-extension
- -Rmodule-import
- -Wmodule-import-in-extern-c
- -Wmodules-ambiguous-internal-linkage
- -Wmodules-import-nested-redundant
- -Wmost
- -Wmove
- -Wmsvc-include
- -Wmsvc-not-found
- -Wmultichar
- -Wmultiple-move-vbase
- -Wnarrowing
- -Wnested-anon-types
- -Wnested-externs
- -Wnew-returns-null
- -Wnewline-eof
- -Wnoderef
- -Wnoexcept-type
- -Wnon-c-typedef-for-linkage
- -Wnon-gcc
- -Wnon-literal-null-conversion
- -Wnon-modular-include-in-framework-module
- -Wnon-modular-include-in-module
- -Wnon-pod-varargs
- -Wnon-power-of-two-alignment
- -Wnon-virtual-dtor
- -Wnonnull
- -Wnonportable-cfstrings
- -Wnonportable-include-path
- -Wnonportable-system-include-path
- -Wnonportable-vector-initialization
- -Wnontrivial-memaccess
- -Wnsconsumed-mismatch
- -Wnsreturns-mismatch
- -Wnull-arithmetic
- -Wnull-character
- -Wnull-conversion
- -Wnull-dereference
- -Wnull-pointer-arithmetic
- -Wnullability
- -Wnullability-completeness
- -Wnullability-completeness-on-arrays
- -Wnullability-declspec
- -Wnullability-extension
- -Wnullability-inferred-on-nested-type
- -Wnullable-to-nonnull-conversion
- -Wobjc-autosynthesis-property-ivar-name-match
- -Wobjc-bool-constant-conversion
- -Wobjc-boxing
- -Wobjc-circular-container
- -Wobjc-cocoa-api
- -Wobjc-designated-initializers
- -Wobjc-flexible-array
- -Wobjc-forward-class-redefinition
- -Wobjc-interface-ivars
- -Wobjc-literal-compare
- -Wobjc-literal-conversion
- -Wobjc-macro-redefinition
- -Wobjc-messaging-id
- -Wobjc-method-access
- -Wobjc-missing-property-synthesis
- -Wobjc-missing-super-calls
- -Wobjc-multiple-method-names
- -Wobjc-noncopy-retain-block-property
- -Wobjc-nonunified-exceptions
- -Wobjc-property-assign-on-object-type
- -Wobjc-property-implementation
- -Wobjc-property-implicit-mismatch
- -Wobjc-property-matches-cocoa-ownership-rule
- -Wobjc-property-no-attribute
- -Wobjc-property-synthesis
- -Wobjc-protocol-method-implementation
- -Wobjc-protocol-property-synthesis
- -Wobjc-protocol-qualifiers
- -Wobjc-readonly-with-setter-property
- -Wobjc-redundant-api-use
- -Wobjc-redundant-literal-use
- -Wobjc-root-class
- -Wobjc-signed-char-bool
- -Wobjc-signed-char-bool-implicit-float-conversion
- -Wobjc-signed-char-bool-implicit-int-conversion
- -Wobjc-string-compare
- -Wobjc-string-concatenation
- -Wobjc-unsafe-perform-selector
- -Wodr
- -Wold-style-cast
- -Wold-style-definition
- -Wopencl-unsupported-rgba
- -Wopenmp
- -Wopenmp-clauses
- -Wopenmp-loop-form
- -Wopenmp-mapping
- -Wopenmp-target
- -Woption-ignored
- -Wordered-compare-function-pointers
- -Wout-of-line-declaration
- -Wout-of-scope-function
- -Wover-aligned
- -Woverflow
- -Woverlength-strings
- -Woverloaded-shift-op-parentheses
- -Woverloaded-virtual
- -Woverride-init
- -Woverride-module
- -Woverriding-method-mismatch
- -Woverriding-t-option
- -Wpacked
- -Wpadded
- -Wparentheses
- -Wparentheses-equality
- -Wpartial-availability
- -Rpass
- -Rpass-analysis
- -Wpass-failed
- -Rpass-missed
- -Wpch-date-time
- -Wpedantic
- -Wpedantic-core-features
- -Wpessimizing-move
- -Wpointer-arith
- -Wpointer-bool-conversion
- -Wpointer-compare
- -Wpointer-integer-compare
- -Wpointer-sign
- -Wpointer-to-enum-cast
- -Wpointer-to-int-cast
- -Wpointer-to-int-cast
- -Wpointer-type-mismatch
- -Wpoison-system-directories
- -Wpotentially-evaluated-expression
- -Wpragma-clang-attribute
- -Wpragma-once-outside-header
- -Wpragma-pack
- -Wpragma-pack-suspicious-include
- -Wpragma-system-header-outside-header
- -Wpragmas
- -Wpredefined-identifier-outside-function
- -Wprivate-extern
- -Wprivate-header
- -Wprivate-module
- -Wprofile-instr-missing
- -Wprofile-instr-out-of-date
- -Wprofile-instr-unprofiled
- -Wproperty-access-dot-syntax
- -Wproperty-attribute-mismatch
- -Wprotocol
- -Wprotocol-property-synthesis-ambiguity
- -Wqualified-void-return-type
- -Wquoted-include-in-framework-header
- -Wrange-loop-analysis
- -Wrange-loop-bind-reference
- -Wrange-loop-construct
- -Wreadonly-iboutlet-property
- -Wreceiver-expr
- -Wreceiver-forward-class
- -Wredeclared-class-member
- -Wredundant-decls
- -Wredundant-move
- -Wredundant-parens
- -Wregister
- -Wreinterpret-base-class
- -Rremark-backend-plugin
- -Wreorder
- -Wreorder-ctor
- -Wreorder-init-list
- -Wrequires-expression
- -Wrequires-super-attribute
- -Wreserved-id-macro
- -Wreserved-user-defined-literal
- -Wretained-language-linkage
- -Wreturn-stack-address
- -Wreturn-std-move
- -Wreturn-std-move-in-c++11
- -Wreturn-type
- -Wreturn-type-c-linkage
- -Wrewrite-not-bool
- -Rsanitize-address
- -Wsection
- -Wselector
- -Wselector-type-mismatch
- -Wself-assign
- -Wself-assign-field
- -Wself-assign-overloaded
- -Wself-move
- -Wsemicolon-before-method-body
- -Wsentinel
- -Wsequence-point
- -Wserialized-diagnostics
- -Wshadow
- -Wshadow-all
- -Wshadow-field
- -Wshadow-field-in-constructor
- -Wshadow-field-in-constructor-modified
- -Wshadow-ivar
- -Wshadow-uncaptured-local
- -Wshift-count-negative
- -Wshift-count-overflow
- -Wshift-negative-value
- -Wshift-op-parentheses
- -Wshift-overflow
- -Wshift-sign-overflow
- -Wshorten-64-to-32
- -Wsign-compare
- -Wsign-conversion
- -Wsign-promo
- -Wsigned-enum-bitfield
- -Wsigned-unsigned-wchar
- -Wsizeof-array-argument
- -Wsizeof-array-decay
- -Wsizeof-array-div
- -Wsizeof-pointer-div
- -Wsizeof-pointer-memaccess
- -Wslash-u-filename
- -Wsometimes-uninitialized
- -Wsource-uses-openmp
- -Wspir-compat
- -Wstack-exhausted
- -Wstack-protector
- -Wstack-protector
- -Wstatic-float-init
- -Wstatic-in-inline
- -Wstatic-inline-explicit-instantiation
- -Wstatic-local-in-inline
- -Wstatic-self-init
- -Wstdlibcxx-not-found
- -Wstrict-aliasing
- -Wstrict-aliasing=0
- -Wstrict-aliasing=1
- -Wstrict-aliasing=2
- -Wstrict-overflow
- -Wstrict-overflow=0
- -Wstrict-overflow=1
- -Wstrict-overflow=2
- -Wstrict-overflow=3
- -Wstrict-overflow=4
- -Wstrict-overflow=5
- -Wstrict-prototypes
- -Wstrict-prototypes
- -Wstrict-selector-match
- -Wstring-compare
- -Wstring-conversion
- -Wstring-plus-char
- -Wstring-plus-int
- -Wstrlcpy-strlcat-size
- -Wstrncat-size
- -Wsuper-class-method-mismatch
- -Wsuspicious-bzero
- -Wsuspicious-memaccess
- -Wswitch
- -Wswitch-bool
- -Wswitch-default
- -Wswitch-enum
- -Wsync-fetch-and-nand-semantics-changed
- -Wsynth
- -Wtautological-bitwise-compare
- -Wtautological-compare
- -Wtautological-constant-compare
- -Wtautological-constant-in-range-compare
- -Wtautological-constant-out-of-range-compare
- -Wtautological-objc-bool-compare
- -Wtautological-overlap-compare
- -Wtautological-pointer-compare
- -Wtautological-type-limit-compare
- -Wtautological-undefined-compare
- -Wtautological-unsigned-enum-zero-compare
- -Wtautological-unsigned-zero-compare
- -Wtentative-definition-incomplete-type
- -Wthread-safety
- -Wthread-safety-analysis
- -Wthread-safety-attributes
- -Wthread-safety-beta
- -Wthread-safety-negative
- -Wthread-safety-precise
- -Wthread-safety-reference
- -Wthread-safety-verbose
- -Wtrigraphs
- -Wtype-limits
- -Wtype-limits
- -Wtype-safety
- -Wtypedef-redefinition
- -Wtypename-missing
- -Wunable-to-open-stats-file
- -Wunavailable-declarations
- -Wundeclared-selector
- -Wundef
- -Wundefined-bool-conversion
- -Wundefined-func-template
- -Wundefined-inline
- -Wundefined-internal
- -Wundefined-internal-type
- -Wundefined-reinterpret-cast
- -Wundefined-var-template
- -Wunderaligned-exception-object
- -Wunevaluated-expression
- -Wunguarded-availability
- -Wunguarded-availability-new
- -Wunicode
- -Wunicode-homoglyph
- -Wunicode-whitespace
- -Wunicode-zero-width
- -Wuninitialized
- -Wunknown-argument
- -Wunknown-attributes
- -Wunknown-cuda-version
- -Wunknown-escape-sequence
- -Wunknown-pragmas
- -Wunknown-sanitizers
- -Wunknown-warning-option
- -Wunnamed-type-template-args
- -Wunneeded-internal-declaration
- -Wunneeded-member-function
- -Wunreachable-code
- -Wunreachable-code-aggressive
- -Wunreachable-code-break
- -Wunreachable-code-loop-increment
- -Wunreachable-code-return
- -Wunsequenced
- -Wunsupported-abs
- -Wunsupported-availability-guard
- -Wunsupported-cb
- -Wunsupported-dll-base-class-template
- -Wunsupported-friend
- -Wunsupported-gpopt
- -Wunsupported-nan
- -Wunsupported-target-opt
- -Wunsupported-visibility
- -Wunusable-partial-specialization
- -Wunused
- -Wunused-argument
- -Wunused-command-line-argument
- -Wunused-comparison
- -Wunused-const-variable
- -Wunused-exception-parameter
- -Wunused-function
- -Wunused-getter-return-value
- -Wunused-label
- -Wunused-lambda-capture
- -Wunused-local-typedef
- -Wunused-local-typedefs
- -Wunused-macros
- -Wunused-member-function
- -Wunused-parameter
- -Wunused-private-field
- -Wunused-property-ivar
- -Wunused-result
- -Wunused-template
- -Wunused-value
- -Wunused-variable
- -Wunused-volatile-lvalue
- -Wused-but-marked-unused
- -Wuser-defined-literals
- -Wuser-defined-warnings
- -Wvarargs
- -Wvariadic-macros
- -Wvec-elem-size
- -Wvector-conversion
- -Wvector-conversions
- -Wvexing-parse
- -Wvisibility
- -Wvla
- -Wvla-extension
- -Wvoid-pointer-to-enum-cast
- -Wvoid-pointer-to-int-cast
- -Wvoid-ptr-dereference
- -Wvolatile-register-var
- -Wweak-template-vtables
- -Wweak-vtables
- -Wwritable-strings
- -Wwrite-strings
- -Wxor-used-as-pow
- -Wzero-as-null-pointer-constant
- -Wzero-length-array
- -Wwasm-exception-spec
Introduction
This page lists the diagnostic flags currently supported by Clang.
Diagnostic flags
-W
Synonym for -Wextra.
-W#pragma-messages
This diagnostic is enabled by default.
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
-W#warnings
This diagnostic is enabled by default.
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
-WCFString-literal
This diagnostic is enabled by default.
Diagnostic text:
warning: input conversion stopped due to an input byte that does not belong to the input codeset UTF-8 |
-WCL4
Some of the diagnostics controlled by this flag are enabled by default.
-WIndependentClass-attribute
This diagnostic is enabled by default.
Diagnostic text:
warning: 'objc_independent_class' attribute may be put on a typedef only; attribute is ignored |
warning: 'objc_independent_class' attribute may be put on Objective-C object pointer type only; attribute is ignored |
-WNSObject-attribute
This diagnostic is enabled by default.
Diagnostic text:
warning: 'NSObject' attribute may be put on a typedef only; attribute is ignored |
-Wabi
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wabsolute-value
This diagnostic is enabled by default.
Diagnostic text:
warning: absolute value function A given an argument of type B but has parameter of type C which may cause truncation of value |
warning: taking the absolute value of |
|
type B is suspicious |
warning: taking the absolute value of unsigned type A has no effect |
warning: using |
|
absolute value function A when argument is of |
|
type |
-Wabstract-final-class
This diagnostic is enabled by default.
Diagnostic text:
warning: abstract class is marked ' |
|
' |
-Wabstract-vbase-init
Diagnostic text:
warning: initializer for virtual base class A of abstract class B will never be used |
-Waddress
This diagnostic is enabled by default.
Controls -Wpointer-bool-conversion, -Wstring-compare, -Wtautological-pointer-compare.
-Waddress-of-packed-member
This diagnostic is enabled by default.
Diagnostic text:
warning: taking address of packed member A of class or structure B may result in an unaligned pointer value |
-Waddress-of-temporary
This diagnostic is an error by default, but the flag -Wno-address-of-temporary
can be used to disable the error.
Diagnostic text:
error: taking the address of a temporary object of type A |
-Waggregate-return
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wall
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wmisleading-indentation, -Wmost, -Wparentheses, -Wswitch, -Wswitch-bool.
-Walloca
Diagnostic text:
warning: use of function A is discouraged; there is no way to check for failure but failure may still occur, resulting in a possibly exploitable security vulnerability |
-Walloca-with-align-alignof
This diagnostic is enabled by default.
Diagnostic text:
warning: second argument to __builtin_alloca_with_align is supposed to be in bits |
-Wambiguous-delete
This diagnostic is enabled by default.
Diagnostic text:
warning: multiple suitable A functions for B; no 'operator delete' function will be invoked if initialization throws an exception |
-Wambiguous-ellipsis
This diagnostic is enabled by default.
Diagnostic text:
warning: '...' in this location creates a C-style varargs function |
|
-Wambiguous-macro
This diagnostic is enabled by default.
Diagnostic text:
warning: ambiguous expansion of macro A |
-Wambiguous-member-template
This diagnostic is enabled by default.
Diagnostic text:
warning: lookup of A in member access expression is ambiguous; using member of B |
-Wambiguous-reversed-operator
This diagnostic is enabled by default.
Diagnostic text:
warning: ISO C++20 considers use of overloaded operator 'A' (with operand types B and C) to be ambiguous despite there being a unique best viable function |
|
-Wanalyzer-incompatible-plugin
This diagnostic is enabled by default.
Diagnostic text:
warning: checker plugin 'A' is not compatible with this version of the analyzer |
-Wanon-enum-enum-conversion
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wdeprecated-anon-enum-enum-conversion.
Diagnostic text:
warning: |
|
different enumeration types |
-Wanonymous-pack-parens
This diagnostic is enabled by default.
Diagnostic text:
warning: ISO C++11 requires a parenthesized pack declaration to have a name |
-Warc
This diagnostic is enabled by default.
Controls -Warc-non-pod-memaccess, -Warc-retain-cycles, -Warc-unsafe-retained-assign.
-Warc-bridge-casts-disallowed-in-nonarc
This diagnostic is enabled by default.
Diagnostic text:
warning: 'A' casts have no effect when not using ARC |
-Warc-maybe-repeated-use-of-weak
Diagnostic text:
warning: weak |
|
B may be accessed multiple times in this |
|
and may be unpredictably set to nil; assign to a strong variable to keep the object alive |
-Warc-non-pod-memaccess
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
this B call is a pointer to ownership-qualified type C |
-Warc-performSelector-leaks
This diagnostic is enabled by default.
Diagnostic text:
warning: performSelector may cause a leak because its selector is unknown |
-Warc-repeated-use-of-weak
Also controls -Warc-maybe-repeated-use-of-weak.
Diagnostic text:
warning: weak |
|
B is accessed multiple times in this |
|
but may be unpredictably set to nil; assign to a strong variable to keep the object alive |
-Warc-retain-cycles
This diagnostic is enabled by default.
Diagnostic text:
warning: capturing A strongly in this block is likely to lead to a retain cycle |
-Warc-unsafe-retained-assign
This diagnostic is enabled by default.
Diagnostic text:
warning: assigning |
|
to a weak |
|
; object will be released after assignment |
warning: assigning retained object to |
|
|
; object will be released after assignment |
warning: assigning retained object to unsafe property; object will be released after assignment |
-Wargument-outside-range
This diagnostic is an error by default, but the flag -Wno-argument-outside-range
can be used to disable the error.
Diagnostic text:
error: argument value A is outside the valid range [B, C] |
-Warray-bounds
This diagnostic is enabled by default.
Diagnostic text:
warning: array index A is past the end of the array (which contains B element |
|
) |
warning: array index A is before the beginning of the array |
warning: array argument is too small; |
|
, callee requires at least B |
warning: 'static' has no effect on zero-length arrays |
-Warray-bounds-pointer-arithmetic
Diagnostic text:
warning: the pointer incremented by A refers past the end of the array (that contains B element |
|
) |
warning: the pointer decremented by A refers before the beginning of the array |
-Wasm
Synonym for -Wasm-operand-widths.
-Wasm-operand-widths
This diagnostic is enabled by default.
Diagnostic text:
warning: value size does not match register size specified by the constraint and modifier |
-Wassign-enum
Diagnostic text:
warning: integer constant not in range of enumerated type A |
-Wassume
This diagnostic is enabled by default.
Diagnostic text:
warning: the argument to A has side effects that will be discarded |
-Wat-protocol
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Watimport-in-framework-header
This diagnostic is enabled by default.
Diagnostic text:
warning: use of '@import' in framework header is discouraged, including this header requires -fmodules |
-Watomic-alignment
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
atomic operation may incur significant performance penalty |
-Watomic-implicit-seq-cst
Diagnostic text:
warning: implicit use of sequentially-consistent atomic may incur stronger memory barriers than necessary |
-Watomic-memory-ordering
This diagnostic is enabled by default.
Diagnostic text:
warning: memory order argument to atomic operation is invalid |
-Watomic-properties
Controls -Wcustom-atomic-properties, -Wimplicit-atomic-properties.
-Watomic-property-with-user-defined-accessor
This diagnostic is enabled by default.
Diagnostic text:
warning: writable atomic property A cannot pair a synthesized |
|
with a user defined |
|
-Wattribute-packed-for-bitfield
This diagnostic is enabled by default.
Diagnostic text:
warning: 'packed' attribute was ignored on bit-fields with single-byte alignment in older versions of GCC and Clang |
-Wattributes
This diagnostic is enabled by default.
Controls -Wignored-attributes, -Wunknown-attributes.
-Wauto-disable-vptr-sanitizer
This diagnostic is enabled by default.
Diagnostic text:
warning: implicitly disabling vptr sanitizer because rtti wasn't enabled |
-Wauto-import
Diagnostic text:
warning: treating # |
|
as an import of module 'B' |
-Wauto-storage-class
This diagnostic is enabled by default.
Diagnostic text:
warning: 'auto' storage class specifier is not permitted in C++11, and will not be supported in future releases |
-Wauto-var-id
This diagnostic is enabled by default.
Diagnostic text:
warning: 'auto' deduced as 'id' in declaration of A |
-Wavailability
This diagnostic is enabled by default.
Diagnostic text:
warning: 'unavailable' availability overrides all other availability information |
warning: ignoring availability attribute |
|
warning: only 'unavailable' and 'deprecated' are supported for Swift availability |
warning: unknown platform A in availability macro |
warning: feature cannot be |
|
in B version C before it was |
|
in version E; attribute ignored |
warning: use same version number separators '_' or '.'; as in 'major[.minor[.subminor]]' |
warning: availability does not match previous declaration |
warning: |
|
method |
|
|
on B (C vs. D) |
warning: |
|
method cannot be unavailable on A when |
|
is available |
-Wavr-rtlib-linking-quirks
This diagnostic is enabled by default.
Diagnostic text:
warning: support for linking stdlibs for microcontroller 'A' is not implemented |
warning: no avr-gcc installation can be found on the system, cannot link standard libraries |
warning: no avr-libc installation can be found on the system, cannot link standard libraries |
warning: no target microcontroller specified on command line, cannot link standard libraries, please pass -mmcu=<mcu name> |
warning: standard library not linked and so no interrupt vector table or compiler runtime routines will be linked |
-Wbackend-plugin
This diagnostic is enabled by default.
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
-Wbackslash-newline-escape
This diagnostic is enabled by default.
Diagnostic text:
warning: backslash and newline separated by space |
-Wbad-function-cast
Diagnostic text:
warning: cast from function call of type A to non-matching type B |
-Wbinary-literal
Controls -Wc++14-binary-literal, -Wc++98-c++11-compat-binary-literal, -Wgnu-binary-literal.
-Wbind-to-temporary-copy
Also controls -Wc++98-compat-bind-to-temporary-copy.
Diagnostic text:
warning: C++98 requires an accessible copy constructor for class C when binding a reference to a temporary; was |
|
warning: no viable constructor |
|
of type B; C++98 requires a copy constructor when binding a reference to a temporary |
-Wbinding-in-condition
This diagnostic is enabled by default.
Diagnostic text:
warning: ISO C++17 does not permit structured binding declaration in a condition |
-Wbitfield-constant-conversion
This diagnostic is enabled by default.
Diagnostic text:
warning: implicit truncation from C to bit-field changes value from A to B |
-Wbitfield-enum-conversion
Diagnostic text:
warning: bit-field A is not wide enough to store all enumerators of B |
warning: signed bit-field A needs an extra bit to represent the largest positive enumerators of B |
warning: assigning value of signed enum type B to unsigned bit-field A; negative enumerators of enum B will be converted to positive values |
-Wbitfield-width
This diagnostic is enabled by default.
Diagnostic text:
warning: width of anonymous bit-field (A bits) exceeds width of its type; value will be truncated to B bit |
|
warning: width of bit-field A (B bits) exceeds the width of its type; value will be truncated to C bit |
|
-Wbitwise-conditional-parentheses
This diagnostic is enabled by default.
Diagnostic text:
warning: operator '?:' has lower precedence than 'A'; 'A' will be evaluated first |
-Wbitwise-op-parentheses
Diagnostic text:
warning: 'A' within 'B' |
-Wblock-capture-autoreleasing
This diagnostic is enabled by default.
Diagnostic text:
warning: block captures an autoreleasing out-parameter, which may result in use-after-free bugs |
-Wbool-conversion
This diagnostic is enabled by default.
Also controls -Wpointer-bool-conversion, -Wundefined-bool-conversion.
Diagnostic text:
warning: initialization of pointer of type A to null from a constant boolean expression |
-Wbool-conversions
Synonym for -Wbool-conversion.
-Wbool-operation
This diagnostic is enabled by default.
Diagnostic text:
warning: bitwise negation of a boolean expression |
|
did you mean logical negation? |
-Wbraced-scalar-init
This diagnostic is enabled by default.
Diagnostic text:
warning: braces around |
|
initializer |
-Wbridge-cast
This diagnostic is enabled by default.
Diagnostic text:
warning: A bridges to B, not C |
warning: A cannot bridge to B |
-Wbuiltin-assume-aligned-alignment
This diagnostic is enabled by default.
Diagnostic text:
warning: requested alignment must be A bytes or smaller; maximum alignment assumed |
-Wbuiltin-macro-redefined
This diagnostic is enabled by default.
Diagnostic text:
warning: redefining builtin macro |
warning: undefining builtin macro |
-Wbuiltin-memcpy-chk-size
This diagnostic is enabled by default.
Diagnostic text:
warning: 'A' will always overflow; destination buffer has size B, but size argument is C |
-Wbuiltin-requires-header
This diagnostic is enabled by default.
Diagnostic text:
warning: declaration of built-in function 'B' requires inclusion of the header <A> |
-Wc++-compat
Diagnostic text:
warning: |
|
|
has size 0 in C, |
|
in C++ |
-Wc++0x-compat
Synonym for -Wc++11-compat.
-Wc++0x-extensions
Synonym for -Wc++11-extensions.
-Wc++0x-narrowing
Synonym for -Wc++11-narrowing.
-Wc++11-compat
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wc++11-compat-deprecated-writable-strings, -Wc++11-compat-reserved-user-defined-literal, -Wc++11-narrowing, -Wc++98-c++11-c++14-c++17-compat, -Wc++98-c++11-c++14-compat, -Wc++98-c++11-compat.
Diagnostic text:
warning: integer literal is too large to be represented in type 'long' and is subject to undefined behavior under C++98, interpreting as 'unsigned long'; this literal will |
|
in C++11 onwards |
warning: 'auto' storage class specifier is redundant and incompatible with C++11 |
warning: identifier after literal will be treated as a user-defined literal suffix in C++11 |
warning: 'A' is a keyword in C++11 |
warning: use of right-shift operator ('>>') in template argument will require parentheses in C++11 |
warning: explicit instantiation cannot be 'inline' |
warning: explicit instantiation of A must occur at global scope |
warning: explicit instantiation of A not in a namespace enclosing B |
warning: explicit instantiation of A must occur in namespace B |
warning: integer literal is too large to be represented in type 'long', interpreting as 'unsigned long' per C++98; this literal will |
|
in C++11 onwards |
-Wc++11-compat-deprecated-writable-strings
This diagnostic is enabled by default.
Diagnostic text:
warning: conversion from string literal to A is deprecated |
-Wc++11-compat-pedantic
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wc++11-compat, -Wc++98-c++11-c++14-c++17-compat-pedantic, -Wc++98-c++11-c++14-compat-pedantic, -Wc++98-c++11-compat-pedantic.
-Wc++11-compat-reserved-user-defined-literal
Diagnostic text:
warning: identifier after literal will be treated as a reserved user-defined literal suffix in C++11 |
-Wc++11-extensions
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wc++11-extra-semi, -Wc++11-inline-namespace, -Wc++11-long-long.
Diagnostic text:
warning: alias declarations are a C++11 extension |
warning: implicit conversion from array size expression of type A to |
|
type C is a C++11 extension |
warning: 'auto' type specifier is a C++11 extension |
warning: enumeration types with a fixed underlying type are a C++11 extension |
warning: |
|
function definitions are a C++11 extension |
warning: befriending enumeration type A is a C++11 extension |
warning: commas at the end of enumerator lists are a C++11 extension |
warning: explicit conversion functions are a C++11 extension |
warning: extern templates are a C++11 extension |
warning: range-based for loop is a C++11 extension |
warning: generalized initializer lists are a C++11 extension |
warning: use of enumeration in a nested name specifier is a C++11 extension |
warning: non-class friend type A is a C++11 extension |
warning: in-class initialization of non-static data member is a C++11 extension |
warning: 'A' keyword is a C++11 extension |
warning: reference qualifiers on functions are a C++11 extension |
warning: rvalue references are a C++11 extension |
warning: scoped enumerations are a C++11 extension |
warning: static data member A in union is a C++11 extension |
warning: non-type template argument referring to |
|
B with internal linkage is a C++11 extension |
warning: 'template' keyword outside of a template |
warning: default template arguments for a function template are a C++11 extension |
warning: 'typename' occurs outside of a template |
warning: unelaborated friend declaration is a C++11 extension; specify ' |
|
' to befriend B |
warning: variadic templates are a C++11 extension |
-Wc++11-extra-semi
Diagnostic text:
warning: extra ';' outside of a function is a C++11 extension |
-Wc++11-inline-namespace
This diagnostic is enabled by default.
Diagnostic text:
warning: inline namespaces are a C++11 feature |
-Wc++11-long-long
Diagnostic text:
warning: 'long long' is a C++11 extension |
-Wc++11-narrowing
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
error: |
|
|
error: constant expression evaluates to A which cannot be narrowed to type B |
error: type A cannot be narrowed to B in initializer list |
error: non-constant-expression cannot be narrowed from type A to B in initializer list |
warning: constant expression evaluates to A which cannot be narrowed to type B in C++11 |
warning: type A cannot be narrowed to B in initializer list in C++11 |
warning: non-constant-expression cannot be narrowed from type A to B in initializer list in C++11 |
-Wc++14-binary-literal
Diagnostic text:
warning: binary integer literals are a C++14 extension |
-Wc++14-compat
Controls -Wc++98-c++11-c++14-c++17-compat, -Wc++98-c++11-c++14-compat.
-Wc++14-compat-pedantic
Controls -Wc++14-compat, -Wc++98-c++11-c++14-c++17-compat-pedantic, -Wc++98-c++11-c++14-compat-pedantic.
-Wc++14-extensions
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wc++14-binary-literal.
Diagnostic text:
warning: use of this statement in a constexpr |
|
is a C++14 extension |
warning: multiple return statements in constexpr function is a C++14 extension |
warning: variable declaration in a constexpr |
|
is a C++14 extension |
warning: type definition in a constexpr |
|
is a C++14 extension |
warning: use of the A attribute is a C++14 extension |
warning: 'decltype(auto)' type specifier is a C++14 extension |
warning: initialized lambda captures are a C++14 extension |
warning: variable templates are a C++14 extension |
-Wc++17-compat
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wc++17-compat-mangling, -Wc++98-c++11-c++14-c++17-compat, -Wdeprecated-increment-bool, -Wdeprecated-register.
-Wc++17-compat-mangling
This diagnostic is enabled by default.
Diagnostic text:
warning: mangled name of A will change in C++17 due to non-throwing exception specification in function signature |
-Wc++17-compat-pedantic
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wc++17-compat, -Wc++98-c++11-c++14-c++17-compat-pedantic.
-Wc++17-extensions
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: ISO C++ standards before C++17 do not allow new expression for type A to use list-initialization |
warning: constexpr if is a C++17 extension |
warning: 'constexpr' on lambda expressions is a C++17 extension |
warning: use of the A attribute is a C++17 extension |
warning: decomposition declarations are a C++17 extension |
warning: pack fold expression is a C++17 extension |
warning: 'begin' and 'end' returning different types (A and B) is a C++17 extension |
warning: hexadecimal floating literals are a C++17 feature |
warning: ' |
|
' initialization statements are a C++17 extension |
warning: inline variables are a C++17 extension |
warning: use of multiple declarators in a single using declaration is a C++17 extension |
warning: nested namespace definition is a C++17 extension; define each namespace separately |
warning: attributes on |
|
declaration are a C++17 extension |
warning: capture of '*this' by copy is a C++17 extension |
warning: static_assert with no message is a C++17 extension |
warning: template template parameter using 'typename' is a C++17 extension |
warning: default scope specifier for attributes is a C++17 extension |
warning: pack expansion of using declaration is a C++17 extension |
-Wc++1y-extensions
Synonym for -Wc++14-extensions.
-Wc++1z-compat
Synonym for -Wc++17-compat.
-Wc++1z-compat-mangling
Synonym for -Wc++17-compat-mangling.
-Wc++1z-extensions
Synonym for -Wc++17-extensions.
-Wc++20-compat
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: aggregate initialization of type A with user-declared constructors is incompatible with C++20 |
warning: 'consteval' specifier is incompatible with C++ standards before C++20 |
warning: 'constinit' specifier is incompatible with C++ standards before C++20 |
warning: this expression will be parsed as explicit(bool) in C++20 |
warning: '<=>' is a single token in C++20; add a space to avoid a change in behavior |
warning: type of UTF-8 string literal will change from array of const char to array of const char8_t in C++20 |
warning: 'A' is a keyword in C++20 |
-Wc++20-compat-pedantic
Synonym for -Wc++20-compat.
-Wc++20-designator
Diagnostic text:
warning: designated initializers are a C++20 extension |
-Wc++20-extensions
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wc++20-designator.
Diagnostic text:
warning: use of function template name with no prior declaration in function call with explicit template arguments is a C++20 extension |
warning: default member initializer for bit-field is a C++20 extension |
warning: use of this statement in a constexpr |
|
is a C++20 extension |
warning: constexpr constructor that does not initialize all members is a C++20 extension |
warning: function try block in constexpr |
|
is a C++20 extension |
warning: uninitialized variable in a constexpr |
|
is a C++20 extension |
warning: constexpr union constructor that does not initialize any member is a C++20 extension |
warning: use of the A attribute is a C++20 extension |
warning: decomposition declaration declared |
|
is a C++20 extension |
warning: defaulted comparison operators are a C++20 extension |
warning: explicit capture of 'this' with a capture default of '=' is a C++20 extension |
warning: explicit(bool) is a C++20 extension |
warning: range-based for loop initialization statements are a C++20 extension |
warning: initialized lambda pack captures are a C++20 extension |
warning: inline nested namespace definition is a C++20 extension |
warning: explicit template parameter list for lambdas is a C++20 extension |
warning: invoking a pointer to a 'const &' member function on an rvalue is a C++20 extension |
-Wc++2a-compat
Synonym for -Wc++20-compat.
-Wc++2a-compat-pedantic
Synonym for -Wc++20-compat-pedantic.
-Wc++2a-extensions
Synonym for -Wc++20-extensions.
-Wc++98-c++11-c++14-c++17-compat
Diagnostic text:
warning: use of function template name with no prior function template declaration in function call with explicit template arguments is incompatible with C++ standards before C++20 |
warning: default member initializer for bit-field is incompatible with C++ standards before C++20 |
warning: use of this statement in a constexpr |
|
is incompatible with C++ standards before C++20 |
warning: constexpr constructor that does not initialize all members is incompatible with C++ standards before C++20 |
warning: function try block in constexpr |
|
is incompatible with C++ standards before C++20 |
warning: uninitialized variable in a constexpr |
|
is incompatible with C++ standards before C++20 |
warning: constexpr union constructor that does not initialize any member is incompatible with C++ standards before C++20 |
warning: virtual constexpr functions are incompatible with C++ standards before C++20 |
warning: decomposition declaration declared |
|
is incompatible with C++ standards before C++20 |
warning: defaulted comparison operators are incompatible with C++ standards before C++20 |
warning: explicitly defaulting this |
|
with a type different from the implicit type is incompatible with C++ standards before C++20 |
warning: explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++20 |
warning: explicit(bool) is incompatible with C++ standards before C++20 |
warning: range-based for loop initialization statements are incompatible with C++ standards before C++20 |
warning: initialized lambda capture packs are incompatible with C++ standards before C++20 |
warning: inline nested namespace definition is incompatible with C++ standards before C++20 |
warning: |
|
of lambda is incompatible with C++ standards before C++20 |
warning: explicit template parameter list for lambdas is incompatible with C++ standards before C++20 |
warning: '<=>' operator is incompatible with C++ standards before C++20 |
warning: 'char8_t' type specifier is incompatible with C++ standards before C++20 |
-Wc++98-c++11-c++14-c++17-compat-pedantic
Also controls -Wc++98-c++11-c++14-c++17-compat.
Diagnostic text:
warning: designated initializers are incompatible with C++ standards before C++20 |
warning: invoking a pointer to a 'const &' member function on an rvalue is incompatible with C++ standards before C++20 |
-Wc++98-c++11-c++14-compat
Diagnostic text:
warning: class template argument deduction is incompatible with C++ standards before C++17 |
|
warning: constexpr if is incompatible with C++ standards before C++17 |
warning: constexpr on lambda expressions is incompatible with C++ standards before C++17 |
warning: decomposition declarations are incompatible with C++ standards before C++17 |
warning: pack fold expression is incompatible with C++ standards before C++17 |
warning: |
|
initialization statements are incompatible with C++ standards before C++17 |
warning: inline variables are incompatible with C++ standards before C++17 |
warning: nested namespace definition is incompatible with C++ standards before C++17 |
warning: by value capture of '*this' is incompatible with C++ standards before C++17 |
warning: static_assert with no message is incompatible with C++ standards before C++17 |
warning: non-type template parameters declared with A are incompatible with C++ standards before C++17 |
warning: template template parameter using 'typename' is incompatible with C++ standards before C++17 |
warning: unicode literals are incompatible with C++ standards before C++17 |
warning: default scope specifier for attributes is incompatible with C++ standards before C++17 |
warning: use of multiple declarators in a single using declaration is incompatible with C++ standards before C++17 |
warning: pack expansion using declaration is incompatible with C++ standards before C++17 |
warning: 'begin' and 'end' returning different types (A and B) is incompatible with C++ standards before C++17 |
-Wc++98-c++11-c++14-compat-pedantic
Also controls -Wc++98-c++11-c++14-compat.
Diagnostic text:
warning: attributes on |
|
declaration are incompatible with C++ standards before C++17 |
warning: hexadecimal floating literals are incompatible with C++ standards before C++17 |
-Wc++98-c++11-compat
Diagnostic text:
warning: use of this statement in a constexpr |
|
is incompatible with C++ standards before C++14 |
warning: multiple return statements in constexpr function is incompatible with C++ standards before C++14 |
warning: constexpr function with no return statements is incompatible with C++ standards before C++14 |
warning: variable declaration in a constexpr |
|
is incompatible with C++ standards before C++14 |
warning: type definition in a constexpr |
|
is incompatible with C++ standards before C++14 |
warning: 'decltype(auto)' type specifier is incompatible with C++ standards before C++14 |
warning: return type deduction is incompatible with C++ standards before C++14 |
warning: digit separators are incompatible with C++ standards before C++14 |
warning: generic lambdas are incompatible with C++11 |
warning: initialized lambda captures are incompatible with C++ standards before C++14 |
warning: variable templates are incompatible with C++ standards before C++14 |
-Wc++98-c++11-compat-binary-literal
Diagnostic text:
warning: binary integer literals are incompatible with C++ standards before C++14 |
-Wc++98-c++11-compat-pedantic
Controls -Wc++98-c++11-compat, -Wc++98-c++11-compat-binary-literal.
-Wc++98-compat
Also controls -Wc++98-c++11-c++14-c++17-compat, -Wc++98-c++11-c++14-compat, -Wc++98-c++11-compat, -Wc++98-compat-local-type-template-args, -Wc++98-compat-unnamed-type-template-args.
Diagnostic text:
warning: alias declarations are incompatible with C++98 |
warning: 'alignas' is incompatible with C++98 |
warning: alignof expressions are incompatible with C++98 |
warning: C++11 attribute syntax is incompatible with C++98 |
warning: 'auto' type specifier is incompatible with C++98 |
warning: 'constexpr' specifier is incompatible with C++98 |
warning: constructor call from initializer list is incompatible with C++98 |
warning: 'decltype' type specifier is incompatible with C++98 |
warning: |
|
function definitions are incompatible with C++98 |
warning: delegating constructors are incompatible with C++98 |
warning: scalar initialized from empty initializer list is incompatible with C++98 |
warning: initializing A from an empty initializer list is incompatible with C++98 |
warning: enumeration types with a fixed underlying type are incompatible with C++98 |
warning: befriending enumeration type A is incompatible with C++98 |
warning: enumeration type in nested name specifier is incompatible with C++98 |
warning: explicit conversion functions are incompatible with C++98 |
warning: range-based for loop is incompatible with C++98 |
warning: friend declaration naming a member of the declaring class is incompatible with C++98 |
warning: generalized initializer lists are incompatible with C++98 |
warning: jump from this goto statement to its label is incompatible with C++98 |
warning: jump from this |
|
goto statement to one of its possible targets is incompatible with C++98 |
warning: initialization of initializer_list object is incompatible with C++98 |
warning: inline namespaces are incompatible with C++98 |
warning: lambda expressions are incompatible with C++98 |
warning: '<::' is treated as digraph '<:' (aka '[') followed by ':' in C++98 |
warning: literal operators are incompatible with C++98 |
warning: universal character name referring to a control character is incompatible with C++98 |
warning: specifying character 'A' with a universal character name is incompatible with C++98 |
warning: noexcept specifications are incompatible with C++98 |
warning: noexcept expressions are incompatible with C++98 |
warning: use of non-static data member A in an unevaluated context is incompatible with C++98 |
warning: non-class friend type A is incompatible with C++98 |
warning: in-class initialization of non-static data members is incompatible with C++98 |
warning: |
|
member B with a non-trivial |
|
is incompatible with C++98 |
warning: 'nullptr' is incompatible with C++98 |
warning: 'A' keyword is incompatible with C++98 |
warning: passing object of trivial but non-POD type A through variadic |
|
is incompatible with C++98 |
warning: raw string literals are incompatible with C++98 |
warning: reference qualifiers on functions are incompatible with C++98 |
warning: reference initialized from initializer list is incompatible with C++98 |
warning: rvalue references are incompatible with C++98 |
warning: scoped enumerations are incompatible with C++98 |
warning: substitution failure due to access control is incompatible with C++98 |
warning: static_assert declarations are incompatible with C++98 |
warning: static data member A in union is incompatible with C++98 |
warning: jump from switch statement to this case label is incompatible with C++98 |
warning: redundant parentheses surrounding address non-type template argument are incompatible with C++98 |
warning: use of null pointer as non-type template argument is incompatible with C++98 |
warning: non-type template argument referring to |
|
B with internal linkage is incompatible with C++98 |
warning: use of 'template' keyword outside of a template is incompatible with C++98 |
warning: default template arguments for a function template are incompatible with C++98 |
warning: trailing return types are incompatible with C++98 |
warning: consecutive right angle brackets are incompatible with C++98 (use '> >') |
warning: use of 'typename' outside of a template is incompatible with C++98 |
warning: befriending B without ' |
|
' keyword is incompatible with C++98 |
warning: using this character in an identifier is incompatible with C++98 |
warning: unicode literals are incompatible with C++98 |
warning: 'A' type specifier is incompatible with C++98 |
warning: inheriting constructors are incompatible with C++98 |
warning: variadic templates are incompatible with C++98 |
-Wc++98-compat-bind-to-temporary-copy
Diagnostic text:
warning: |
|
of type C when binding a reference to a temporary would |
|
in C++98 |
-Wc++98-compat-extra-semi
Diagnostic text:
warning: extra ';' outside of a function is incompatible with C++98 |
-Wc++98-compat-local-type-template-args
Diagnostic text:
warning: local type A as template argument is incompatible with C++98 |
-Wc++98-compat-pedantic
Also controls -Wc++98-c++11-c++14-c++17-compat-pedantic, -Wc++98-c++11-c++14-compat-pedantic, -Wc++98-c++11-compat-pedantic, -Wc++98-compat, -Wc++98-compat-bind-to-temporary-copy, -Wc++98-compat-extra-semi.
Diagnostic text:
warning: implicit conversion from array size expression of type A to |
|
type C is incompatible with C++98 |
warning: cast between pointer-to-function and pointer-to-object is incompatible with C++98 |
warning: empty macro arguments are incompatible with C++98 |
warning: commas at the end of enumerator lists are incompatible with C++98 |
warning: extern templates are incompatible with C++98 |
warning: 'long long' is incompatible with C++98 |
warning: C++98 requires newline at end of file |
warning: #line number greater than 32767 is incompatible with C++98 |
warning: variadic macros are incompatible with C++98 |
-Wc++98-compat-unnamed-type-template-args
Diagnostic text:
warning: unnamed type as template argument is incompatible with C++98 |
-Wc11-extensions
Diagnostic text:
warning: anonymous unions are a C11 extension |
warning: anonymous structs are a C11 extension |
warning: 'A' is a C11 extension |
-Wc2x-extensions
This diagnostic is enabled by default.
Diagnostic text:
warning: omitting the parameter name in a function definition is a C2x extension |
-Wc99-compat
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: |
|
is incompatible with C99 |
warning: unicode literals are incompatible with C99 |
warning: integer literal is too large to be represented in type 'long', interpreting as 'unsigned long' per C89; this literal will |
|
in C99 onwards |
-Wc99-designator
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wc++20-designator.
Diagnostic text:
warning: designated initializers are a C99 feature |
warning: array designators are a C99 extension |
warning: mixture of designated and non-designated initializers in the same initializer list is a C99 extension |
warning: nested designators are a C99 extension |
-Wc99-extensions
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wc99-designator.
Diagnostic text:
warning: initializer for aggregate is not a compile-time constant |
warning: |
|
array size |
|
is a C99 feature |
warning: compound literals are a C99-specific feature |
warning: 'A' is a C99 extension |
warning: flexible array members are a C99 feature |
warning: variable declaration in for loop is a C99-specific feature |
warning: ISO C99 requires whitespace after the macro name |
warning: empty macro arguments are a C99 feature |
warning: commas at the end of enumerator lists are a C99-specific feature |
warning: hexadecimal floating constants are a C99 feature |
-Wcall-to-pure-virtual-from-ctor-dtor
This diagnostic is enabled by default.
Diagnostic text:
warning: call to pure virtual member function A has undefined behavior; overrides of A in subclasses are not available in the |
|
of C |
-Wcast-align
Diagnostic text:
warning: cast from A to B increases required alignment from C to D |
-Wcast-calling-convention
This diagnostic is enabled by default.
Diagnostic text:
warning: cast between incompatible calling conventions 'A' and 'B'; calls through this pointer may abort at runtime |
-Wcast-of-sel-type
This diagnostic is enabled by default.
Diagnostic text:
warning: cast of type A to B is deprecated; use sel_getName instead |
-Wcast-qual
Diagnostic text:
warning: cast from A to B drops |
|
warning: cast from A to B must have all intermediate pointers const qualified to be safe |
-Wcast-qual-unrelated
This diagnostic is enabled by default.
Diagnostic text:
warning: ISO C++ does not allow |
|
from B to C because it casts away qualifiers, even though the source and destination types are unrelated |
-Wchar-align
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wchar-subscripts
Diagnostic text:
warning: array section |
|
is of type 'char' |
warning: array subscript is of type 'char' |
-Wclang-cl-pch
This diagnostic is enabled by default.
Diagnostic text:
warning: support for '/Yc' with more than one source file not implemented yet; flag ignored |
warning: support for '/Yc' and '/Yu' with different filenames not implemented yet; flags ignored |
warning: #pragma hdrstop filename not supported, /Fp can be used to specify precompiled header filename |
warning: definition of macro A does not match definition in precompiled header |
-Wclass-varargs
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wnon-pod-varargs.
Diagnostic text:
warning: passing object of class type A through variadic |
|
|
-Wcmse-union-leak
This diagnostic is enabled by default.
Diagnostic text:
warning: passing union across security boundary via |
|
may leak information |
-Wcomma
Diagnostic text:
warning: possible misuse of comma operator here |
-Wcomment
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: escaped newline between */ characters at block comment end |
warning: // comments are not allowed in this language |
warning: multi-line // comment |
warning: '/*' within block comment |
-Wcomments
Synonym for -Wcomment.
-Wcompare-distinct-pointer-types
This diagnostic is enabled by default.
Diagnostic text:
warning: comparison of distinct pointer types |
-Wcomplex-component-init
Diagnostic text:
warning: complex initialization specifying real and imaginary components is an extension |
-Wconcepts-ts-compat
This diagnostic is enabled by default.
Diagnostic text:
warning: ISO C++20 does not permit the 'bool' keyword after 'concept' |
-Wconditional-type-mismatch
This diagnostic is enabled by default.
Diagnostic text:
warning: pointer/integer type mismatch in conditional expression |
-Wconditional-uninitialized
Diagnostic text:
warning: variable A may be uninitialized when |
|
-Wconfig-macros
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
of configuration macro 'B' has no effect on the import of 'C'; pass ' |
|
' on the command line to configure the module |
-Wconstant-conversion
This diagnostic is enabled by default.
Also controls -Wbitfield-constant-conversion, -Wobjc-bool-constant-conversion.
Diagnostic text:
warning: implicit conversion from C to D changes value from A to B |
-Wconstant-evaluated
This diagnostic is enabled by default.
Diagnostic text:
warning: 'A' will always evaluate to 'true' in a manifestly constant-evaluated expression |
-Wconstant-logical-operand
This diagnostic is enabled by default.
Diagnostic text:
warning: use of logical 'A' with constant operand |
-Wconstexpr-not-const
This diagnostic is enabled by default.
Diagnostic text:
warning: 'constexpr' non-static member function will not be implicitly 'const' in C++14; add 'const' to avoid a change in behavior |
-Wconsumed
Diagnostic text:
warning: consumed analysis attribute is attached to member of class A which isn't marked as consumable |
warning: state of variable 'A' must match at the entry and exit of loop |
warning: parameter 'A' not in expected state when the function returns: expected 'B', observed 'C' |
warning: argument not in expected state; expected 'A', observed 'B' |
warning: return state set for an unconsumable type 'A' |
warning: return value not in expected state; expected 'A', observed 'B' |
warning: invalid invocation of method 'A' on object 'B' while it is in the 'C' state |
warning: invalid invocation of method 'A' on a temporary object while it is in the 'B' state |
-Wconversion
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wbitfield-enum-conversion, -Wbool-conversion, -Wconstant-conversion, -Wenum-conversion, -Wfloat-conversion, -Wimplicit-float-conversion, -Wimplicit-int-conversion, -Wint-conversion, -Wliteral-conversion, -Wnon-literal-null-conversion, -Wnull-conversion, -Wobjc-literal-conversion, -Wshorten-64-to-32, -Wsign-conversion, -Wstring-conversion.
Diagnostic text:
warning: implicit conversion discards imaginary component: A to B |
warning: implicit conversion turns vector to scalar: A to B |
warning: passing non-generic address space pointer to A may cause dynamic conversion affecting performance |
warning: non-type template argument with value 'A' converted to 'B' for unsigned template parameter of type C |
warning: non-type template argument value 'A' truncated to 'B' for template parameter of type C |
-Wconversion-null
Synonym for -Wnull-conversion.
-Wcoroutine
Synonym for -Wcoroutine-missing-unhandled-exception.
-Wcoroutine-missing-unhandled-exception
This diagnostic is enabled by default.
Diagnostic text:
warning: A is required to declare the member 'unhandled_exception()' when exceptions are enabled |
-Wcovered-switch-default
Diagnostic text:
warning: default label in switch which covers all enumeration values |
-Wcpp
Synonym for -W#warnings.
-Wcstring-format-directive
Diagnostic text:
warning: using A directive in |
|
which is being passed as a formatting argument to the formatting |
|
-Wctad-maybe-unsupported
Diagnostic text:
warning: A may not intend to support class template argument deduction |
-Wctor-dtor-privacy
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wctu
This diagnostic is enabled by default.
Diagnostic text:
warning: imported AST from 'A' had been generated for a different target, current: B, imported: C |
-Wcuda-compat
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: A attribute parameter B is negative and will be ignored |
warning: nvcc does not allow '__A__' to appear after '()' in lambdas |
warning: ignored 'inline' attribute on kernel function A |
warning: kernel function A is a member function; this may not be accepted by nvcc |
warning: argument to '#pragma unroll' should not be in parentheses in CUDA C/C++ |
-Wcustom-atomic-properties
Diagnostic text:
warning: atomic by default property A has a user defined |
|
(property should be marked 'atomic' if this is intended) |
-Wdangling
This diagnostic is enabled by default.
Also controls -Wdangling-field, -Wdangling-gsl, -Wdangling-initializer-list, -Wreturn-stack-address.
Diagnostic text:
warning: |
|
|
will be destroyed at the end of the full-expression |
warning: sorry, lifetime extension of |
|
created by aggregate initialization using default member initializer is not supported; lifetime of |
|
will end at the end of the full-expression |
-Wdangling-else
This diagnostic is enabled by default.
Diagnostic text:
warning: add explicit braces to avoid dangling else |
-Wdangling-field
This diagnostic is enabled by default.
Diagnostic text:
warning: binding reference member A to stack allocated |
|
B |
warning: |
|
|
member A |
|
a temporary object whose lifetime is shorter than the lifetime of the constructed object |
warning: initializing pointer member A with the stack address of |
|
B |
warning: temporary bound to reference member of allocated object will be destroyed at the end of the full-expression |
-Wdangling-gsl
This diagnostic is enabled by default.
Diagnostic text:
warning: object backing the pointer will be destroyed at the end of the full-expression |
warning: initializing pointer member A to point to a temporary object whose lifetime is shorter than the lifetime of the constructed object |
-Wdangling-initializer-list
This diagnostic is enabled by default.
Diagnostic text:
warning: array backing |
|
will be destroyed at the end of the full-expression |
-Wdarwin-sdk-settings
This diagnostic is enabled by default.
Diagnostic text:
warning: SDK settings were ignored as 'SDKSettings.json' could not be parsed |
-Wdate-time
Diagnostic text:
warning: expansion of date or time macro is not reproducible |
-Wdealloc-in-category
This diagnostic is enabled by default.
Diagnostic text:
warning: -dealloc is being overridden in a category |
-Wdebug-compression-unavailable
This diagnostic is enabled by default.
Diagnostic text:
warning: cannot compress debug sections (zlib not installed) |
-Wdeclaration-after-statement
Diagnostic text:
warning: ISO C90 forbids mixing declarations and code |
-Wdefaulted-function-deleted
This diagnostic is enabled by default.
Diagnostic text:
warning: explicitly defaulted |
|
comparison operator is implicitly deleted |
warning: explicitly defaulted |
|
is implicitly deleted |
-Wdelegating-ctor-cycles
This diagnostic is an error by default, but the flag -Wno-delegating-ctor-cycles
can be used to disable the error.
Diagnostic text:
error: constructor for A creates a delegation cycle |
-Wdelete-abstract-non-virtual-dtor
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
called on B that is abstract but has non-virtual destructor |
-Wdelete-incomplete
This diagnostic is enabled by default.
Diagnostic text:
warning: cannot delete expression with pointer-to-'void' type A |
warning: deleting pointer to incomplete type A may cause undefined behavior |
-Wdelete-non-abstract-non-virtual-dtor
Diagnostic text:
warning: |
|
called on non-final B that has virtual functions but non-virtual destructor |
-Wdelete-non-virtual-dtor
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wdelete-abstract-non-virtual-dtor, -Wdelete-non-abstract-non-virtual-dtor.
-Wdeprecated
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wdeprecated-anon-enum-enum-conversion, -Wdeprecated-array-compare, -Wdeprecated-attributes, -Wdeprecated-comma-subscript, -Wdeprecated-copy, -Wdeprecated-copy-dtor, -Wdeprecated-declarations, -Wdeprecated-dynamic-exception-spec, -Wdeprecated-enum-compare, -Wdeprecated-enum-compare-conditional, -Wdeprecated-enum-enum-conversion, -Wdeprecated-enum-float-conversion, -Wdeprecated-increment-bool, -Wdeprecated-register, -Wdeprecated-this-capture, -Wdeprecated-volatile, -Wdeprecated-writable-strings.
Diagnostic text:
warning: -O4 is equivalent to -O3 |
warning: access declarations are deprecated; use using declarations instead |
warning: out-of-line definition of constexpr static data member is redundant in C++17 and is deprecated |
warning: argument 'A' is deprecated, use 'B' instead |
warning: treating 'A' input as 'B' when in C++ mode, this behavior is deprecated |
warning: -fconcepts-ts is deprecated - use '-std=c++20' for Concepts support |
warning: OpenCL version A does not support the option 'B' |
warning: Use of 'long' with '__vector' is deprecated |
-Wdeprecated-anon-enum-enum-conversion
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
different enumeration types is deprecated |
-Wdeprecated-array-compare
This diagnostic is enabled by default.
Diagnostic text:
warning: comparison between two arrays is deprecated; to compare array addresses, use unary '+' to decay operands to pointers |
-Wdeprecated-attributes
This diagnostic is enabled by default.
Diagnostic text:
warning: specifying vector types with the 'mode' attribute is deprecated; use the 'vector_size' attribute instead |
-Wdeprecated-comma-subscript
This diagnostic is enabled by default.
Diagnostic text:
warning: top-level comma expression in array subscript is deprecated |
-Wdeprecated-copy
Diagnostic text:
warning: definition of implicit copy |
|
for A is deprecated because it has a user-declared copy |
|
-Wdeprecated-copy-dtor
Diagnostic text:
warning: definition of implicit copy |
|
for A is deprecated because it has a user-declared destructor |
-Wdeprecated-declarations
This diagnostic is enabled by default.
Diagnostic text:
warning: specifying 'uuid' as an ATL attribute is deprecated; use __declspec instead |
warning: use of C-style parameters in Objective-C method declarations is deprecated |
warning: A is deprecated |
warning: A may be deprecated because the receiver type is unknown |
warning: A is deprecated: B |
warning: property access is using A method which is deprecated |
-Wdeprecated-dynamic-exception-spec
Diagnostic text:
warning: dynamic exception specifications are deprecated |
-Wdeprecated-enum-compare
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
different enumeration types is deprecated |
-Wdeprecated-enum-compare-conditional
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
different enumeration types is deprecated |
-Wdeprecated-enum-enum-conversion
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
different enumeration types is deprecated |
-Wdeprecated-enum-float-conversion
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
|
type C |
|
|
type D is deprecated |
-Wdeprecated-implementations
Diagnostic text:
warning: implementing deprecated |
|
warning: implementing unavailable method |
-Wdeprecated-increment-bool
This diagnostic is enabled by default.
Diagnostic text:
warning: incrementing expression of type bool is deprecated and incompatible with C++17 |
-Wdeprecated-objc-isa-usage
This diagnostic is enabled by default.
Diagnostic text:
warning: assignment to Objective-C's isa is deprecated in favor of object_setClass() |
warning: direct access to Objective-C's isa is deprecated in favor of object_getClass() |
-Wdeprecated-objc-pointer-introspection
This diagnostic is enabled by default.
Also controls -Wdeprecated-objc-pointer-introspection-performSelector.
Diagnostic text:
warning: bitmasking for introspection of Objective-C object pointers is strongly discouraged |
-Wdeprecated-objc-pointer-introspection-performSelector
This diagnostic is enabled by default.
Diagnostic text:
warning: bitmasking for introspection of Objective-C object pointers is strongly discouraged |
-Wdeprecated-register
This diagnostic is enabled by default.
Diagnostic text:
warning: 'register' storage class specifier is deprecated and incompatible with C++17 |
-Wdeprecated-this-capture
Diagnostic text:
warning: implicit capture of 'this' with a capture default of '=' is deprecated |
-Wdeprecated-volatile
This diagnostic is enabled by default.
Diagnostic text:
warning: compound assignment to object of volatile-qualified type A is deprecated |
warning: |
|
of object of volatile-qualified type B is deprecated |
warning: use of result of assignment to object of volatile-qualified type A is deprecated |
warning: volatile-qualified parameter type A is deprecated |
warning: volatile-qualified return type A is deprecated |
warning: volatile qualifier in structured binding declaration is deprecated |
-Wdeprecated-writable-strings
Synonym for -Wc++11-compat-deprecated-writable-strings.
-Wdirect-ivar-access
Diagnostic text:
warning: instance variable A is being directly accessed |
-Wdisabled-macro-expansion
Diagnostic text:
warning: disabled expansion of recursive macro |
-Wdisabled-optimization
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wdiscard-qual
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wdistributed-object-modifiers
This diagnostic is enabled by default.
Diagnostic text:
warning: conflicting distributed object modifiers on parameter type in implementation of A |
warning: conflicting distributed object modifiers on return type in implementation of A |
-Wdiv-by-zero
Synonym for -Wdivision-by-zero.
-Wdivision-by-zero
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
by zero is undefined |
-Wdll-attribute-on-redeclaration
This diagnostic is enabled by default.
Diagnostic text:
warning: redeclaration of A should not add B attribute |
-Wdllexport-explicit-instantiation-decl
This diagnostic is enabled by default.
Diagnostic text:
warning: explicit instantiation declaration should not be 'dllexport' |
-Wdllimport-static-field-def
This diagnostic is enabled by default.
Diagnostic text:
warning: definition of dllimport static field |
-Wdocumentation
Also controls -Wdocumentation-deprecated-sync, -Wdocumentation-html.
Diagnostic text:
warning: ' |
|
|
' command should not be used in a comment attached to a non- |
|
declaration |
warning: duplicated command ' |
|
B' |
warning: empty paragraph passed to ' |
|
B' command |
warning: ' |
|
|
' command should not be used in a comment attached to a non-container declaration |
warning: ' |
|
|
' command should be used in a comment attached to |
|
declaration |
warning: HTML start tag prematurely ended, expected attribute name or '>' |
warning: expected quoted string after equals sign |
warning: ' |
|
B' command does not have a valid word argument |
warning: parameter 'A' is already documented |
warning: unrecognized parameter passing direction, valid directions are '[in]', '[out]' and '[in,out]' |
warning: ' |
|
param' command used in a comment that is not attached to a function declaration |
warning: parameter 'A' not found in the function declaration |
warning: ' |
|
B' command used in a comment that is attached to a |
|
warning: ' |
|
B' command used in a comment that is not attached to a function or method declaration |
warning: template parameter 'A' is already documented |
warning: ' |
|
tparam' command used in a comment that is not attached to a template declaration |
warning: template parameter 'A' not found in the template declaration |
warning: not a Doxygen trailing comment |
warning: ' |
|
B' command does not terminate a verbatim text block |
-Wdocumentation-deprecated-sync
Diagnostic text:
warning: declaration is marked with ' |
|
deprecated' command but does not have a deprecation attribute |
-Wdocumentation-html
Diagnostic text:
warning: HTML end tag 'A' is forbidden |
warning: HTML end tag does not match any start tag |
warning: HTML tag 'A' requires an end tag |
warning: HTML start tag 'A' closed by 'B' |
-Wdocumentation-pedantic
Also controls -Wdocumentation-unknown-command.
Diagnostic text:
warning: whitespace is not allowed in parameter passing direction |
-Wdocumentation-unknown-command
Diagnostic text:
warning: unknown command tag name 'A'; did you mean 'B'? |
warning: unknown command tag name |
-Wdollar-in-identifier-extension
Diagnostic text:
warning: '$' in identifier |
-Wdouble-promotion
Diagnostic text:
warning: implicit conversion increases floating-point precision: A to B |
-Wdtor-name
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: ISO C++ considers this destructor name lookup to be ambiguous |
warning: ISO C++ requires the name after '::~' to be found in the same scope as the name before '::~' |
warning: qualified destructor name only found in lexical scope; omit the qualifier to find this type name by unqualified lookup |
-Wdtor-typedef
This diagnostic is an error by default, but the flag -Wno-dtor-typedef
can be used to disable the error.
Diagnostic text:
error: destructor cannot be declared using a |
|
A of the class name |
-Wduplicate-decl-specifier
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: duplicate 'A' declaration specifier |
warning: duplicate 'A' declaration specifier |
warning: multiple identical address spaces specified for type |
warning: duplicate 'A' declaration specifier |
-Wduplicate-enum
Diagnostic text:
warning: element A has been implicitly assigned B which another element has been assigned |
-Wduplicate-method-arg
Diagnostic text:
warning: redeclaration of method parameter A |
-Wduplicate-method-match
Diagnostic text:
warning: multiple declarations of method A found and ignored |
-Wduplicate-protocol
This diagnostic is enabled by default.
Diagnostic text:
warning: duplicate protocol definition of A is ignored |
-Wdynamic-class-memaccess
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
this B call is a pointer to |
|
dynamic class D; vtable pointer will be |
|
-Wdynamic-exception-spec
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wdeprecated-dynamic-exception-spec.
Diagnostic text:
error: ISO C++17 does not allow dynamic exception specifications |
-Weffc++
Synonym for -Wnon-virtual-dtor.
-Wembedded-directive
Diagnostic text:
warning: embedding a directive within macro arguments has undefined behavior |
-Wempty-body
This diagnostic is enabled by default.
Diagnostic text:
warning: for loop has empty body |
warning: if statement has empty body |
warning: range-based for loop has empty body |
warning: switch statement has empty body |
warning: while loop has empty body |
-Wempty-decomposition
This diagnostic is enabled by default.
Diagnostic text:
warning: ISO C++17 does not allow a decomposition group to be empty |
-Wempty-init-stmt
Diagnostic text:
warning: empty initialization statement of ' |
|
' has no effect |
-Wempty-translation-unit
Diagnostic text:
warning: ISO C requires a translation unit to contain at least one declaration |
-Wencode-type
This diagnostic is enabled by default.
Diagnostic text:
warning: encoding of A type is incomplete because B component has unknown encoding |
-Wendif-labels
Synonym for -Wextra-tokens.
-Wenum-compare
This diagnostic is enabled by default.
Also controls -Wdeprecated-enum-compare, -Wenum-compare-switch.
Diagnostic text:
warning: |
|
different enumeration types |
-Wenum-compare-conditional
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wdeprecated-enum-compare-conditional.
Diagnostic text:
warning: |
|
different enumeration types |
-Wenum-compare-switch
This diagnostic is enabled by default.
Diagnostic text:
warning: comparison of different enumeration types in switch statement |
-Wenum-conversion
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wenum-compare-conditional, -Wenum-enum-conversion, -Wenum-float-conversion.
Diagnostic text:
warning: implicit conversion from enumeration type A to different enumeration type B |
-Wenum-enum-conversion
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wdeprecated-enum-enum-conversion.
Diagnostic text:
warning: |
|
different enumeration types |
-Wenum-float-conversion
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wdeprecated-enum-float-conversion.
Diagnostic text:
warning: |
|
|
type C |
|
|
type D |
-Wenum-too-large
This diagnostic is enabled by default.
Diagnostic text:
warning: enumeration values exceed range of largest integer |
warning: incremented enumerator value A is not representable in the largest integer type |
-Wexceptions
This diagnostic is enabled by default.
Diagnostic text:
warning: cannot refer to a non-static member from the handler of a |
|
function try block |
warning: exception of type A will be caught by earlier handler |
warning: A has a non-throwing exception specification but can still throw |
-Wexcess-initializers
This diagnostic is enabled by default.
Diagnostic text:
warning: excess elements in |
|
initializer |
warning: excess elements in initializer for indivisible sizeless type A |
warning: excess elements in char array initializer |
warning: initializer-string for char array is too long |
-Wexit-time-destructors
Diagnostic text:
warning: declaration requires an exit-time destructor |
-Wexpansion-to-defined
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: macro expansion producing 'defined' has undefined behavior |
warning: macro expansion producing 'defined' has undefined behavior |
-Wexplicit-initialize-call
This diagnostic is enabled by default.
Diagnostic text:
warning: explicit call to +initialize results in duplicate call to +initialize |
warning: explicit call to [super initialize] should only be in implementation of +initialize |
-Wexplicit-ownership-type
Diagnostic text:
warning: method parameter of type A with no explicit ownership |
-Wexport-unnamed
This diagnostic is enabled by default.
Diagnostic text:
warning: ISO C++20 does not permit |
|
declaration to appear in an export block |
warning: ISO C++20 does not permit a declaration that does not introduce any names to be exported |
-Wexport-using-directive
This diagnostic is enabled by default.
Diagnostic text:
warning: ISO C++20 does not permit using directive to be exported |
-Wextern-c-compat
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
|
has size 0 in C, |
|
in C++ |
-Wextern-initializer
This diagnostic is enabled by default.
Diagnostic text:
warning: 'extern' variable has an initializer |
-Wextra
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wdeprecated-copy, -Wempty-init-stmt, -Wignored-qualifiers, -Winitializer-overrides, -Wmissing-field-initializers, -Wmissing-method-return-type, -Wnull-pointer-arithmetic, -Wsemicolon-before-method-body, -Wsign-compare, -Wunused-parameter.
Diagnostic text:
warning: call to function without interrupt attribute could clobber interruptee's VFP registers |
-Wextra-qualification
This diagnostic is enabled by default.
Diagnostic text:
warning: extra qualification on member A |
-Wextra-semi
Also controls -Wc++11-extra-semi, -Wc++98-compat-extra-semi.
Diagnostic text:
warning: extra ';' |
|
warning: extra ';' after member function definition |
-Wextra-semi-stmt
Also controls -Wempty-init-stmt.
Diagnostic text:
warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning |
-Wextra-tokens
This diagnostic is enabled by default.
Diagnostic text:
warning: extra tokens at end of #A directive |
warning: extra tokens at the end of '#pragma omp A' are ignored |
-Wfallback
This diagnostic is enabled by default.
Diagnostic text:
warning: falling back to A |
-Wfinal-dtor-non-final-class
This diagnostic is enabled by default.
Diagnostic text:
warning: class with destructor marked ' |
|
' cannot be inherited from |
-Wfixed-enum-extension
Diagnostic text:
warning: enumeration types with a fixed underlying type are a Clang extension |
-Wflag-enum
This diagnostic is enabled by default.
Diagnostic text:
warning: enumeration value A is out of range of flags in enumeration type B |
-Wflexible-array-extensions
Diagnostic text:
warning: A may not be used as an array element due to flexible array member |
warning: A may not be nested in a struct due to flexible array member |
-Wfloat-conversion
Also controls -Wfloat-overflow-conversion, -Wfloat-zero-conversion.
Diagnostic text:
warning: implicit conversion turns floating-point number into integer: A to B |
-Wfloat-equal
Diagnostic text:
warning: comparing floating point with == or != is unsafe |
-Wfloat-overflow-conversion
Diagnostic text:
warning: implicit conversion from A to B changes value from C to D |
warning: implicit conversion of out of range value from A to B is undefined |
-Wfloat-zero-conversion
Diagnostic text:
warning: implicit conversion from A to B changes non-zero value from C to D |
-Wfor-loop-analysis
Diagnostic text:
warning: variable A is |
|
both in the loop header and in the loop body |
warning: variable |
|
used in loop condition not modified in loop body |
-Wformat
This diagnostic is enabled by default.
Also controls -Wformat-extra-args, -Wformat-invalid-specifier, -Wformat-security, -Wformat-y2k, -Wformat-zero-length, -Wnonnull.
Diagnostic text:
warning: using '%%P' format specifier without precision |
warning: |
|
'A' should not be used as format arguments; add an explicit cast to B instead |
warning: using 'A' format specifier, but argument has boolean value |
warning: format specifies type A but the argument has |
|
B |
warning: using 'A' format specifier annotation outside of os_log()/os_trace() |
warning: invalid position specified for |
|
warning: cannot mix positional and non-positional arguments in format string |
warning: length modifier 'A' results in undefined behavior or no effect with 'B' conversion specifier |
warning: format string should not be a wide string |
warning: position arguments in format strings start counting at 1 (not 0) |
warning: format string missing |
warning: object format flags cannot be used with 'A' conversion specifier |
warning: ' |
|
' specified field |
|
is missing a matching 'int' argument |
warning: field |
|
should have type B, but argument has type C |
warning: missing object format flag |
warning: format string contains '\0' within the string body |
warning: format string is not null-terminated |
warning: flag 'A' is ignored when flag 'B' is present |
warning: incomplete format specifier |
warning: more '%%' conversions than data arguments |
warning: 'A' is not a valid object format flag |
warning: flag 'A' results in undefined behavior with 'B' conversion specifier |
warning: |
|
used with 'B' conversion specifier, resulting in undefined behavior |
warning: data argument position 'A' exceeds the number of data arguments (B) |
warning: zero field width in scanf format string is unused |
warning: no closing ']' for '%%[' in scanf format string |
-Wformat-extra-args
This diagnostic is enabled by default.
Diagnostic text:
warning: data argument not used by format string |
-Wformat-invalid-specifier
This diagnostic is enabled by default.
Diagnostic text:
warning: invalid conversion specifier 'A' |
-Wformat-non-iso
Diagnostic text:
warning: 'A' |
|
is not supported by ISO C |
warning: using length modifier 'A' with conversion specifier 'B' is not supported by ISO C |
warning: positional arguments are not supported by ISO C |
-Wformat-nonliteral
Diagnostic text:
warning: format string is not a string literal |
-Wformat-pedantic
Diagnostic text:
warning: |
|
'A' should not be used as format arguments; add an explicit cast to B instead |
warning: format specifies type A but the argument has |
|
B |
-Wformat-security
This diagnostic is enabled by default.
Diagnostic text:
warning: format string is not a string literal (potentially insecure) |
-Wformat-type-confusion
Diagnostic text:
warning: format specifies type A but the argument has |
|
B |
-Wformat-y2k
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wformat-zero-length
This diagnostic is enabled by default.
Diagnostic text:
warning: format string is empty |
-Wformat=2
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wformat-nonliteral, -Wformat-security, -Wformat-y2k.
-Wfortify-source
This diagnostic is enabled by default.
Diagnostic text:
warning: 'A' will always overflow; destination buffer has size B, but format string expands to at least C |
warning: 'A' will always overflow; destination buffer has size B, but size argument is C |
warning: 'A' size argument is too large; destination buffer has size B, but size argument is C |
-Wfour-char-constants
Diagnostic text:
warning: multi-character character constant |
-Wframe-address
Diagnostic text:
warning: calling 'A' with a nonzero argument is unsafe |
-Wframe-larger-than=
This diagnostic is enabled by default.
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
warning: stack frame size of A bytes in B |
-Wframework-include-private-from-public
This diagnostic is enabled by default.
Diagnostic text:
warning: public framework header includes private framework header 'A' |
-Wfunction-def-in-objc-container
This diagnostic is enabled by default.
Diagnostic text:
warning: function definition inside an Objective-C container is deprecated |
-Wfunction-multiversion
This diagnostic is enabled by default.
Diagnostic text:
warning: body of cpu_dispatch function will be ignored |
warning: CPU list contains duplicate entries; attribute ignored |
-Wfuture-compat
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wgcc-compat
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: 'diagnose_if' is a clang extension |
warning: 'enable_if' is a clang extension |
warning: __final is a GNU extension, consider using C++11 final |
warning: GCC does not allow A attribute in this position on a function definition |
warning: 'break' is bound to loop, GCC binds it to switch |
warning: GCC does not allow the 'cleanup' attribute argument to be anything other than a simple identifier |
warning: GCC does not allow an attribute in this position on a function declaration |
warning: GCC does not allow the A attribute to be written on a type |
warning: GCC does not allow variable declarations in for loop initializers before C99 |
warning: 'A' is bound to current loop, GCC binds it to the enclosing loop |
-Wglobal-constructors
Diagnostic text:
warning: declaration requires a global constructor |
warning: declaration requires a global destructor |
-Wglobal-isel
This diagnostic is enabled by default.
Diagnostic text:
warning: -fglobal-isel support for the 'A' architecture is incomplete |
warning: -fglobal-isel support is incomplete for this architecture at the current optimization level |
-Wgnu
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wgnu-alignof-expression, -Wgnu-anonymous-struct, -Wgnu-auto-type, -Wgnu-binary-literal, -Wgnu-case-range, -Wgnu-complex-integer, -Wgnu-compound-literal-initializer, -Wgnu-conditional-omitted-operand, -Wgnu-designator, -Wgnu-empty-initializer, -Wgnu-empty-struct, -Wgnu-flexible-array-initializer, -Wgnu-flexible-array-union-member, -Wgnu-folding-constant, -Wgnu-imaginary-constant, -Wgnu-include-next, -Wgnu-label-as-value, -Wgnu-redeclared-enum, -Wgnu-statement-expression, -Wgnu-static-float-init, -Wgnu-string-literal-operator-template, -Wgnu-union-cast, -Wgnu-variable-sized-type-not-at-end, -Wgnu-zero-line-directive, -Wgnu-zero-variadic-macro-arguments, -Wredeclared-class-member, -Wvla-extension, -Wzero-length-array.
-Wgnu-alignof-expression
This diagnostic is enabled by default.
Diagnostic text:
warning: A applied to an expression is a GNU extension |
-Wgnu-anonymous-struct
Diagnostic text:
warning: anonymous structs are a GNU extension |
-Wgnu-array-member-paren-init
This diagnostic is an error by default, but the flag -Wno-gnu-array-member-paren-init
can be used to disable the error.
Diagnostic text:
error: parenthesized initialization of a member array is a GNU extension |
-Wgnu-auto-type
Diagnostic text:
warning: '__auto_type' is a GNU extension |
-Wgnu-binary-literal
Diagnostic text:
warning: binary integer literals are a GNU extension |
-Wgnu-case-range
Diagnostic text:
warning: use of GNU case range extension |
-Wgnu-complex-integer
Diagnostic text:
warning: complex integer types are a GNU extension |
-Wgnu-compound-literal-initializer
Diagnostic text:
warning: initialization of an array from a compound literal is a GNU extension |
-Wgnu-conditional-omitted-operand
Diagnostic text:
warning: use of GNU ?: conditional expression extension, omitting middle operand |
-Wgnu-designator
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: use of GNU array range extension |
warning: use of GNU 'missing =' extension in designator |
warning: use of GNU old-style field designator extension |
-Wgnu-empty-initializer
Diagnostic text:
warning: use of GNU empty initializer extension |
-Wgnu-empty-struct
Diagnostic text:
warning: empty |
|
is a GNU extension |
warning: flexible array member A in otherwise empty |
|
is a GNU extension |
warning: |
|
without named members is a GNU extension |
-Wgnu-flexible-array-initializer
Diagnostic text:
warning: flexible array initialization is a GNU extension |
-Wgnu-flexible-array-union-member
Diagnostic text:
warning: flexible array member A in a union is a GNU extension |
-Wgnu-folding-constant
Diagnostic text:
warning: expression is not an |
|
constant expression; folding it to a constant is a GNU extension |
warning: in-class initializer for static data member is not a constant expression; folding it to a constant is a GNU extension |
warning: variable length array folded to constant array as an extension |
-Wgnu-imaginary-constant
Diagnostic text:
warning: imaginary constants are a GNU extension |
-Wgnu-include-next
Diagnostic text:
warning: #include_next is a language extension |
-Wgnu-inline-cpp-without-extern
This diagnostic is enabled by default.
Diagnostic text:
warning: 'gnu_inline' attribute without 'extern' in C++ treated as externally available, this changed in Clang 10 |
-Wgnu-label-as-value
Diagnostic text:
warning: use of GNU address-of-label extension |
warning: use of GNU indirect-goto extension |
-Wgnu-redeclared-enum
Diagnostic text:
warning: redeclaration of already-defined enum A is a GNU extension |
-Wgnu-statement-expression
Diagnostic text:
warning: use of GNU statement expression extension |
-Wgnu-static-float-init
This diagnostic is enabled by default.
Diagnostic text:
warning: in-class initializer for static data member of type A is a GNU extension |
-Wgnu-string-literal-operator-template
This diagnostic is enabled by default.
Diagnostic text:
warning: string literal operator templates are a GNU extension |
-Wgnu-union-cast
Diagnostic text:
warning: cast to union type is a GNU extension |
-Wgnu-variable-sized-type-not-at-end
This diagnostic is enabled by default.
Diagnostic text:
warning: field A with variable sized type B not at the end of a struct or class is a GNU extension |
-Wgnu-zero-line-directive
Diagnostic text:
warning: #line directive with zero argument is a GNU extension |
-Wgnu-zero-variadic-macro-arguments
Diagnostic text:
warning: must specify at least one argument for '...' parameter of variadic macro |
warning: token pasting of ',' and __VA_ARGS__ is a GNU extension |
-Wheader-guard
This diagnostic is enabled by default.
Diagnostic text:
warning: A is used as a header guard here, followed by #define of a different macro |
-Wheader-hygiene
Diagnostic text:
warning: using namespace directive in global context in header |
-Whip-only
This diagnostic is enabled by default.
Diagnostic text:
warning: 'A' is ignored since it is only supported for HIP |
-Widiomatic-parentheses
Diagnostic text:
warning: using the result of an assignment as a condition without parentheses |
-Wignored-attributes
This diagnostic is enabled by default.
Diagnostic text:
warning: 'trivial_abi' cannot be applied to A |
warning: |
|
will always resolve to A even if weak definition of B is overridden |
warning: |
|
will not be in section 'A' but in the same section as the |
|
warning: 'abi_tag' attribute on |
|
namespace ignored |
warning: attribute A after definition is ignored |
warning: 'cmse_nonsecure_entry' cannot be applied to functions with internal linkage |
warning: 'dllexport' attribute ignored on explicit instantiation definition |
warning: A attribute can only be applied to instance variables or properties |
warning: A attribute ignored |
warning: A attribute ignored for field of type B |
warning: A attribute ignored on inline function |
warning: 'A' attribute cannot be specified on a definition |
warning: attribute A ignored, because it is not attached to a declaration |
warning: 'nonnull' attribute applied to function with no pointer arguments |
warning: 'nonnull' attribute when used on parameters takes no arguments |
warning: A attribute ignored when parsing type |
warning: A attribute only applies to a pointer or reference (B is invalid) |
warning: A attribute only applies to |
|
pointer arguments |
warning: attribute declaration must precede definition |
warning: A attribute only applies to return values that are pointers |
warning: A attribute only applies to return values that are pointers or references |
warning: 'sentinel' attribute requires named arguments |
warning: 'sentinel' attribute only supported for variadic |
|
warning: A attribute argument not supported: B |
warning: unknown visibility A |
warning: attribute A cannot be applied to |
|
without return value |
warning: __weak attribute cannot be specified on a field declaration |
warning: __weak attribute cannot be specified on an automatic variable when ARC is not enabled |
warning: A attribute only applies to |
|
warning: A attribute only applies to B |
warning: attribute A ignored, because it cannot be applied to omitted return type |
warning: A calling convention is not supported |
|
warning: attribute A ignored, because it cannot be applied to a type |
warning: ignoring __declspec(allocator) because the function return type A is not a pointer or reference type |
warning: attribute A is ignored, place it after " |
|
" to apply attribute to type declaration |
warning: 'deprecated' attribute on anonymous namespace ignored |
warning: A redeclared inline; B attribute ignored |
warning: attribute A is already applied with different parameters |
warning: attribute A is already applied |
warning: Objective-C GC does not allow weak variables on the stack |
warning: 'gnu_inline' attribute requires function to be marked 'inline', attribute ignored |
warning: inheritance model ignored on |
|
warning: 'objc_externally_retained' can only be applied to local variables |
|
warning: 'internal_linkage' attribute on a non-static local variable is ignored |
warning: |
|
'interrupt' attribute only applies to functions that have |
|
warning: qualifiers after comma in declarator list are ignored |
warning: 'mig_server_routine' attribute only applies to routines that return a kern_return_t |
warning: unknown attribute 'A' |
warning: 'nocf_check' attribute ignored; use -fcf-protection to enable the attribute |
warning: 'noderef' can only be used on an array or pointer type |
warning: 'nothrow' attribute conflicts with exception specification; attribute ignored |
warning: A attribute only applies to |
|
parameters |
warning: A attribute only applies to |
|
that return |
|
warning: A attribute isn't implemented by this Objective-C runtime |
warning: direct attribute on property A ignored (not implemented by this Objective-C runtime) |
warning: A attribute is deprecated and ignored in OpenCL version B |
warning: 'require_constant_initialization' attribute added after initialization of variable |
warning: repeated RISC-V 'interrupt' attribute |
warning: template parameter of a function template with the 'sycl_kernel' attribute cannot be a non-type template parameter |
warning: function template with 'sycl_kernel' attribute must have a single parameter |
warning: 'sycl_kernel' attribute only applies to a function template with at least two template parameters |
warning: function template with 'sycl_kernel' attribute must have a 'void' return type |
warning: |
|
of field B (C bits) does not match the |
|
of the first field in transparent union; transparent_union attribute ignored |
warning: first field of a transparent union cannot have |
|
type B; transparent_union attribute ignored |
warning: transparent_union attribute can only be applied to a union definition; attribute ignored |
warning: transparent union definition must contain at least one field; transparent_union attribute ignored |
warning: 'A' only applies to |
|
types; type here is C |
warning: __declspec attribute A is not supported |
warning: |
|
|
'C' in the 'target' attribute string; 'target' attribute ignored |
warning: '__clang__' is a predefined macro name, not an attribute scope specifier; did you mean '_Clang' instead? |
-Wignored-optimization-argument
This diagnostic is enabled by default.
Diagnostic text:
warning: optimization flag 'A' is not supported for target 'B' |
warning: optimization flag 'A' is not supported |
-Wignored-pragma-intrinsic
This diagnostic is enabled by default.
Diagnostic text:
warning: A is not a recognized builtin |
|
-Wignored-pragma-optimize
This diagnostic is enabled by default.
Diagnostic text:
warning: '#pragma optimize' is not supported |
-Wignored-pragmas
This diagnostic is enabled by default.
Also controls -Wignored-pragma-intrinsic, -Wignored-pragma-optimize.
Diagnostic text:
warning: expected '=' following '#pragma |
|
' - ignored |
warning: invalid alignment option in '#pragma |
|
' - ignored |
warning: OpenCL extension end directive mismatches begin directive - ignoring |
warning: '#pragma comment A' ignored |
warning: missing argument to debug command 'A' |
warning: unexpected debug command 'A' |
warning: unknown module 'A' |
warning: expected action or ')' in '#pragma A' - ignored |
warning: missing ':' after A - ignoring |
warning: missing ':' or ')' after A - ignoring |
warning: expected ',' in '#pragma A' |
warning: expected identifier in '#pragma A' - ignored |
warning: expected 'compiler', 'lib', 'user', or a string literal for the section name in '#pragma A' - ignored |
warning: expected integer between A and B inclusive in '#pragma C' - ignored |
warning: missing '(' after '#pragma A' - ignoring |
warning: expected non-wide string literal in '#pragma A' |
warning: expected |
|
- ignoring |
warning: expected ')' or ',' in '#pragma A' |
warning: missing ')' after '#pragma A' - ignoring |
warning: expected a stack label or a string literal for the section name in '#pragma A' - ignored |
warning: expected a string literal for the section name in '#pragma A' - ignored |
warning: expected push, pop or a string literal for the section name in '#pragma A' - ignored |
warning: expected string literal in '#pragma A' - ignoring |
warning: extra tokens at end of '#pragma A' - ignored |
warning: incorrect use of #pragma clang force_cuda_host_device begin|end |
warning: '#pragma init_seg' is only supported when targeting a Microsoft environment |
warning: unknown action for '#pragma A' - ignored |
warning: unexpected argument 'A' to '#pragma B' |
|
warning: unknown action 'B' for '#pragma A' - ignored |
warning: missing argument to '#pragma A' |
|
warning: incorrect use of '#pragma ms_struct on|off' - ignored |
warning: #pragma options align=reset failed: A |
warning: expected 'align' following '#pragma options' - ignored |
warning: expected #pragma pack parameter to be '1', '2', '4', '8', or '16' |
warning: expected integer or identifier in '#pragma pack' - ignored |
warning: #pragma A(pop, ...) failed: B |
warning: pragma pop_macro could not pop 'A', no matching push_macro |
warning: unknown OpenCL extension A - ignoring |
warning: known but unsupported action 'B' for '#pragma A' - ignored |
warning: unsupported OpenCL extension A - ignoring |
warning: expected '#pragma unused' argument to be a variable name |
warning: only variables can be arguments to '#pragma unused' |
warning: undeclared variable A used as an argument for '#pragma unused' |
-Wignored-qualifiers
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: ARC |
|
lifetime qualifier on return type is ignored |
warning: 'A' qualifier on omitted return type B has no effect |
warning: 'A' type qualifier |
|
on return type |
|
no effect |
warning: 'A' qualifier on function type B has no effect |
warning: 'A' qualifier on reference type B has no effect |
-Wimplicit
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wimplicit-function-declaration, -Wimplicit-int.
-Wimplicit-atomic-properties
Diagnostic text:
warning: property is assumed atomic when auto-synthesizing the property |
warning: property is assumed atomic by default |
-Wimplicit-const-int-float-conversion
This diagnostic is enabled by default.
Diagnostic text:
warning: implicit conversion from C to D changes value from A to B |
-Wimplicit-conversion-floating-point-to-bool
This diagnostic is enabled by default.
Diagnostic text:
warning: implicit conversion turns floating-point number into bool: A to B |
-Wimplicit-exception-spec-mismatch
This diagnostic is enabled by default.
Diagnostic text:
warning: function previously declared with an |
|
exception specification redeclared with an |
|
exception specification |
-Wimplicit-fallthrough
Also controls -Wimplicit-fallthrough-per-function.
Diagnostic text:
warning: fallthrough annotation in unreachable code |
warning: unannotated fall-through between switch labels |
-Wimplicit-fallthrough-per-function
Diagnostic text:
warning: unannotated fall-through between switch labels in partly-annotated function |
-Wimplicit-fixed-point-conversion
This diagnostic is enabled by default.
Diagnostic text:
warning: implicit conversion from A cannot fit within the range of values for B |
-Wimplicit-float-conversion
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wimplicit-int-float-conversion, -Wobjc-signed-char-bool-implicit-float-conversion.
Diagnostic text:
warning: implicit conversion loses floating-point precision: A to B |
warning: implicit conversion when assigning computation result loses floating-point precision: A to B |
-Wimplicit-function-declaration
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: implicit declaration of function A is invalid in C99 |
warning: implicitly declaring library function 'A' with type B |
error: use of unknown builtin A |
warning: implicit declaration of function A |
-Wimplicit-int
This diagnostic is enabled by default.
Diagnostic text:
warning: type specifier missing, defaults to 'int' |
-Wimplicit-int-conversion
Also controls -Wobjc-signed-char-bool-implicit-int-conversion.
Diagnostic text:
warning: higher order bits are zeroes after implicit conversion |
warning: implicit conversion loses integer precision: A to B |
-Wimplicit-int-float-conversion
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wimplicit-const-int-float-conversion.
Diagnostic text:
warning: implicit conversion from A to B may lose precision |
-Wimplicit-retain-self
Diagnostic text:
warning: block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior |
-Wimplicitly-unsigned-literal
This diagnostic is enabled by default.
Diagnostic text:
warning: integer literal is too large to be represented in a signed integer type, interpreting as unsigned |
-Wimport
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wimport-preprocessor-directive-pedantic
Diagnostic text:
warning: #import is a language extension |
-Winaccessible-base
This diagnostic is enabled by default.
Diagnostic text:
warning: direct base A is inaccessible due to ambiguity:B |
-Winclude-next-absolute-path
This diagnostic is enabled by default.
Diagnostic text:
warning: #include_next in file found relative to primary source file or found by absolute path; will search from start of include path |
-Winclude-next-outside-header
This diagnostic is enabled by default.
Diagnostic text:
warning: #include_next in primary source file; will search from start of include path |
-Wincompatible-exception-spec
This diagnostic is enabled by default.
Diagnostic text:
warning: exception specifications of |
|
types differ |
warning: target exception specification is not superset of source |
-Wincompatible-function-pointer-types
This diagnostic is enabled by default.
Diagnostic text:
warning: incompatible function pointer types |
|
|
-Wincompatible-library-redeclaration
This diagnostic is enabled by default.
Diagnostic text:
warning: incompatible redeclaration of library function A |
-Wincompatible-ms-struct
This diagnostic is an error by default, but the flag -Wno-incompatible-ms-struct
can be used to disable the error.
Diagnostic text:
error: ms_struct may not produce Microsoft-compatible layouts for classes with base classes or virtual functions |
error: ms_struct may not produce Microsoft-compatible layouts with fundamental data types with sizes that aren't a power of two |
-Wincompatible-pointer-types
This diagnostic is enabled by default.
Also controls -Wincompatible-function-pointer-types, -Wincompatible-pointer-types-discards-qualifiers.
Diagnostic text:
warning: incompatible pointer types |
|
|
-Wincompatible-pointer-types-discards-qualifiers
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
discards qualifiers in nested pointer types |
warning: |
|
discards qualifiers |
warning: |
|
from B to C changes address space of nested pointers |
-Wincompatible-property-type
This diagnostic is enabled by default.
Diagnostic text:
warning: property type A is incompatible with type B inherited from C |
-Wincompatible-sysroot
This diagnostic is enabled by default.
Diagnostic text:
warning: using sysroot for 'A' but targeting 'B' |
-Wincomplete-framework-module-declaration
This diagnostic is enabled by default.
Diagnostic text:
warning: skipping 'A' because module declaration of 'B' lacks the 'framework' qualifier |
-Wincomplete-implementation
This diagnostic is enabled by default.
Diagnostic text:
warning: method definition for A not found |
-Wincomplete-module
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wincomplete-umbrella, -Wnon-modular-include-in-module.
-Wincomplete-setjmp-declaration
This diagnostic is enabled by default.
Diagnostic text:
warning: declaration of built-in function 'A' requires the declaration of the 'jmp_buf' type, commonly provided in the header <setjmp.h>. |
-Wincomplete-umbrella
This diagnostic is enabled by default.
Diagnostic text:
warning: missing submodule 'A' |
warning: umbrella directory 'A' not found |
warning: umbrella header for module 'A' does not include header 'B' |
-Winconsistent-dllimport
This diagnostic is enabled by default.
Diagnostic text:
warning: A redeclared without B attribute: previous B ignored |
warning: A redeclared without 'dllimport' attribute: 'dllexport' attribute added |
-Winconsistent-missing-destructor-override
Diagnostic text:
warning: A overrides a destructor but is not marked 'override' |
-Winconsistent-missing-override
This diagnostic is enabled by default.
Diagnostic text:
warning: A overrides a member function but is not marked 'override' |
-Wincrement-bool
This diagnostic is enabled by default.
Also controls -Wdeprecated-increment-bool.
Diagnostic text:
error: ISO C++17 does not allow incrementing expression of type bool |
-Winfinite-recursion
Diagnostic text:
warning: all paths through this function will call itself |
-Winit-self
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Winitializer-overrides
This diagnostic is enabled by default.
Diagnostic text:
warning: initializer |
|
overrides prior initialization of this subobject |
warning: initializer |
|
overrides prior initialization of this subobject |
-Winjected-class-name
This diagnostic is enabled by default.
Diagnostic text:
warning: ISO C++ specifies that qualified reference to A is a constructor name rather than a |
|
in this context, despite preceding |
|
keyword |
-Winline
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Winline-asm
This diagnostic is enabled by default.
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
-Winline-new-delete
This diagnostic is enabled by default.
Diagnostic text:
warning: replacement function A cannot be declared 'inline' |
-Winstantiation-after-specialization
This diagnostic is enabled by default.
Diagnostic text:
warning: explicit instantiation of A that occurs after an explicit specialization has no effect |
-Wint-conversion
This diagnostic is enabled by default.
Diagnostic text:
warning: incompatible integer to pointer conversion |
|
|
warning: incompatible pointer to integer conversion |
|
|
-Wint-conversions
Synonym for -Wint-conversion.
-Wint-in-bool-context
Diagnostic text:
warning: converting the enum constant to a boolean |
warning: converting the result of '<<' to a boolean; did you mean '(A) != 0'? |
-Wint-to-pointer-cast
This diagnostic is enabled by default.
Also controls -Wint-to-void-pointer-cast.
Diagnostic text:
warning: cast to B from smaller integer type A |
-Wint-to-void-pointer-cast
This diagnostic is enabled by default.
Diagnostic text:
warning: cast to B from smaller integer type A |
-Winteger-overflow
This diagnostic is enabled by default.
Diagnostic text:
warning: overflow in expression; result is A with type B |
-Winvalid-command-line-argument
This diagnostic is enabled by default.
Also controls -Wignored-optimization-argument.
Diagnostic text:
warning: the given MCU supports A hardware multiply, but -mhwmult is set to B. |
warning: no MCU device specified, but '-mhwmult' is set to 'auto', assuming no hardware multiply. Use -mmcu to specify a MSP430 device, or -mhwmult to set hardware multiply type explicitly. |
warning: the given MCU does not support hardware multiply, but -mhwmult is set to A. |
warning: the object size sanitizer has no effect at -O0, but is explicitly enabled: A |
warning: optimization level 'A' is not supported; using 'BC' instead |
warning: ignoring extension 'A' because the 'B' architecture does not support it |
-Winvalid-constexpr
This diagnostic is an error by default, but the flag -Wno-invalid-constexpr
can be used to disable the error.
Diagnostic text:
error: |
|
|
never produces a constant expression |
-Winvalid-iboutlet
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
with A attribute must be an object type (invalid B) |
warning: IBOutletCollection properties should be copy/strong and not assign |
-Winvalid-initializer-from-system-header
This diagnostic is enabled by default.
Diagnostic text:
warning: invalid constructor form class in system header, should not be explicit |
-Winvalid-ios-deployment-target
This diagnostic is an error by default, but the flag -Wno-invalid-ios-deployment-target
can be used to disable the error.
Diagnostic text:
error: invalid iOS deployment version 'A', iOS 10 is the maximum deployment target for 32-bit targets |
-Winvalid-no-builtin-names
This diagnostic is enabled by default.
Diagnostic text:
warning: 'A' is not a valid builtin name for B |
-Winvalid-noreturn
This diagnostic is enabled by default.
Diagnostic text:
warning: function declared 'noreturn' should not return |
warning: function A declared 'noreturn' should not return |
-Winvalid-offsetof
This diagnostic is enabled by default.
Diagnostic text:
warning: offset of on non-POD type A |
warning: offset of on non-standard-layout type A |
-Winvalid-or-nonexistent-directory
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: environment variable SCE_ORBIS_SDK_DIR is set, but points to invalid or nonexistent directory 'A' |
warning: unable to find A directory, expected to be in 'B' |
-Winvalid-partial-specialization
This diagnostic is an error by default, but the flag -Wno-invalid-partial-specialization
can be used to disable the error.
Diagnostic text:
error: |
|
template partial specialization is not more specialized than the primary template |
-Winvalid-pch
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Winvalid-pp-token
This diagnostic is enabled by default.
Diagnostic text:
warning: empty character constant |
warning: missing terminating |
|
character |
-Winvalid-source-encoding
This diagnostic is enabled by default.
Diagnostic text:
warning: illegal character encoding in character literal |
warning: illegal character encoding in string literal |
-Winvalid-token-paste
This diagnostic is an error by default, but the flag -Wno-invalid-token-paste
can be used to disable the error.
Diagnostic text:
error: pasting formed 'A', an invalid preprocessing token |
-Wjump-seh-finally
This diagnostic is enabled by default.
Diagnostic text:
warning: jump out of __finally block has undefined behavior |
-Wkeyword-compat
This diagnostic is enabled by default.
Diagnostic text:
warning: keyword 'A' will be made available as an identifier |
|
-Wkeyword-macro
Diagnostic text:
warning: keyword is hidden by macro definition |
-Wknr-promoted-parameter
This diagnostic is enabled by default.
Diagnostic text:
warning: promoted type of K&R function parameter is not compatible with parameter type declared in a previous prototype |
-Wlanguage-extension-token
Diagnostic text:
warning: extension used |
-Wlarge-by-value-copy
This diagnostic is enabled by default.
Diagnostic text:
warning: A is a large (B bytes) pass-by-value argument; pass it by reference instead ? |
warning: return value of A is a large (B bytes) pass-by-value object; pass it by reference instead ? |
-Wliblto
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wliteral-conversion
This diagnostic is enabled by default.
Diagnostic text:
warning: implicit conversion from A to B changes value from C to D |
warning: implicit conversion of out of range value from A to B is undefined |
-Wliteral-range
This diagnostic is enabled by default.
Diagnostic text:
warning: magnitude of floating-point constant too large for type A; maximum is B |
warning: magnitude of floating-point constant too small for type A; minimum is B |
-Wlocal-type-template-args
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wc++98-compat-local-type-template-args.
Diagnostic text:
warning: template argument uses local type A |
-Wlogical-not-parentheses
This diagnostic is enabled by default.
Diagnostic text:
warning: logical not is only applied to the left hand side of this |
|
-Wlogical-op-parentheses
Diagnostic text:
warning: '&&' within '||' |
-Wlong-long
Also controls -Wc++11-long-long.
Diagnostic text:
warning: 'long long' is an extension when C99 mode is not enabled |
-Wloop-analysis
Controls -Wfor-loop-analysis, -Wrange-loop-analysis.
-Wmacro-redefined
This diagnostic is enabled by default.
Diagnostic text:
warning: A macro redefined |
-Wmain
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: ISO C++ does not allow 'main' to be used by a program |
warning: 'main' is not allowed to be declared _Noreturn |
warning: 'main' is not allowed to be declared variadic |
warning: only one parameter on 'main' declaration |
warning: variable named 'main' with external linkage has undefined behavior |
warning: bool literal returned from 'main' |
warning: 'main' should not be declared static |
-Wmain-return-type
This diagnostic is enabled by default.
Diagnostic text:
warning: return type of 'main' is not 'int' |
-Wmalformed-warning-check
This diagnostic is enabled by default.
Diagnostic text:
warning: __has_warning expected option name (e.g. "-Wundef") |
-Wmany-braces-around-scalar-init
This diagnostic is enabled by default.
Diagnostic text:
warning: too many braces around |
|
initializer |
-Wmax-tokens
This diagnostic is enabled by default.
Diagnostic text:
warning: the number of preprocessor source tokens (A) exceeds this token limit (B) |
warning: the total number of preprocessor source tokens (A) exceeds the token limit (B) |
The warning is issued if the number of pre-processor tokens exceeds the token limit, which can be set in three ways:
- As a limit at a specific point in a file, using the
clang max_tokens_here
pragma: - As a per-translation unit limit, using the
-fmax-tokens=
command-line flag: - As a per-translation unit limit using the
clang max_tokens_total
pragma, which works like and overrides the-fmax-tokens=
flag:
These limits can be helpful in limiting code growth through included files.
Setting a token limit of zero means no limit.
-Wmax-unsigned-zero
This diagnostic is enabled by default.
Diagnostic text:
warning: taking the max of |
|
is always equal to the other value |
-Wmemset-transposed-args
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
; did you mean to transpose the last two arguments? |
-Wmemsize-comparison
This diagnostic is enabled by default.
Diagnostic text:
warning: size argument in A call is a comparison |
-Wmethod-signatures
Diagnostic text:
warning: conflicting parameter types in implementation of A: B vs C |
warning: conflicting return type in implementation of A: B vs C |
-Wmicrosoft
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Winconsistent-dllimport, -Wmicrosoft-anon-tag, -Wmicrosoft-cast, -Wmicrosoft-charize, -Wmicrosoft-comment-paste, -Wmicrosoft-const-init, -Wmicrosoft-cpp-macro, -Wmicrosoft-default-arg-redefinition, -Wmicrosoft-drectve-section, -Wmicrosoft-end-of-file, -Wmicrosoft-enum-forward-reference, -Wmicrosoft-enum-value, -Wmicrosoft-exception-spec, -Wmicrosoft-explicit-constructor-call, -Wmicrosoft-extra-qualification, -Wmicrosoft-fixed-enum, -Wmicrosoft-flexible-array, -Wmicrosoft-goto, -Wmicrosoft-include, -Wmicrosoft-mutable-reference, -Wmicrosoft-pure-definition, -Wmicrosoft-redeclare-static, -Wmicrosoft-sealed, -Wmicrosoft-template, -Wmicrosoft-union-member-reference, -Wmicrosoft-unqualified-friend, -Wmicrosoft-using-decl, -Wmicrosoft-void-pseudo-dtor.
-Wmicrosoft-anon-tag
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: types declared in an anonymous |
|
are a Microsoft extension |
warning: anonymous |
|
are a Microsoft extension |
-Wmicrosoft-cast
This diagnostic is enabled by default.
Diagnostic text:
warning: static_cast between pointer-to-function and pointer-to-object is a Microsoft extension |
warning: implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension |
-Wmicrosoft-charize
Diagnostic text:
warning: charizing operator #@ is a Microsoft extension |
-Wmicrosoft-comment-paste
Diagnostic text:
warning: pasting two '/' tokens into a '//' comment is a Microsoft extension |
-Wmicrosoft-const-init
This diagnostic is enabled by default.
Diagnostic text:
warning: default initialization of an object of const type A |
|
is a Microsoft extension |
-Wmicrosoft-cpp-macro
Diagnostic text:
warning: C++ operator A (aka B) used as a macro name |
-Wmicrosoft-default-arg-redefinition
This diagnostic is enabled by default.
Diagnostic text:
warning: redefinition of default argument |
-Wmicrosoft-drectve-section
This diagnostic is enabled by default.
Diagnostic text:
warning: #pragma A(".drectve") has undefined behavior, use #pragma comment(linker, ...) instead |
-Wmicrosoft-end-of-file
Diagnostic text:
warning: treating Ctrl-Z as end-of-file is a Microsoft extension |
-Wmicrosoft-enum-forward-reference
This diagnostic is enabled by default.
Diagnostic text:
warning: forward references to 'enum' types are a Microsoft extension |
-Wmicrosoft-enum-value
Diagnostic text:
warning: enumerator value is not representable in the underlying type A |
-Wmicrosoft-exception-spec
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: exception specification of '...' is a Microsoft extension |
warning: |
|
incomplete type B is not allowed in exception specification |
warning: exception specification in declaration does not match previous declaration |
warning: exception specification in explicit instantiation does not match instantiated one |
warning: A is missing exception specification 'B' |
warning: exception specification of overriding function is more lax than base version |
-Wmicrosoft-exists
This diagnostic is enabled by default.
Diagnostic text:
warning: dependent |
|
declarations are ignored |
-Wmicrosoft-explicit-constructor-call
This diagnostic is enabled by default.
Diagnostic text:
warning: explicit constructor calls are a Microsoft extension |
-Wmicrosoft-extra-qualification
This diagnostic is enabled by default.
Diagnostic text:
warning: extra qualification on member A |
-Wmicrosoft-fixed-enum
Diagnostic text:
warning: enumeration types with a fixed underlying type are a Microsoft extension |
-Wmicrosoft-flexible-array
Diagnostic text:
warning: flexible array member A in otherwise empty |
|
is a Microsoft extension |
warning: flexible array member A in a union is a Microsoft extension |
-Wmicrosoft-goto
This diagnostic is enabled by default.
Diagnostic text:
warning: jump from this goto statement to its label is a Microsoft extension |
-Wmicrosoft-inaccessible-base
This diagnostic is enabled by default.
Diagnostic text:
warning: accessing inaccessible direct base A of B is a Microsoft extension |
-Wmicrosoft-include
This diagnostic is enabled by default.
Diagnostic text:
warning: #include resolved using non-portable Microsoft search rules as: A |
-Wmicrosoft-mutable-reference
This diagnostic is enabled by default.
Diagnostic text:
warning: 'mutable' on a reference type is a Microsoft extension |
-Wmicrosoft-pure-definition
This diagnostic is enabled by default.
Diagnostic text:
warning: function definition with pure-specifier is a Microsoft extension |
-Wmicrosoft-redeclare-static
Diagnostic text:
warning: redeclaring non-static A as static is a Microsoft extension |
-Wmicrosoft-sealed
This diagnostic is enabled by default.
Diagnostic text:
warning: 'sealed' keyword is a Microsoft extension |
-Wmicrosoft-template
This diagnostic is enabled by default.
Also controls -Wmicrosoft-template-shadow.
Diagnostic text:
warning: duplicate explicit instantiation of A ignored as a Microsoft extension |
warning: use of identifier A found via unqualified lookup into dependent bases of class templates is a Microsoft extension |
warning: using the undeclared type A as a default template argument is a Microsoft extension |
warning: non-type template argument containing a dereference operation is a Microsoft extension |
warning: |
|
specialization of B not in |
|
is a Microsoft extension |
warning: template argument for template type parameter must be a type; omitted 'typename' is a Microsoft extension |
warning: 'static' can only be specified inside the class definition |
warning: use of undeclared identifier A; unqualified lookup into dependent bases of class template B is a Microsoft extension |
-Wmicrosoft-template-shadow
This diagnostic is enabled by default.
Diagnostic text:
warning: declaration of A shadows template parameter |
-Wmicrosoft-union-member-reference
This diagnostic is enabled by default.
Diagnostic text:
warning: union member A has reference type B, which is a Microsoft extension |
-Wmicrosoft-unqualified-friend
This diagnostic is enabled by default.
Diagnostic text:
warning: unqualified friend declaration referring to type outside of the nearest enclosing namespace is a Microsoft extension; add a nested name specifier |
-Wmicrosoft-using-decl
This diagnostic is enabled by default.
Diagnostic text:
warning: using declaration referring to inaccessible member 'A' (which refers to accessible member 'B') is a Microsoft compatibility extension |
-Wmicrosoft-void-pseudo-dtor
This diagnostic is enabled by default.
Diagnostic text:
warning: pseudo-destructors on type void are a Microsoft extension |
-Wmisexpect
Diagnostic text:
warning: Potential performance regression from use of __builtin_expect(): Annotation was correct on A of profiled executions. |
-Wmisleading-indentation
Diagnostic text:
warning: misleading indentation; statement is not part of the previous ' |
|
' |
-Wmismatched-new-delete
This diagnostic is enabled by default.
Diagnostic text:
warning: 'delete |
|
' applied to a pointer that was allocated with 'new |
|
'; did you mean 'delete |
|
'? |
-Wmismatched-parameter-types
This diagnostic is enabled by default.
Diagnostic text:
warning: conflicting parameter types in implementation of A |
-Wmismatched-return-types
This diagnostic is enabled by default.
Diagnostic text:
warning: conflicting return type in implementation of A |
-Wmismatched-tags
Diagnostic text:
warning: C defined as |
|
|
here but previously declared as |
|
|
; this is valid, but may result in linker errors under the Microsoft C++ ABI |
warning: |
|
|
C was previously declared as a |
|
|
; this is valid, but may result in linker errors under the Microsoft C++ ABI |
-Wmissing-braces
Diagnostic text:
warning: suggest braces around initialization of subobject |
-Wmissing-constinit
This diagnostic is enabled by default.
Diagnostic text:
warning: 'constinit' specifier missing on initializing declaration of A |
-Wmissing-declarations
This diagnostic is enabled by default.
Diagnostic text:
warning: declaration does not declare anything |
warning: 'A' is not permitted on a declaration of a type |
warning: typedef requires a name |
warning: 'A' ignored on this declaration |
-Wmissing-exception-spec
This diagnostic is enabled by default.
Diagnostic text:
warning: A is missing exception specification 'B' |
-Wmissing-field-initializers
Diagnostic text:
warning: missing field A initializer |
-Wmissing-format-attribute
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wmissing-include-dirs
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wmissing-method-return-type
Diagnostic text:
warning: method has no return type specified; defaults to 'id' |
-Wmissing-noescape
This diagnostic is enabled by default.
Diagnostic text:
warning: parameter of overriding method should be annotated with __attribute__((noescape)) |
-Wmissing-noreturn
Diagnostic text:
warning: block could be declared with attribute 'noreturn' |
warning: |
|
B could be declared with attribute 'noreturn' |
-Wmissing-prototype-for-cc
This diagnostic is enabled by default.
Diagnostic text:
warning: function with no prototype cannot use the A calling convention |
-Wmissing-prototypes
Diagnostic text:
warning: no previous prototype for function A |
-Wmissing-selector-name
This diagnostic is enabled by default.
Diagnostic text:
warning: A used as the name of the previous parameter rather than as part of the selector |
-Wmissing-sysroot
This diagnostic is enabled by default.
Diagnostic text:
warning: no such sysroot directory: 'A' |
-Wmissing-variable-declarations
Diagnostic text:
warning: no previous extern declaration for non-static variable A |
-Rmodule-build
Diagnostic text:
remark: building module 'A' as 'B' |
remark: finished building module 'A' |
remark: could not acquire lock file for module 'A': B |
remark: timed out waiting to acquire lock file for module 'A' |
-Wmodule-conflict
This diagnostic is enabled by default.
Diagnostic text:
warning: module 'A' conflicts with already-imported module 'B': C |
warning: module file 'A' was validated as a system module and is now being imported as a non-system module; any difference in diagnostic options will be ignored |
-Wmodule-file-config-mismatch
This diagnostic is an error by default, but the flag -Wno-module-file-config-mismatch
can be used to disable the error.
Diagnostic text:
error: module file A cannot be loaded due to a configuration mismatch with the current compilation |
-Wmodule-file-extension
This diagnostic is enabled by default.
Diagnostic text:
warning: duplicate module file extension block name 'A' |
-Rmodule-import
Diagnostic text:
remark: importing module 'A' |
|
from 'B' |
-Wmodule-import-in-extern-c
This diagnostic is an error by default, but the flag -Wno-module-import-in-extern-c
can be used to disable the error.
Diagnostic text:
error: import of C++ module 'A' appears within extern "C" language linkage specification |
-Wmodules-ambiguous-internal-linkage
This diagnostic is enabled by default.
Diagnostic text:
warning: ambiguous use of internal linkage declaration A defined in multiple modules |
-Wmodules-import-nested-redundant
This diagnostic is an error by default, but the flag -Wno-modules-import-nested-redundant
can be used to disable the error.
Diagnostic text:
error: redundant #include of module 'A' appears within B |
-Wmost
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wcast-of-sel-type, -Wchar-subscripts, -Wcomment, -Wdelete-non-virtual-dtor, -Wextern-c-compat, -Wfor-loop-analysis, -Wformat, -Wframe-address, -Wimplicit, -Winfinite-recursion, -Wint-in-bool-context, -Wmismatched-tags, -Wmissing-braces, -Wmove, -Wmultichar, -Wobjc-designated-initializers, -Wobjc-flexible-array, -Wobjc-missing-super-calls, -Woverloaded-virtual, -Wprivate-extern, -Wrange-loop-construct, -Wreorder, -Wreturn-type, -Wself-assign, -Wself-move, -Wsizeof-array-argument, -Wsizeof-array-decay, -Wstring-plus-int, -Wtautological-compare, -Wtrigraphs, -Wuninitialized, -Wunknown-pragmas, -Wunused, -Wuser-defined-warnings, -Wvolatile-register-var.
-Wmove
Controls -Wpessimizing-move, -Wredundant-move, -Wreturn-std-move, -Wself-move.
-Wmsvc-include
Synonym for -Wmicrosoft-include.
-Wmsvc-not-found
This diagnostic is enabled by default.
Diagnostic text:
warning: unable to find a Visual Studio installation; try running Clang from a developer command prompt |
-Wmultichar
This diagnostic is enabled by default.
Diagnostic text:
warning: multi-character character constant |
-Wmultiple-move-vbase
This diagnostic is enabled by default.
Diagnostic text:
warning: defaulted move assignment operator of A will move assign virtual base class B multiple times |
-Wnarrowing
Synonym for -Wc++11-narrowing.
-Wnested-anon-types
Diagnostic text:
warning: anonymous types declared in an anonymous |
|
are an extension |
-Wnested-externs
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wnew-returns-null
This diagnostic is enabled by default.
Diagnostic text:
warning: A should not return a null pointer unless it is declared 'throw()' |
|
-Wnewline-eof
Diagnostic text:
warning: no newline at end of file |
warning: no newline at end of file |
-Wnoderef
This diagnostic is enabled by default.
Diagnostic text:
warning: dereferencing A; was declared with a 'noderef' type |
warning: dereferencing expression marked as 'noderef' |
warning: casting to dereferenceable pointer removes 'noderef' attribute |
-Wnoexcept-type
Synonym for -Wc++17-compat-mangling.
-Wnon-c-typedef-for-linkage
This diagnostic is enabled by default.
Diagnostic text:
warning: anonymous non-C-compatible type given name for linkage purposes by |
|
declaration; add a tag name here |
-Wnon-gcc
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wconversion, -Wliteral-range, -Wsign-compare.
-Wnon-literal-null-conversion
This diagnostic is enabled by default.
Diagnostic text:
warning: expression which evaluates to zero treated as a null pointer constant of type A |
-Wnon-modular-include-in-framework-module
Diagnostic text:
warning: include of non-modular header inside framework module 'A': 'B' |
-Wnon-modular-include-in-module
Also controls -Wnon-modular-include-in-framework-module.
Diagnostic text:
warning: include of non-modular header inside module 'A': 'B' |
-Wnon-pod-varargs
This diagnostic is an error by default, but the flag -Wno-non-pod-varargs
can be used to disable the error.
Diagnostic text:
error: cannot pass object of |
|
type B through variadic |
|
; call will abort at runtime |
error: cannot pass |
|
object of type B to variadic |
|
; expected type from format string was D |
error: second argument to 'va_arg' is of non-POD type A |
error: second argument to 'va_arg' is of ARC ownership-qualified type A |
-Wnon-power-of-two-alignment
This diagnostic is enabled by default.
Diagnostic text:
warning: requested alignment is not a power of 2 |
-Wnon-virtual-dtor
Diagnostic text:
warning: A has virtual functions but non-virtual destructor |
-Wnonnull
This diagnostic is enabled by default.
Diagnostic text:
warning: null passed to a callee that requires a non-null argument |
warning: null returned from |
|
that requires a non-null return value |
-Wnonportable-cfstrings
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wnonportable-include-path
This diagnostic is enabled by default.
Diagnostic text:
warning: non-portable path to file 'A'; specified path differs in case from file name on disk |
-Wnonportable-system-include-path
Diagnostic text:
warning: non-portable path to file 'A'; specified path differs in case from file name on disk |
-Wnonportable-vector-initialization
This diagnostic is enabled by default.
Diagnostic text:
warning: vector initializers are not compatible with NEON intrinsics in big endian mode |
-Wnontrivial-memaccess
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
this B call is a pointer to record C that is not trivial to |
|
-Wnsconsumed-mismatch
This diagnostic is enabled by default.
Diagnostic text:
warning: overriding method has mismatched ns_consumed attribute on its parameter |
-Wnsreturns-mismatch
This diagnostic is enabled by default.
Diagnostic text:
warning: overriding method has mismatched ns_returns_ |
|
attributes |
-Wnull-arithmetic
This diagnostic is enabled by default.
Diagnostic text:
warning: use of NULL in arithmetic operation |
warning: comparison between NULL and non-pointer |
|
-Wnull-character
This diagnostic is enabled by default.
Diagnostic text:
warning: null character(s) preserved in |
|
literal |
warning: null character ignored |
-Wnull-conversion
This diagnostic is enabled by default.
Diagnostic text:
warning: implicit conversion of |
|
constant to B |
-Wnull-dereference
This diagnostic is enabled by default.
Diagnostic text:
warning: binding dereferenced null pointer to reference has undefined behavior |
warning: indirection of non-volatile null pointer will be deleted, not trap |
-Wnull-pointer-arithmetic
Diagnostic text:
warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension |
warning: performing pointer arithmetic on a null pointer has undefined behavior |
|
-Wnullability
This diagnostic is enabled by default.
Diagnostic text:
warning: conflicting nullability specifier on parameter types, A conflicts with existing specifier B |
warning: conflicting nullability specifier on return types, A conflicts with existing specifier B |
warning: nullability specifier A conflicts with existing specifier B |
warning: synthesized setter A for null_resettable property B does not handle nil |
warning: duplicate nullability specifier A |
-Wnullability-completeness
This diagnostic is enabled by default.
Also controls -Wnullability-completeness-on-arrays.
Diagnostic text:
warning: |
|
is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) |
-Wnullability-completeness-on-arrays
This diagnostic is enabled by default.
Diagnostic text:
warning: array parameter is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) |
-Wnullability-declspec
This diagnostic is an error by default, but the flag -Wno-nullability-declspec
can be used to disable the error.
Diagnostic text:
error: nullability specifier A cannot be applied to non-pointer type B; did you mean to apply the specifier to the |
|
? |
-Wnullability-extension
Diagnostic text:
warning: type nullability specifier A is a Clang extension |
-Wnullability-inferred-on-nested-type
This diagnostic is enabled by default.
Diagnostic text:
warning: inferring '_Nonnull' for pointer type within |
|
is deprecated |
-Wnullable-to-nonnull-conversion
Diagnostic text:
warning: implicit conversion from nullable pointer A to non-nullable pointer type B |
-Wobjc-autosynthesis-property-ivar-name-match
This diagnostic is enabled by default.
Diagnostic text:
warning: autosynthesized property A will use |
|
instance variable C, not existing instance variable D |
-Wobjc-bool-constant-conversion
This diagnostic is enabled by default.
Diagnostic text:
warning: implicit conversion from constant value A to 'BOOL'; the only well defined values for 'BOOL' are YES and NO |
-Wobjc-boxing
This diagnostic is enabled by default.
Diagnostic text:
warning: string is ill-formed as UTF-8 and will become a null A when boxed |
-Wobjc-circular-container
This diagnostic is enabled by default.
Diagnostic text:
warning: adding A to B might cause circular dependency in container |
-Wobjc-cocoa-api
Synonym for -Wobjc-redundant-api-use.
-Wobjc-designated-initializers
This diagnostic is enabled by default.
Diagnostic text:
warning: designated initializer missing a 'super' call to a designated initializer of the super class |
warning: designated initializer invoked a non-designated initializer |
warning: designated initializer should only invoke a designated initializer on 'super' |
warning: method override for the designated initializer of the superclass A not found |
warning: convenience initializer missing a 'self' call to another initializer |
warning: convenience initializer should not invoke an initializer on 'super' |
-Wobjc-flexible-array
This diagnostic is enabled by default.
Diagnostic text:
warning: field A can overwrite instance variable B with variable sized type C in superclass D |
warning: field A with variable sized type B is not visible to subclasses and can conflict with their instance variables |
-Wobjc-forward-class-redefinition
This diagnostic is enabled by default.
Diagnostic text:
warning: redefinition of forward class A of a typedef name of an object type is ignored |
-Wobjc-interface-ivars
Diagnostic text:
warning: declaration of instance variables in the interface is deprecated |
-Wobjc-literal-compare
This diagnostic is enabled by default.
Also controls -Wobjc-string-compare.
Diagnostic text:
warning: direct comparison of |
|
has undefined behavior |
-Wobjc-literal-conversion
This diagnostic is enabled by default.
Diagnostic text:
warning: implicit boolean conversion of Objective-C object literal always evaluates to true |
warning: object of type A is not compatible with |
|
C |
-Wobjc-macro-redefinition
This diagnostic is enabled by default.
Diagnostic text:
warning: ignoring redefinition of Objective-C qualifier macro |
-Wobjc-messaging-id
Diagnostic text:
warning: messaging unqualified id |
-Wobjc-method-access
This diagnostic is enabled by default.
Diagnostic text:
warning: class method A not found (return type defaults to 'id') |
warning: class method A not found (return type defaults to 'id'); did you mean C? |
warning: instance method A not found (return type defaults to 'id') |
warning: instance method A not found (return type defaults to 'id'); did you mean C? |
warning: instance method A found instead of class method B |
warning: instance method A is being used on 'Class' which is not in the root class |
-Wobjc-missing-property-synthesis
Diagnostic text:
warning: auto property synthesis is synthesizing property not explicitly synthesized |
-Wobjc-missing-super-calls
This diagnostic is enabled by default.
Diagnostic text:
warning: method possibly missing a [super A] call |
-Wobjc-multiple-method-names
This diagnostic is enabled by default.
Diagnostic text:
warning: multiple methods named A found |
-Wobjc-noncopy-retain-block-property
This diagnostic is enabled by default.
Diagnostic text:
warning: retain'ed block property does not copy the block - use copy attribute instead |
-Wobjc-nonunified-exceptions
This diagnostic is enabled by default.
Diagnostic text:
warning: cannot catch an exception thrown with @throw in C++ in the non-unified exception model |
-Wobjc-property-assign-on-object-type
Diagnostic text:
warning: 'assign' property of object type may become a dangling reference; consider using 'unsafe_unretained' |
-Wobjc-property-implementation
This diagnostic is enabled by default.
Diagnostic text:
warning: class property A requires method B to be defined - use @dynamic or provide a method implementation in this class implementation |
warning: class property A requires method B to be defined - use @dynamic or provide a method implementation in this category |
warning: property A requires method B to be defined - use @synthesize, @dynamic or provide a method implementation in this class implementation |
warning: property A requires method B to be defined - use @dynamic or provide a method implementation in this category |
-Wobjc-property-implicit-mismatch
This diagnostic is enabled by default.
Diagnostic text:
warning: primary property declaration is implicitly strong while redeclaration in class extension is weak |
-Wobjc-property-matches-cocoa-ownership-rule
This diagnostic is enabled by default.
Diagnostic text:
warning: property follows Cocoa naming convention for returning 'owned' objects |
-Wobjc-property-no-attribute
This diagnostic is enabled by default.
Diagnostic text:
warning: default property attribute 'assign' not appropriate for object |
warning: no 'assign', 'retain', or 'copy' attribute is specified - 'assign' is assumed |
-Wobjc-property-synthesis
This diagnostic is enabled by default.
Diagnostic text:
warning: auto property synthesis will not synthesize property A; it will be implemented by its superclass, use @dynamic to acknowledge intention |
warning: auto property synthesis will not synthesize property A because it is 'readwrite' but it will be synthesized 'readonly' via another property |
warning: auto property synthesis will not synthesize property A because it cannot share an ivar with another synthesized property |
-Wobjc-protocol-method-implementation
This diagnostic is enabled by default.
Diagnostic text:
warning: category is implementing a method which will also be implemented by its primary class |
-Wobjc-protocol-property-synthesis
This diagnostic is enabled by default.
Diagnostic text:
warning: auto property synthesis will not synthesize property A declared in protocol B |
-Wobjc-protocol-qualifiers
This diagnostic is enabled by default.
Diagnostic text:
warning: parameterized class A already conforms to the protocols listed; did you forget a '*'? |
-Wobjc-readonly-with-setter-property
This diagnostic is enabled by default.
Diagnostic text:
warning: setter cannot be specified for a readonly property |
-Wobjc-redundant-api-use
Synonym for -Wobjc-redundant-literal-use.
-Wobjc-redundant-literal-use
This diagnostic is enabled by default.
Diagnostic text:
warning: using A with a literal is redundant |
-Wobjc-root-class
This diagnostic is enabled by default.
Diagnostic text:
warning: class A defined without specifying a base class |
-Wobjc-signed-char-bool
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wobjc-bool-constant-conversion, -Wobjc-signed-char-bool-implicit-float-conversion, -Wobjc-signed-char-bool-implicit-int-conversion, -Wtautological-objc-bool-compare.
-Wobjc-signed-char-bool-implicit-float-conversion
This diagnostic is enabled by default.
Diagnostic text:
warning: implicit conversion from floating-point type A to 'BOOL' |
-Wobjc-signed-char-bool-implicit-int-conversion
Diagnostic text:
warning: implicit conversion from integral type A to 'BOOL' |
-Wobjc-string-compare
This diagnostic is enabled by default.
Diagnostic text:
warning: direct comparison of a string literal has undefined behavior |
-Wobjc-string-concatenation
This diagnostic is enabled by default.
Diagnostic text:
warning: concatenated NSString literal for an NSArray expression - possibly missing a comma |
-Wobjc-unsafe-perform-selector
This diagnostic is enabled by default.
Diagnostic text:
warning: A is incompatible with selectors that return a |
|
type |
-Wodr
This diagnostic is enabled by default.
Diagnostic text:
warning: template parameter lists have a different number of parameters (A vs B) |
warning: template parameter has different kinds in different translation units |
warning: field A declared with incompatible types in different translation units (B vs. C) |
warning: external function A declared with incompatible types in different translation units (B vs. C) |
warning: instance variable A declared with incompatible types in different translation units (B vs. C) |
warning: non-type template parameter declared with incompatible types in different translation units (A vs. B) |
warning: |
|
method B has a different number of parameters in different translation units (C vs. D) |
warning: |
|
method B has a parameter with a different types in different translation units (C vs. D) |
warning: |
|
method B has incompatible result types in different translation units (C vs. D) |
warning: |
|
method B is variadic in one translation unit and not variadic in another |
warning: property A is implemented with |
|
in one translation but |
|
in another translation unit |
warning: property A declared with incompatible types in different translation units (B vs. C) |
warning: class A has incompatible superclasses |
warning: property A is synthesized to different ivars in different translation units (B vs. C) |
warning: parameter kind mismatch; parameter is |
|
parameter pack |
warning: type A has incompatible definitions in different translation units |
warning: external variable A defined in multiple translation units |
warning: external variable A declared with incompatible types in different translation units (B vs. C) |
-Wold-style-cast
Diagnostic text:
warning: use of old-style cast |
-Wold-style-definition
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wopencl-unsupported-rgba
This diagnostic is enabled by default.
Diagnostic text:
warning: vector component name 'A' is an OpenCL version 2.2 feature |
-Wopenmp
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wopenmp-clauses, -Wopenmp-loop-form, -Wopenmp-mapping, -Wopenmp-target, -Wsource-uses-openmp.
-Wopenmp-clauses
This diagnostic is enabled by default.
Diagnostic text:
warning: aligned clause will be ignored because the requested alignment is not a power of 2 |
warning: allocator with the 'thread' trait access has unspecified behavior on 'A' directive |
warning: the context property 'A' is not valid for the context selector 'B' and the context set 'C'; property ignored |
warning: the context selector 'A' in the context set 'B' cannot have a score ('C'); score ignored |
warning: the context selector 'A' is not valid for the context set 'B'; selector ignored |
warning: the context selector 'A' in context set 'B' requires a context property defined in parentheses; selector ignored |
warning: the context |
|
'B' was used already in the same 'omp declare variant' directive; |
|
ignored |
warning: 'A' is not a valid context property for the context selector 'B' and the context set 'C'; property ignored |
warning: 'A' is not a valid context selector for the context set 'B'; selector ignored |
warning: 'A' is not a valid context set in a `declare variant`; set ignored |
warning: expected 'A' after the B; 'A' assumed |
warning: expected identifier or string literal describing a context |
|
; |
|
skipped |
warning: zero linear step (A |
|
should probably be const) |
warning: more than one 'device_type' clause is specified |
warning: allocate directive specifies |
|
allocator while previously used |
|
-Wopenmp-loop-form
This diagnostic is enabled by default.
Diagnostic text:
warning: initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init') |
warning: OpenMP loop iteration variable cannot have more than 64 bits size and will be narrowed |
-Wopenmp-mapping
This diagnostic is enabled by default.
Diagnostic text:
warning: Type A is not trivially copyable and not guaranteed to be mapped correctly |
-Wopenmp-target
This diagnostic is enabled by default.
Also controls -Wopenmp-mapping.
Diagnostic text:
warning: The OpenMP offloading target 'A' is similar to target 'B' already specified - will be ignored. |
warning: No library 'A' found in the default clang lib directory or in LIBRARY_PATH. Expect degraded performance due to no inlining of runtime functions on target devices. |
warning: declaration marked as declare target after first use, it may lead to incorrect results |
warning: declaration is not declared in any declare target region |
-Woption-ignored
This diagnostic is enabled by default.
Diagnostic text:
warning: option '-ffine-grained-bitfield-accesses' cannot be enabled together with a sanitizer; flag ignored |
warning: The 'A' architecture does not support -moutline; flag ignored |
warning: option 'A' was ignored by the PS4 toolchain, using '-fPIC' |
warning: ignoring '-mlong-calls' option as it is not currently supported with |
|
-mabicalls |
warning: ignoring 'A' option as it cannot be used with |
|
-mabicalls and the N64 ABI |
warning: ignoring '-msmall-data-limit=' with -mcmodel=large for -fpic or RV64 |
warning: auto-vectorization requires HVX, use -mhvx to enable it |
-Wordered-compare-function-pointers
This diagnostic is enabled by default.
Diagnostic text:
warning: ordered comparison of function pointers (A and B) |
-Wout-of-line-declaration
This diagnostic is an error by default, but the flag -Wno-out-of-line-declaration
can be used to disable the error.
Diagnostic text:
error: out-of-line declaration of a member must be a definition |
-Wout-of-scope-function
This diagnostic is enabled by default.
Diagnostic text:
warning: use of out-of-scope declaration of A |
|
-Wover-aligned
Diagnostic text:
warning: type A requires B bytes of alignment and the default allocator only guarantees C bytes |
-Woverflow
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Woverlength-strings
Diagnostic text:
warning: string literal of length A exceeds maximum length B that |
|
compilers are required to support |
-Woverloaded-shift-op-parentheses
This diagnostic is enabled by default.
Diagnostic text:
warning: overloaded operator |
|
has higher precedence than comparison operator |
-Woverloaded-virtual
Diagnostic text:
warning: A hides overloaded virtual |
|
-Woverride-init
Synonym for -Winitializer-overrides.
-Woverride-module
This diagnostic is enabled by default.
Diagnostic text:
warning: overriding the module target triple with A |
-Woverriding-method-mismatch
Diagnostic text:
warning: conflicting distributed object modifiers on parameter type in declaration of A |
warning: conflicting parameter types in declaration of A |
warning: conflicting distributed object modifiers on return type in declaration of A |
warning: conflicting return type in declaration of A |
warning: conflicting variadic declaration of method and its implementation |
warning: conflicting parameter types in declaration of A: B vs C |
warning: conflicting return type in declaration of A: B vs C |
-Woverriding-t-option
This diagnostic is enabled by default.
Diagnostic text:
warning: overriding 'A' option with 'B' |
-Wpacked
Diagnostic text:
warning: packed attribute is unnecessary for A |
-Wpadded
Diagnostic text:
warning: padding |
|
B with C |
|
|
to align anonymous bit-field |
warning: padding |
|
B with C |
|
|
to align E |
warning: padding size of A with B |
|
|
to alignment boundary |
-Wparentheses
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wbitwise-conditional-parentheses, -Wbitwise-op-parentheses, -Wdangling-else, -Wlogical-not-parentheses, -Wlogical-op-parentheses, -Woverloaded-shift-op-parentheses, -Wparentheses-equality, -Wshift-op-parentheses.
Diagnostic text:
warning: using the result of an assignment as a condition without parentheses |
warning: A has lower precedence than B; B will be evaluated first |
warning: operator '?:' has lower precedence than 'A'; 'A' will be evaluated first |
-Wparentheses-equality
This diagnostic is enabled by default.
Diagnostic text:
warning: equality comparison with extraneous parentheses |
-Wpartial-availability
Synonym for -Wunguarded-availability.
-Rpass
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
-Rpass-analysis
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
remark: A; allow reordering by specifying '#pragma clang loop vectorize(enable)' before the loop. If the arrays will always be independent specify '#pragma clang loop vectorize(assume_safety)' before the loop or provide the '__restrict__' qualifier with the independent array arguments. Erroneous results will occur if these options are incorrectly applied! |
remark: A; allow reordering by specifying '#pragma clang loop vectorize(enable)' before the loop or by providing the compiler option '-ffast-math'. |
-Wpass-failed
This diagnostic is enabled by default.
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
-Rpass-missed
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
-Wpch-date-time
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
uses __DATE__ or __TIME__ |
-Wpedantic
Also controls -Wc++11-extra-semi, -Wc++11-long-long, -Wc++14-binary-literal, -Wc++20-designator, -Wc11-extensions, -Wcomplex-component-init, -Wdeclaration-after-statement, -Wdollar-in-identifier-extension, -Wembedded-directive, -Wempty-translation-unit, -Wfixed-enum-extension, -Wflexible-array-extensions, -Wfour-char-constants, -Wgnu-anonymous-struct, -Wgnu-auto-type, -Wgnu-binary-literal, -Wgnu-case-range, -Wgnu-complex-integer, -Wgnu-compound-literal-initializer, -Wgnu-conditional-omitted-operand, -Wgnu-empty-initializer, -Wgnu-empty-struct, -Wgnu-flexible-array-initializer, -Wgnu-flexible-array-union-member, -Wgnu-folding-constant, -Wgnu-imaginary-constant, -Wgnu-include-next, -Wgnu-label-as-value, -Wgnu-redeclared-enum, -Wgnu-statement-expression, -Wgnu-union-cast, -Wgnu-zero-line-directive, -Wgnu-zero-variadic-macro-arguments, -Wimport-preprocessor-directive-pedantic, -Wkeyword-macro, -Wlanguage-extension-token, -Wlong-long, -Wmicrosoft-charize, -Wmicrosoft-comment-paste, -Wmicrosoft-cpp-macro, -Wmicrosoft-end-of-file, -Wmicrosoft-enum-value, -Wmicrosoft-fixed-enum, -Wmicrosoft-flexible-array, -Wmicrosoft-redeclare-static, -Wnested-anon-types, -Wnullability-extension, -Woverlength-strings, -Wretained-language-linkage, -Wundefined-internal-type, -Wvla-extension, -Wzero-length-array.
Diagnostic text:
warning: duplicate 'A' declaration specifier |
warning: 'enable_if' is a clang extension |
warning: 'diagnose_if' is a clang extension |
warning: designated initializers are a C99 feature |
warning: ISO C++ does not allow 'main' to be used by a program |
warning: C++98 requires an accessible copy constructor for class C when binding a reference to a temporary; was |
|
warning: anonymous |
|
cannot be 'B' |
warning: ISO C++ requires the name after '::~' to be found in the same scope as the name before '::~' |
warning: ISO C++ considers this destructor name lookup to be ambiguous |
warning: no viable constructor |
|
of type B; C++98 requires a copy constructor when binding a reference to a temporary |
warning: ISO C++ standards before C++17 do not allow new expression for type A to use list-initialization |
warning: parameter A was not declared, defaulting to type 'int' |
warning: invoking a pointer to a 'const &' member function on an rvalue is a C++20 extension |
warning: qualifier in explicit instantiation of A requires a template-id (a typedef is not permitted) |
warning: static |
|
B is used in an inline function with external linkage |
warning: ISO C forbids forward references to 'enum' types |
warning: ISO C restricts enumerator values to range of 'int' (A is too |
|
) |
warning: size of static array must be an integer constant expression |
warning: initializer for aggregate is not a compile-time constant |
warning: flexible array members are a C99 feature |
warning: invalid application of ' |
|
' to a function type |
warning: invalid application of ' |
|
' to a void type |
warning: ISO C90 does not allow subscripting non-lvalue array |
warning: subscript of a pointer to void is a GNU extension |
warning: ISO C forbids taking the address of an expression of type 'void' |
warning: ordered comparison between pointer and zero (A and B) is an extension |
warning: equality comparison between function pointer and void pointer (A and B) |
warning: arithmetic on |
|
pointer |
|
to void is a GNU extension |
warning: arithmetic on |
|
pointer |
|
to |
|
function type |
|
B |
|
is a GNU extension |
warning: ISO C does not support '++'/'--' on complex integer type A |
warning: ISO C does not support '~' for complex conjugation of A |
warning: complex numbers are an extension in a freestanding C99 implementation |
warning: cast between pointer-to-function and pointer-to-object is an extension |
warning: implicit conversion from array size expression of type A to |
|
type C is a C++11 extension |
warning: |
|
converts between void pointer and function pointer |
warning: kernel function A is a member function; this may not be accepted by nvcc |
warning: C99 forbids conditional expressions with only one void side |
warning: C99 forbids casting nonscalar type A to the same type |
warning: use of the A attribute is a C++14 extension |
warning: use of the A attribute is a C++17 extension |
warning: use of the A attribute is a C++20 extension |
warning: types declared in an anonymous |
|
are a Microsoft extension |
warning: format specifies type A but the argument has |
|
B |
warning: void |
|
A should not return void expression |
warning: |
|
array size |
|
is a C99 feature |
warning: extra ';' |
|
warning: '__thread' before 'A' |
warning: type-less parameter names in function declaration |
warning: variable declaration in for loop is a C99-specific feature |
warning: compound literals are a C99-specific feature |
warning: commas at the end of enumerator lists are a C99-specific feature |
warning: commas at the end of enumerator lists are a C++11 extension |
warning: enumeration types with a fixed underlying type are a C++11 extension |
warning: 'A' is a C99 extension |
warning: use of GNU array range extension |
warning: exception specification of '...' is a Microsoft extension |
warning: attributes on |
|
declaration are a C++17 extension |
warning: extern templates are a C++11 extension |
warning: multi-line // comment |
warning: // comments are not allowed in this language |
warning: no newline at end of file |
warning: use of non-standard escape character '\A' |
warning: hexadecimal floating constants are a C99 feature |
warning: hexadecimal floating literals are a C++17 feature |
warning: #ident is a language extension |
warning: #warning is a language extension |
warning: comma operator in operand of #if |
warning: __VA_ARGS__ can only appear in the expansion of a C99 variadic macro |
warning: variadic macros are a C99 feature |
warning: named variadic macros are a GNU extension |
warning: empty macro arguments are a C99 feature |
warning: variadic macros are a Clang extension in OpenCL |
warning: C requires #line number to be less than A, allowed as extension |
warning: macro expansion producing 'defined' has undefined behavior |
-Wpedantic-core-features
Diagnostic text:
warning: OpenCL extension A is core feature or supported optional core feature - ignoring |
-Wpessimizing-move
Diagnostic text:
warning: moving a temporary object prevents copy elision |
warning: moving a local object in a return statement prevents copy elision |
-Wpointer-arith
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: arithmetic on |
|
pointer |
|
to |
|
function type |
|
B |
|
is a GNU extension |
warning: subscript of a pointer to void is a GNU extension |
warning: arithmetic on |
|
pointer |
|
to void is a GNU extension |
warning: invalid application of ' |
|
' to a function type |
warning: invalid application of ' |
|
' to a void type |
warning: subtraction of pointers to type A of zero size has undefined behavior |
-Wpointer-bool-conversion
This diagnostic is enabled by default.
Diagnostic text:
warning: nonnull |
|
'B' will evaluate to 'true' on first encounter |
warning: address of |
|
'B' will always evaluate to 'true' |
-Wpointer-compare
This diagnostic is enabled by default.
Diagnostic text:
warning: comparing a pointer to a null character constant; did you mean to compare to |
|
? |
-Wpointer-integer-compare
This diagnostic is enabled by default.
Diagnostic text:
warning: comparison between pointer and integer (A and B) |
-Wpointer-sign
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
converts between pointers to integer types with different sign |
-Wpointer-to-enum-cast
This diagnostic is enabled by default.
Also controls -Wvoid-pointer-to-enum-cast.
Diagnostic text:
warning: cast to smaller integer type B from A |
-Wpointer-to-int-cast
This diagnostic is enabled by default.
Also controls -Wpointer-to-enum-cast, -Wvoid-pointer-to-int-cast.
Diagnostic text:
warning: cast to smaller integer type B from A |
-Wpointer-to-int-cast
This diagnostic is enabled by default.
Also controls -Wpointer-to-enum-cast, -Wvoid-pointer-to-int-cast.
Diagnostic text:
warning: cast to smaller integer type B from A |
-Wpointer-type-mismatch
This diagnostic is enabled by default.
Diagnostic text:
warning: pointer type mismatch |
-Wpoison-system-directories
Diagnostic text:
warning: include location 'A' is unsafe for cross-compilation |
-Wpotentially-evaluated-expression
This diagnostic is enabled by default.
Diagnostic text:
warning: expression with side effects will be evaluated despite being used as an operand to 'typeid' |
-Wpragma-clang-attribute
This diagnostic is enabled by default.
Diagnostic text:
warning: unused attribute A in '#pragma clang attribute push' region |
-Wpragma-once-outside-header
This diagnostic is enabled by default.
Diagnostic text:
warning: #pragma once in main file |
-Wpragma-pack
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wpragma-pack-suspicious-include.
Diagnostic text:
warning: the current #pragma pack alignment value is modified in the included file |
warning: unterminated '#pragma pack (push, ...)' at end of file |
-Wpragma-pack-suspicious-include
Diagnostic text:
warning: non-default #pragma pack value changes the alignment of struct or union members in the included file |
-Wpragma-system-header-outside-header
This diagnostic is enabled by default.
Diagnostic text:
warning: #pragma system_header ignored in main file |
-Wpragmas
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wignored-pragmas, -Wpragma-clang-attribute, -Wpragma-pack, -Wunknown-pragmas.
Diagnostic text:
warning: #pragma redefine_extname is applicable to external C declarations only; not applied to |
|
B |
-Wpredefined-identifier-outside-function
This diagnostic is enabled by default.
Diagnostic text:
warning: predefined identifier is only valid inside function |
-Wprivate-extern
This diagnostic is enabled by default.
Diagnostic text:
warning: use of __private_extern__ on a declaration may not produce external symbol private to the linkage unit and is deprecated |
-Wprivate-header
This diagnostic is an error by default, but the flag -Wno-private-header
can be used to disable the error.
Diagnostic text:
error: use of private header from outside its module: 'A' |
-Wprivate-module
This diagnostic is enabled by default.
Diagnostic text:
warning: expected canonical name for private module 'A' |
warning: private submodule 'A' in private module map, expected top-level module |
warning: module 'A' already re-exported as 'B' |
warning: no submodule named A in module 'B'; using top level 'C' |
-Wprofile-instr-missing
Diagnostic text:
warning: profile data may be incomplete: of A function |
|
, B |
|
no data |
-Wprofile-instr-out-of-date
This diagnostic is enabled by default.
Diagnostic text:
warning: profile data may be out of date: of A function |
|
, B |
|
mismatched data that will be ignored |
-Wprofile-instr-unprofiled
This diagnostic is enabled by default.
Diagnostic text:
warning: no profile data available for file "A" |
-Wproperty-access-dot-syntax
This diagnostic is enabled by default.
Diagnostic text:
warning: property A not found on object of type B; did you mean to access property C? |
-Wproperty-attribute-mismatch
This diagnostic is enabled by default.
Diagnostic text:
warning: property attribute in class extension does not match the primary class |
warning: 'B' attribute on property A does not match the property inherited from C |
warning: getter name mismatch between property redeclaration (B) and its original declaration (A) |
warning: attribute 'readonly' of property A restricts attribute 'readwrite' of property inherited from B |
-Wprotocol
This diagnostic is enabled by default.
Diagnostic text:
warning: method A in protocol B not implemented |
-Wprotocol-property-synthesis-ambiguity
This diagnostic is enabled by default.
Diagnostic text:
warning: property |
|
was selected for synthesis |
-Wqualified-void-return-type
This diagnostic is enabled by default.
Diagnostic text:
warning: function cannot return qualified void type A |
-Wquoted-include-in-framework-header
Diagnostic text:
warning: double-quoted include "A" in framework header, expected angle-bracketed instead |
-Wrange-loop-analysis
Controls -Wrange-loop-bind-reference, -Wrange-loop-construct.
-Wrange-loop-bind-reference
Diagnostic text:
warning: loop variable A binds to a temporary value produced by a range of type B |
-Wrange-loop-construct
Diagnostic text:
warning: loop variable A binds to a temporary constructed from a different type |
warning: loop variable A creates a copy from type B |
-Wreadonly-iboutlet-property
This diagnostic is enabled by default.
Diagnostic text:
warning: readonly IBOutlet property A when auto-synthesized may not work correctly with 'nib' loader |
-Wreceiver-expr
This diagnostic is enabled by default.
Diagnostic text:
warning: receiver type A is not 'id' or interface pointer, consider casting it to 'id' |
-Wreceiver-forward-class
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: receiver A is a forward class and corresponding @interface may not exist |
warning: receiver type A for instance message is a forward declaration |
-Wredeclared-class-member
This diagnostic is enabled by default.
Diagnostic text:
warning: class member cannot be redeclared |
-Wredundant-decls
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wredundant-move
Diagnostic text:
warning: redundant move in return statement |
-Wredundant-parens
Diagnostic text:
warning: redundant parentheses surrounding declarator |
-Wregister
This diagnostic is enabled by default.
Also controls -Wdeprecated-register.
Diagnostic text:
error: ISO C++17 does not allow 'register' storage class specifier |
-Wreinterpret-base-class
This diagnostic is enabled by default.
Diagnostic text:
warning: 'reinterpret_cast' |
|
class A |
|
its |
|
B behaves differently from 'static_cast' |
-Rremark-backend-plugin
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
-Wreorder
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wreorder-ctor, -Wreorder-init-list.
-Wreorder-ctor
Diagnostic text:
warning: |
|
B will be initialized after |
|
D |
-Wreorder-init-list
This diagnostic is enabled by default.
Diagnostic text:
warning: ISO C++ requires field designators to be specified in declaration order; field B will be initialized after field A |
-Wrequires-expression
This diagnostic is enabled by default.
Diagnostic text:
warning: this requires expression will only be checked for syntactic validity; did you intend to place it in a nested requirement? (add another 'requires' before the expression) |
-Wrequires-super-attribute
This diagnostic is enabled by default.
Diagnostic text:
warning: A attribute cannot be applied to |
|
-Wreserved-id-macro
Diagnostic text:
warning: macro name is a reserved identifier |
-Wreserved-user-defined-literal
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wc++11-compat-reserved-user-defined-literal.
Diagnostic text:
warning: invalid suffix on literal; C++11 requires a space between literal and identifier |
error: invalid suffix on literal; C++11 requires a space between literal and identifier |
-Wretained-language-linkage
Diagnostic text:
warning: friend function A retaining previous language linkage is an extension |
-Wreturn-stack-address
This diagnostic is enabled by default.
Diagnostic text:
warning: returning address of label, which is local |
warning: returning |
|
local temporary object |
warning: |
|
stack memory associated with |
|
B returned |
-Wreturn-std-move
Diagnostic text:
warning: local variable A will be copied despite being |
|
by name |
-Wreturn-std-move-in-c++11
Diagnostic text:
warning: prior to the resolution of a defect report against ISO C++11, local variable A would have been copied despite being returned by name, due to its not matching the function return type |
-Wreturn-type
This diagnostic is enabled by default.
Also controls -Wreturn-type-c-linkage.
Diagnostic text:
error: |
|
A should not return a value |
error: non-void |
|
A should return a value |
warning: non-void coroutine does not return a value |
warning: non-void function does not return a value |
warning: non-void lambda does not return a value |
warning: non-void coroutine does not return a value in all control paths |
warning: non-void function does not return a value in all control paths |
warning: non-void lambda does not return a value in all control paths |
error: non-void |
|
A should return a value |
-Wreturn-type-c-linkage
This diagnostic is enabled by default.
Diagnostic text:
warning: A has C-linkage specified, but returns user-defined type B which is incompatible with C |
warning: A has C-linkage specified, but returns incomplete type B which could be incompatible with C |
-Wrewrite-not-bool
This diagnostic is enabled by default.
Diagnostic text:
warning: ISO C++20 requires return type of selected 'operator==' function for rewritten 'B' comparison to be 'bool', not A |
-Rsanitize-address
Diagnostic text:
remark: -fsanitize-address-field-padding applied to A |
remark: -fsanitize-address-field-padding ignored for A because it |
|
-Wsection
This diagnostic is enabled by default.
Diagnostic text:
warning: section attribute is specified on redeclared variable |
warning: duplicate code segment specifiers |
warning: |
|
does not match previous declaration |
-Wselector
Also controls -Wselector-type-mismatch.
Diagnostic text:
warning: no method with selector A is implemented in this translation unit |
-Wselector-type-mismatch
Diagnostic text:
warning: several methods with selector A of mismatched types are found for the @selector expression |
-Wself-assign
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wself-assign-field, -Wself-assign-overloaded.
Diagnostic text:
warning: explicitly assigning value of variable of type A to itself |
-Wself-assign-field
This diagnostic is enabled by default.
Diagnostic text:
warning: assigning |
|
to itself |
-Wself-assign-overloaded
Diagnostic text:
warning: explicitly assigning value of variable of type A to itself |
-Wself-move
Diagnostic text:
warning: explicitly moving variable of type A to itself |
-Wsemicolon-before-method-body
Diagnostic text:
warning: semicolon before method body is ignored |
-Wsentinel
This diagnostic is enabled by default.
Diagnostic text:
warning: missing sentinel in |
|
warning: not enough variable arguments in A declaration to fit a sentinel |
-Wsequence-point
Synonym for -Wunsequenced.
-Wserialized-diagnostics
This diagnostic is enabled by default.
Diagnostic text:
warning: unable to open file A for serializing diagnostics (B) |
warning: unable to merge a subprocess's serialized diagnostics |
-Wshadow
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wshadow-field-in-constructor-modified, -Wshadow-ivar.
Diagnostic text:
warning: declaration shadows a |
|
-Wshadow-all
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wshadow, -Wshadow-field, -Wshadow-field-in-constructor, -Wshadow-uncaptured-local.
-Wshadow-field
Diagnostic text:
warning: |
|
A |
|
shadows member inherited from type C |
-Wshadow-field-in-constructor
Also controls -Wshadow-field-in-constructor-modified.
Diagnostic text:
warning: constructor parameter A shadows the field B of C |
-Wshadow-field-in-constructor-modified
Diagnostic text:
warning: modifying constructor parameter A that shadows a field of B |
-Wshadow-ivar
This diagnostic is enabled by default.
Diagnostic text:
warning: local declaration of A hides instance variable |
-Wshadow-uncaptured-local
Diagnostic text:
warning: declaration shadows a |
|
-Wshift-count-negative
This diagnostic is enabled by default.
Diagnostic text:
warning: shift count is negative |
-Wshift-count-overflow
This diagnostic is enabled by default.
Diagnostic text:
warning: shift count >= width of type |
-Wshift-negative-value
This diagnostic is enabled by default.
Diagnostic text:
warning: shifting a negative signed value is undefined |
-Wshift-op-parentheses
This diagnostic is enabled by default.
Diagnostic text:
warning: operator 'A' has lower precedence than 'B'; 'B' will be evaluated first |
-Wshift-overflow
This diagnostic is enabled by default.
Diagnostic text:
warning: signed shift result (A) requires B bits to represent, but C only has D bits |
-Wshift-sign-overflow
Diagnostic text:
warning: signed shift result (A) sets the sign bit of the shift expression's type (B) and becomes negative |
-Wshorten-64-to-32
Diagnostic text:
warning: implicit conversion loses integer precision: A to B |
-Wsign-compare
Diagnostic text:
warning: comparison of integers of different signs: A and B |
-Wsign-conversion
Diagnostic text:
warning: implicit conversion changes signedness: A to B |
warning: operand of ? changes signedness: A to B |
warning: the resulting value is always non-negative after implicit conversion |
-Wsign-promo
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wsigned-enum-bitfield
Diagnostic text:
warning: enums in the Microsoft ABI are signed integers by default; consider giving the enum A an unsigned underlying type to make this code portable |
-Wsigned-unsigned-wchar
This diagnostic is an error by default, but the flag -Wno-signed-unsigned-wchar
can be used to disable the error.
Diagnostic text:
error: 'A' cannot be signed or unsigned |
-Wsizeof-array-argument
This diagnostic is enabled by default.
Diagnostic text:
warning: sizeof on array function parameter will return size of A instead of B |
-Wsizeof-array-decay
This diagnostic is enabled by default.
Diagnostic text:
warning: sizeof on pointer operation will return size of A instead of B |
-Wsizeof-array-div
This diagnostic is enabled by default.
Diagnostic text:
warning: expression does not compute the number of elements in this array; element type is A, not B |
-Wsizeof-pointer-div
This diagnostic is enabled by default.
Diagnostic text:
warning: 'A' will return the size of the pointer, not the array itself |
-Wsizeof-pointer-memaccess
This diagnostic is enabled by default.
Diagnostic text:
warning: 'A' call operates on objects of type B while the size is based on a different type C |
warning: argument to 'sizeof' in A call is the same pointer type B as the |
|
; expected D or an explicit length |
-Wslash-u-filename
This diagnostic is enabled by default.
Diagnostic text:
warning: '/UA' treated as the '/U' option |
-Wsometimes-uninitialized
Diagnostic text:
warning: variable A is |
|
uninitialized whenever |
|
-Wsource-uses-openmp
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: nesting `omp begin/end declare variant` is not supported yet; nested context ignored |
warning: '#pragma omp declare variant' cannot be applied to the function that was defined already; the original function might be used |
warning: '#pragma omp declare variant' cannot be applied for function after first usage; the original function might be used |
warning: variant function in '#pragma omp declare variant' is itself marked as '#pragma omp declare variant' |
warning: score expressions in the OpenMP context selector need to be constant; A is not and will be ignored |
warning: OpenMP only allows an ordered construct with the simd clause nested in a simd construct |
warning: unexpected '#pragma omp ...' in program |
-Wspir-compat
Diagnostic text:
warning: sampler initializer has invalid A bits |
-Wstack-exhausted
This diagnostic is enabled by default.
Diagnostic text:
warning: stack nearly exhausted; compilation time may suffer, and crashes due to stack overflow are likely |
-Wstack-protector
This diagnostic is enabled by default.
Diagnostic text:
warning: Unable to protect inline asm that clobbers stack pointer against stack clash |
-Wstack-protector
This diagnostic is enabled by default.
Diagnostic text:
warning: Unable to protect inline asm that clobbers stack pointer against stack clash |
-Wstatic-float-init
This diagnostic is enabled by default.
Also controls -Wgnu-static-float-init.
Diagnostic text:
error: in-class initializer for static data member of type A requires 'constexpr' specifier |
-Wstatic-in-inline
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: static |
|
B is used in an inline function with external linkage |
warning: static |
|
B is used in an inline function with external linkage |
-Wstatic-inline-explicit-instantiation
This diagnostic is enabled by default.
Diagnostic text:
warning: ignoring ' |
|
' keyword on explicit template instantiation |
-Wstatic-local-in-inline
This diagnostic is enabled by default.
Diagnostic text:
warning: non-constant static local variable in inline function may be different in different files |
-Wstatic-self-init
This diagnostic is enabled by default.
Diagnostic text:
warning: static variable A is suspiciously used within its own initialization |
-Wstdlibcxx-not-found
This diagnostic is enabled by default.
Diagnostic text:
warning: include path for libstdc++ headers not found; pass '-stdlib=libc++' on the command line to use the libc++ standard library instead |
-Wstrict-aliasing
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wstrict-aliasing=0
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wstrict-aliasing=1
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wstrict-aliasing=2
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wstrict-overflow
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wstrict-overflow=0
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wstrict-overflow=1
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wstrict-overflow=2
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wstrict-overflow=3
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wstrict-overflow=4
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wstrict-overflow=5
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wstrict-prototypes
Diagnostic text:
warning: this |
|
a prototype |
-Wstrict-prototypes
Diagnostic text:
warning: this |
|
a prototype |
-Wstrict-selector-match
Diagnostic text:
warning: multiple methods named A found |
-Wstring-compare
This diagnostic is enabled by default.
Diagnostic text:
warning: result of comparison against |
|
is unspecified (use an explicit string comparison function instead) |
-Wstring-conversion
Diagnostic text:
warning: implicit conversion turns string literal into bool: A to B |
-Wstring-plus-char
This diagnostic is enabled by default.
Diagnostic text:
warning: adding A to a string pointer does not append to the string |
-Wstring-plus-int
This diagnostic is enabled by default.
Diagnostic text:
warning: adding A to a string does not append to the string |
-Wstrlcpy-strlcat-size
This diagnostic is enabled by default.
Diagnostic text:
warning: size argument in A call appears to be size of the source; expected the size of the destination |
-Wstrncat-size
This diagnostic is enabled by default.
Diagnostic text:
warning: the value of the size argument in 'strncat' is too large, might lead to a buffer overflow |
warning: size argument in 'strncat' call appears to be size of the source |
warning: the value of the size argument to 'strncat' is wrong |
-Wsuper-class-method-mismatch
Diagnostic text:
warning: method parameter type does not match super class method parameter type |
-Wsuspicious-bzero
This diagnostic is enabled by default.
Diagnostic text:
warning: 'size' argument to bzero is '0' |
-Wsuspicious-memaccess
This diagnostic is enabled by default.
Controls -Wdynamic-class-memaccess, -Wmemset-transposed-args, -Wnontrivial-memaccess, -Wsizeof-pointer-memaccess, -Wsuspicious-bzero.
-Wswitch
This diagnostic is enabled by default.
Diagnostic text:
warning: overflow converting case value to switch condition type (A to B) |
warning: |
|
warning: case value not in enumerated type A |
-Wswitch-bool
This diagnostic is enabled by default.
Diagnostic text:
warning: switch condition has boolean value |
-Wswitch-default
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wswitch-enum
Diagnostic text:
warning: |
|
-Wsync-fetch-and-nand-semantics-changed
This diagnostic is enabled by default.
Diagnostic text:
warning: the semantics of this intrinsic changed with GCC version 4.4 - the newer semantics are provided here |
-Wsynth
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wtautological-bitwise-compare
Diagnostic text:
warning: bitwise comparison always evaluates to |
|
warning: bitwise or with non-zero value always evaluates to true |
-Wtautological-compare
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wtautological-bitwise-compare, -Wtautological-constant-compare, -Wtautological-objc-bool-compare, -Wtautological-overlap-compare, -Wtautological-pointer-compare, -Wtautological-undefined-compare.
Diagnostic text:
warning: |
|
to 1 byte is |
|
warning: |
|
comparison always evaluates to |
|
-Wtautological-constant-compare
This diagnostic is enabled by default.
Also controls -Wtautological-constant-out-of-range-compare.
Diagnostic text:
warning: converting the result of '?:' with integer constants to a boolean always evaluates to 'true' |
warning: converting the result of '<<' to a boolean always evaluates to |
|
warning: result of comparison of |
|
with |
|
is always E |
-Wtautological-constant-in-range-compare
Controls -Wtautological-type-limit-compare, -Wtautological-unsigned-enum-zero-compare, -Wtautological-unsigned-zero-compare.
-Wtautological-constant-out-of-range-compare
This diagnostic is enabled by default.
Diagnostic text:
warning: result of comparison of |
|
with |
|
is always E |
-Wtautological-objc-bool-compare
This diagnostic is enabled by default.
Diagnostic text:
warning: result of comparison of constant A with expression of type 'BOOL' is always B, as the only well defined values for 'BOOL' are YES and NO |
-Wtautological-overlap-compare
Diagnostic text:
warning: overlapping comparisons always evaluate to |
|
-Wtautological-pointer-compare
This diagnostic is enabled by default.
Diagnostic text:
warning: comparison of nonnull |
|
'B' |
|
equal to a null pointer is ' |
|
' on first encounter |
warning: comparison of |
|
'B' |
|
equal to a null pointer is always |
|
-Wtautological-type-limit-compare
Diagnostic text:
warning: result of comparison |
|
C |
|
is always E |
-Wtautological-undefined-compare
This diagnostic is enabled by default.
Diagnostic text:
warning: reference cannot be bound to dereferenced null pointer in well-defined C++ code; comparison may be assumed to always evaluate to |
|
warning: 'this' pointer cannot be null in well-defined C++ code; comparison may be assumed to always evaluate to |
|
-Wtautological-unsigned-enum-zero-compare
Diagnostic text:
warning: result of comparison of |
|
C |
|
is always E |
-Wtautological-unsigned-zero-compare
Diagnostic text:
warning: result of comparison of |
|
C |
|
is always E |
-Wtentative-definition-incomplete-type
This diagnostic is enabled by default.
Diagnostic text:
warning: tentative definition of variable with internal linkage has incomplete non-array type A |
-Wthread-safety
Controls -Wthread-safety-analysis, -Wthread-safety-attributes, -Wthread-safety-precise, -Wthread-safety-reference.
-Wthread-safety-analysis
Diagnostic text:
warning: A 'B' must be acquired before 'C' |
warning: Cycle in acquired_before/after dependencies, starting with 'A' |
warning: cannot resolve lock expression |
warning: acquiring A 'B' that is already held |
warning: expecting A 'B' to be held at start of each loop |
warning: expecting A 'B' to be held at the end of function |
warning: cannot call function 'B' while A 'C' is held |
warning: calling function B requires holding A |
|
warning: A 'B' is acquired exclusively and shared in the same scope |
warning: A 'B' is not held on every path through here |
warning: A 'B' is still held at the end of function |
warning: releasing A 'B' that was not held |
warning: releasing A 'B' using |
|
access, expected |
|
access |
warning: |
|
the value pointed to by A requires holding |
|
warning: |
|
the value pointed to by B requires holding A |
|
warning: |
|
variable A requires holding |
|
warning: |
|
variable B requires holding A |
|
-Wthread-safety-attributes
Diagnostic text:
warning: A attribute requires arguments whose type is annotated with 'capability' attribute; type here is B |
warning: A attribute can only be applied in a context annotated with 'capability' attribute |
warning: A only applies to pointer types; type here is B |
warning: ignoring A attribute because its argument is invalid |
warning: A attribute without capability arguments refers to 'this', but B isn't annotated with 'capability' or 'scoped_lockable' attribute |
warning: A attribute without capability arguments can only be applied to non-static methods of a class |
-Wthread-safety-beta
Diagnostic text:
warning: Thread safety beta warning. |
-Wthread-safety-negative
Diagnostic text:
warning: acquiring A 'B' requires negative capability 'C' |
-Wthread-safety-precise
Diagnostic text:
warning: calling function B requires holding A |
|
warning: |
|
the value pointed to by B requires holding A |
|
warning: |
|
variable B requires holding A |
|
-Wthread-safety-reference
Diagnostic text:
warning: passing variable B by reference requires holding A |
|
warning: passing the value that B points to by reference requires holding A |
|
-Wthread-safety-verbose
Diagnostic text:
warning: Thread safety verbose warning. |
-Wtrigraphs
This diagnostic is enabled by default.
Diagnostic text:
warning: trigraph converted to 'A' character |
warning: trigraph ends block comment |
warning: trigraph ignored |
warning: ignored trigraph would end block comment |
-Wtype-limits
Synonym for -Wtautological-constant-in-range-compare.
-Wtype-limits
Synonym for -Wtautological-constant-in-range-compare.
-Wtype-safety
This diagnostic is enabled by default.
Diagnostic text:
warning: specified A type tag requires a null pointer |
warning: argument type A doesn't match specified B type tag |
|
warning: this type tag was not designed to be used with this function |
-Wtypedef-redefinition
This diagnostic is enabled by default.
Diagnostic text:
warning: redefinition of typedef A is a C11 feature |
-Wtypename-missing
This diagnostic is enabled by default.
Diagnostic text:
warning: missing 'typename' prior to dependent type name 'AB' |
-Wunable-to-open-stats-file
This diagnostic is enabled by default.
Diagnostic text:
warning: unable to open statistics output file 'A': 'B' |
-Wunavailable-declarations
This diagnostic is enabled by default.
Diagnostic text:
warning: A may be unavailable because the receiver type is unknown |
-Wundeclared-selector
Diagnostic text:
warning: undeclared selector A |
warning: undeclared selector A; did you mean B? |
-Wundef
Diagnostic text:
warning: A is not defined, evaluates to 0 |
-Wundefined-bool-conversion
This diagnostic is enabled by default.
Diagnostic text:
warning: reference cannot be bound to dereferenced null pointer in well-defined C++ code; pointer may be assumed to always convert to true |
warning: 'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true |
-Wundefined-func-template
Diagnostic text:
warning: instantiation of function A required here, but no definition is available |
-Wundefined-inline
This diagnostic is enabled by default.
Diagnostic text:
warning: inline function A is not defined |
-Wundefined-internal
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
B has internal linkage but is not defined |
-Wundefined-internal-type
Diagnostic text:
warning: ISO C++ requires a definition in this translation unit for |
|
B because its type does not have linkage |
-Wundefined-reinterpret-cast
Diagnostic text:
warning: dereference of type B that was reinterpret_cast from type A has undefined behavior |
warning: reinterpret_cast from A to B has undefined behavior |
-Wundefined-var-template
This diagnostic is enabled by default.
Diagnostic text:
warning: instantiation of variable A required here, but no definition is available |
-Wunderaligned-exception-object
This diagnostic is enabled by default.
Diagnostic text:
warning: underaligned exception object thrown |
-Wunevaluated-expression
This diagnostic is enabled by default.
Also controls -Wpotentially-evaluated-expression.
Diagnostic text:
warning: expression with side effects has no effect in an unevaluated context |
-Wunguarded-availability
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wunguarded-availability-new.
Diagnostic text:
warning: A is only available on B C or newer |
-Wunguarded-availability-new
This diagnostic is enabled by default.
Diagnostic text:
warning: A is only available on B C or newer |
-Wunicode
This diagnostic is enabled by default.
Diagnostic text:
warning: incomplete universal character name; treating as '\' followed by identifier |
warning: \A used with no following hex digits; treating as '\' followed by identifier |
warning: universal character name refers to a surrogate character |
warning: universal character names are only valid in C99 or C++; treating as '\' followed by identifier |
warning: universal character names are only valid in C99 or C++ |
-Wunicode-homoglyph
This diagnostic is enabled by default.
Diagnostic text:
warning: treating Unicode character <U+A> as identifier character rather than as 'B' symbol |
-Wunicode-whitespace
This diagnostic is enabled by default.
Diagnostic text:
warning: treating Unicode character as whitespace |
-Wunicode-zero-width
This diagnostic is enabled by default.
Diagnostic text:
warning: identifier contains Unicode character <U+A> that is invisible in some environments |
-Wuninitialized
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wsometimes-uninitialized, -Wstatic-self-init.
Diagnostic text:
warning: base class A is uninitialized when used here to access B |
warning: field A is uninitialized when used here |
warning: reference A is not yet bound to a value when used here |
warning: block pointer variable A is |
|
when captured by block |
warning: variable A is uninitialized when used within its own initialization |
warning: reference A is not yet bound to a value when used within its own initialization |
warning: variable A is uninitialized when |
|
-Wunknown-argument
This diagnostic is enabled by default.
Diagnostic text:
warning: unknown argument ignored in clang-cl: 'A' |
warning: unknown argument ignored in clang-cl 'A'; did you mean 'B'? |
-Wunknown-attributes
This diagnostic is enabled by default.
Diagnostic text:
warning: unknown attribute A ignored |
-Wunknown-cuda-version
This diagnostic is enabled by default.
Diagnostic text:
warning: Unknown CUDA version A. Assuming the latest supported version B |
-Wunknown-escape-sequence
This diagnostic is enabled by default.
Diagnostic text:
warning: unknown escape sequence '\A' |
-Wunknown-pragmas
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: expected 'ON' or 'OFF' or 'DEFAULT' in pragma |
warning: expected end of directive in pragma |
warning: unknown pragma in STDC namespace |
warning: pragma diagnostic pop could not pop, no matching push |
warning: pragma diagnostic expected 'error', 'warning', 'ignored', 'fatal', 'push', or 'pop' |
warning: pragma diagnostic expected option name (e.g. "-Wundef") |
warning: unexpected token in pragma diagnostic |
warning: #pragma execution_character_set expected 'A' |
warning: #pragma execution_character_set invalid value 'A', only 'UTF-8' is supported |
warning: #pragma execution_character_set expected 'push' or 'pop' |
warning: unknown pragma ignored |
warning: pragma include_alias expected 'A' |
warning: pragma include_alias expected include filename |
warning: angle-bracketed include <A> cannot be aliased to double-quoted include "B" |
warning: double-quoted include "A" cannot be aliased to angle-bracketed include <B> |
warning: #pragma warning expected 'A' |
warning: #pragma warning expected a warning number |
warning: #pragma warning(push, level) requires a level between 0 and 4 |
warning: #pragma warning expected 'push', 'pop', 'default', 'disable', 'error', 'once', 'suppress', 1, 2, 3, or 4 |
warning: pragma STDC FENV_ACCESS ON is not supported, ignoring pragma |
-Wunknown-sanitizers
This diagnostic is enabled by default.
Diagnostic text:
warning: unknown sanitizer 'A' ignored |
-Wunknown-warning-option
This diagnostic is enabled by default.
Diagnostic text:
warning: unknown warning group 'A', ignored |
warning: unknown |
|
option 'B' |
|
warning: unknown A warning specifier: 'B' |
-Wunnamed-type-template-args
Some of the diagnostics controlled by this flag are enabled by default.
Also controls -Wc++98-compat-unnamed-type-template-args.
Diagnostic text:
warning: template argument uses unnamed type |
-Wunneeded-internal-declaration
Diagnostic text:
warning: |
|
B is not needed and will not be emitted |
warning: 'static' function A declared in header file should be declared 'static inline' |
-Wunneeded-member-function
Diagnostic text:
warning: member function A is not needed and will not be emitted |
-Wunreachable-code
Also controls -Wunreachable-code-loop-increment.
Diagnostic text:
warning: code will never be executed |
-Wunreachable-code-aggressive
Controls -Wunreachable-code, -Wunreachable-code-break, -Wunreachable-code-return.
-Wunreachable-code-break
Diagnostic text:
warning: 'break' will never be executed |
-Wunreachable-code-loop-increment
Diagnostic text:
warning: loop will run at most once (loop increment never executed) |
-Wunreachable-code-return
Diagnostic text:
warning: 'return' will never be executed |
-Wunsequenced
This diagnostic is enabled by default.
Diagnostic text:
warning: multiple unsequenced modifications to A |
warning: unsequenced modification and access to A |
-Wunsupported-abs
This diagnostic is enabled by default.
Diagnostic text:
warning: ignoring '-mabs=2008' option because the 'A' architecture does not support it |
warning: ignoring '-mabs=legacy' option because the 'A' architecture does not support it |
-Wunsupported-availability-guard
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
does not guard availability here; use if ( |
|
) instead |
-Wunsupported-cb
This diagnostic is enabled by default.
Diagnostic text:
warning: ignoring '-mcompact-branches=' option because the 'A' architecture does not support it |
-Wunsupported-dll-base-class-template
Diagnostic text:
warning: propagating dll attribute to |
|
base class template without dll attribute is not supported |
-Wunsupported-friend
This diagnostic is enabled by default.
Diagnostic text:
warning: dependent nested name specifier 'A' for friend template declaration is not supported; ignoring this friend declaration |
warning: dependent nested name specifier 'A' for friend class declaration is not supported; turning off access control for B |
-Wunsupported-gpopt
This diagnostic is enabled by default.
Diagnostic text:
warning: ignoring '-mgpopt' option as it cannot be used with |
|
-mabicalls |
-Wunsupported-nan
This diagnostic is enabled by default.
Diagnostic text:
warning: ignoring '-mnan=2008' option because the 'A' architecture does not support it |
warning: ignoring '-mnan=legacy' option because the 'A' architecture does not support it |
-Wunsupported-target-opt
This diagnostic is enabled by default.
Diagnostic text:
warning: debug information option 'A' is not supported for target 'B' |
-Wunsupported-visibility
This diagnostic is enabled by default.
Diagnostic text:
warning: target does not support 'protected' visibility; using 'default' |
-Wunusable-partial-specialization
This diagnostic is an error by default, but the flag -Wno-unusable-partial-specialization
can be used to disable the error.
Diagnostic text:
error: |
|
template partial specialization contains |
|
that cannot be deduced; this partial specialization will never be used |
-Wunused
Some of the diagnostics controlled by this flag are enabled by default.
Controls -Wunused-argument, -Wunused-function, -Wunused-label, -Wunused-lambda-capture, -Wunused-local-typedef, -Wunused-private-field, -Wunused-property-ivar, -Wunused-value, -Wunused-variable.
-Wunused-argument
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wunused-command-line-argument
This diagnostic is enabled by default.
Diagnostic text:
warning: argument 'A' requires profile-guided optimization information |
warning: joined argument expects additional value: 'A' |
warning: A: 'B' input unused |
|
warning: A: 'B' input unused in cpp mode |
warning: A: previously preprocessed input |
|
warning: argument unused during compilation: 'A' |
warning: the flag 'A' has been deprecated and will be ignored |
warning: ignoring -fdiscard-value-names for LLVM Bitcode |
-Wunused-comparison
This diagnostic is enabled by default.
Diagnostic text:
warning: |
|
comparison result unused |
-Wunused-const-variable
Diagnostic text:
warning: unused variable A |
-Wunused-exception-parameter
Diagnostic text:
warning: unused exception parameter A |
-Wunused-function
Also controls -Wunneeded-internal-declaration.
Diagnostic text:
warning: unused function A |
-Wunused-getter-return-value
This diagnostic is enabled by default.
Diagnostic text:
warning: property access result unused - getters should not be used for side effects |
-Wunused-label
Diagnostic text:
warning: unused label A |
-Wunused-lambda-capture
Diagnostic text:
warning: lambda capture A is not |
|
-Wunused-local-typedef
Diagnostic text:
warning: unused |
|
B |
-Wunused-local-typedefs
Synonym for -Wunused-local-typedef.
-Wunused-macros
Diagnostic text:
warning: macro is not used |
-Wunused-member-function
Also controls -Wunneeded-member-function.
Diagnostic text:
warning: unused member function A |
-Wunused-parameter
Diagnostic text:
warning: unused parameter A |
-Wunused-private-field
Diagnostic text:
warning: private field A is not used |
-Wunused-property-ivar
Diagnostic text:
warning: ivar A which backs the property is not referenced in this property's accessor |
-Wunused-result
This diagnostic is enabled by default.
Diagnostic text:
warning: ignoring return value of function declared with A attribute |
warning: ignoring return value of function declared with A attribute: B |
-Wunused-template
Also controls -Wunneeded-internal-declaration.
Diagnostic text:
warning: unused |
|
template B |
-Wunused-value
This diagnostic is enabled by default.
Also controls -Wunevaluated-expression, -Wunused-comparison, -Wunused-result.
Diagnostic text:
warning: ignoring return value of function declared with A attribute |
warning: ignoring temporary created by a constructor declared with A attribute |
warning: ignoring temporary created by a constructor declared with A attribute: B |
warning: container access result unused - container access should not be used for side effects |
warning: expression result unused |
warning: expression result unused; should this cast be to 'void'? |
-Wunused-variable
Also controls -Wunused-const-variable.
Diagnostic text:
warning: unused variable A |
-Wunused-volatile-lvalue
This diagnostic is enabled by default.
Diagnostic text:
warning: expression result unused; assign into a variable to force a volatile load |
-Wused-but-marked-unused
Diagnostic text:
warning: A was marked unused but was used |
-Wuser-defined-literals
This diagnostic is enabled by default.
Diagnostic text:
warning: user-defined literal suffixes not starting with '_' are reserved |
|
-Wuser-defined-warnings
This diagnostic is enabled by default.
Diagnostic text:
The text of this diagnostic is not controlled by Clang.
-Wvarargs
This diagnostic is enabled by default.
Diagnostic text:
warning: second argument to 'va_start' is not the last named parameter |
warning: second argument to 'va_arg' is of promotable type A; this va_arg has undefined behavior because arguments will be promoted to B |
warning: passing |
|
to 'va_start' has undefined behavior |
-Wvariadic-macros
Some of the diagnostics controlled by this flag are enabled by default.
Diagnostic text:
warning: named variadic macros are a GNU extension |
warning: __VA_OPT__ can only appear in the expansion of a variadic macro |
warning: variadic macros are a C99 feature |
-Wvec-elem-size
This diagnostic is an error by default, but the flag -Wno-vec-elem-size
can be used to disable the error.
Diagnostic text:
error: vector operands do not have the same elements sizes (A and B) |
-Wvector-conversion
Diagnostic text:
warning: incompatible vector types |
|
-Wvector-conversions
Synonym for -Wvector-conversion.
-Wvexing-parse
This diagnostic is enabled by default.
Diagnostic text:
warning: empty parentheses interpreted as a function declaration |
warning: parentheses were disambiguated as a function declaration |
warning: parentheses were disambiguated as redundant parentheses around declaration of variable named A |
-Wvisibility
This diagnostic is enabled by default.
Diagnostic text:
warning: declaration of A will not be visible outside of this function |
warning: redefinition of A will not be visible outside of this function |
-Wvla
Diagnostic text:
warning: variable length array used |
-Wvla-extension
Diagnostic text:
warning: variable length arrays are a C99 feature |
-Wvoid-pointer-to-enum-cast
This diagnostic is enabled by default.
Diagnostic text:
warning: cast to smaller integer type B from A |
-Wvoid-pointer-to-int-cast
This diagnostic is enabled by default.
Also controls -Wvoid-pointer-to-enum-cast.
Diagnostic text:
warning: cast to smaller integer type B from A |
-Wvoid-ptr-dereference
This diagnostic is enabled by default.
Diagnostic text:
warning: ISO C++ does not allow indirection on operand of type A |
-Wvolatile-register-var
This diagnostic flag exists for GCC compatibility, and has no effect in Clang.
-Wweak-template-vtables
Diagnostic text:
warning: explicit template instantiation A will emit a vtable in every translation unit |
-Wweak-vtables
Diagnostic text:
warning: A has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit |
-Wwritable-strings
This diagnostic is enabled by default.
Also controls -Wdeprecated-writable-strings.
Diagnostic text:
warning: ISO C++11 does not allow conversion from string literal to A |
-Wwrite-strings
Synonym for -Wwritable-strings.
-Wxor-used-as-pow
This diagnostic is enabled by default.
Diagnostic text:
warning: result of 'A' is B; did you mean exponentiation? |
warning: result of 'A' is B; did you mean 'C'? |
warning: result of 'A' is B; did you mean 'C' (D)? |
-Wzero-as-null-pointer-constant
Diagnostic text:
warning: zero as null pointer constant |
-Wzero-length-array
Diagnostic text:
warning: zero size arrays are an extension |
-Wwasm-exception-spec
Diagnostic text:
warning: dynamic exception specifications with types are currently ignored in wasm |