# Table of All GCC Warnings This table collects all gcc warnings used with C++ not enabled by some other option (e.g. `-Wall`) and indicates the first gcc version the warning appeared in if it's later than gcc 4.6. It was generated from the files `gcc/{common,c-family/c}.opt` in `basepoints/gcc-11-2851-g050fc8b27a8` commit of gcc source tree using [show-gcc-warnings script](https://www.tt-solutions.com/en/portfolio/gcc_warnings). See also the table of the [warnings not enabled](https://hackmd.io/@VZ/gcc-warnings) by some other option. | Warning | Version | Enabled by | |---------|:-------:|:----------:| |`abi`| |`abi-tag`|4.8 |`abi=`|5.1 |`address`||all |`address-of-packed-member`|9.1|default |`aggregate-return`| |`aggressive-loop-optimizations`|4.8|default |`aligned-new=`|7.1|all |`all`||all |`alloc-size-larger-than=`|7.1|all |`alloc-zero`|7.1 |`alloca`|7.1 |`alloca-larger-than=`|7.1 |`arith-conversion`|10.1 |`array-bounds`||all |`array-bounds=`|5.1|all |`attribute-alias`|8.1|default |`attribute-alias=`|9.1|default |`attribute-warning`|9.1|default |`attributes`||default |`bool-compare`|5.1|all |`bool-operation`|7.1|all |`builtin-declaration-mismatch`|7.1|default |`builtin-macro-redefined`||default |`cannot-profile`|9.1|default |`cast-align`| |`cast-align=strict`|8.1 |`cast-function-type`|8.1|extra |`cast-qual`| |`catch-value=`|8.1|all |`char-subscripts`||all |`chkp`|5.1|all |`class-conversion`|9.1|default |`class-memaccess`|8.1 |`clobbered`||extra |`comma-subscript`|10.1 |`comment`||all |`conditionally-supported`|4.9 |`conversion`| |`conversion-null`||default |`coverage-mismatch`||default |`cpp`||default |`ctor-dtor-privacy`| |`dangling-else`|7.1|parentheses |`date-time`|4.9 |`delete-incomplete`|4.9|default |`delete-non-virtual-dtor`|4.7|all |`deprecated`||default |`deprecated-copy`|9.1 |`deprecated-copy-dtor`|9.1 |`deprecated-declarations`||default |`disabled-optimization`| |`div-by-zero`||default |`double-promotion`| |`duplicated-branches`|7.1 |`duplicated-cond`|6.1 |`empty-body`||extra |`endif-labels`||default |`enum-compare`||all |`expansion-to-defined`|7.1|extra || pedantic |`extra`||extra |`extra-semi`|8.1 |`float-conversion`|4.9|conversion |`float-equal`| |`format`| |`format-contains-nul`||format= |`format-diag`|10.1|format= |`format-extra-args`||format= |`format-nonliteral`||format= |`format-overflow=`|7.1|format= |`format-security`||format= |`format-signedness`|5.1 |`format-truncation=`|7.1|format= |`format-zero-length`|4.7|format= |`format=`|4.8|all |`frame-address`|6.1|all |`frame-larger-than=`| |`free-nonheap-object`|4.7|default |`hsa`|6.1|default |`if-not-aligned`|8.1|default |`ignored-attributes`|6.1|default |`ignored-qualifiers`||extra |`implicit-fallthrough=`|7.1|extra |`inaccessible-base`|10.1|default |`inherited-variadic-ctor`|4.8|default |`init-list-lifetime`|9.1|default |`init-self`||all |`inline`| |`int-in-bool-context`|7.1|all |`int-to-pointer-cast`||default |`invalid-memory-model`|4.7|default |`invalid-offsetof`||default |`invalid-pch`| |`larger-than=`| |`literal-suffix`|4.8|default |`logical-not-parentheses`|5.1|all |`logical-op`|6.1 |`long-long`| |`lto-type-mismatch`|6.1|default |`main`||all pedantic |`maybe-uninitialized`|4.7|uninitialized |`memset-elt-size`|7.1|all |`memset-transposed-args`|5.1|all |`misleading-indentation`|6.1|all |`mismatched-tags`|10.1 |`missing-attributes`|8.1|all |`missing-braces`||all |`missing-declarations`| |`missing-field-initializers`||extra |`missing-format-attribute`| |`missing-include-dirs`| |`missing-noreturn`| |`missing-profile`|9.1|default |`mudflap`||default |`multichar`| |`multiple-inheritance`|6.1 |`multistatement-macros`|8.1|all |`namespaces`|6.1 |`narrowing`|4.7|all |`noexcept`| |`noexcept-type`|7.1 |`non-template-friend`||default |`non-virtual-dtor`| |`nonnull`|4.7|format= all |`nonnull-compare`|6.1|all |`normalized=`| |`null-dereference`|6.1 |`odr`|5.1|default |`old-style-cast`| |`openmp-simd`|4.9|all |`overflow`||default |`overlength-strings`||pedantic |`overloaded-virtual`| |`packed`| |`packed-bitfield-compat`| |`packed-not-aligned`|8.1|all |`padded`| |`parentheses`||all |`pedantic`|4.8|pedantic |`pessimizing-move`|9.1 |`placement-new=`|6.1 |`pmf-conversions`||default |`pointer-arith`||pedantic |`pointer-compare`|7.1|default |`pragmas`||default |`prio-ctor-dtor`|9.1|default |`redundant-decls`| |`redundant-move`|9.1|extra |`redundant-tags`|10.1 |`register`|7.1 |`reorder`||all |`restrict`|7.1 |`return-local-addr`|4.8|default |`return-type`||all |`scalar-storage-order`|6.1|default |`sequence-point`||all |`shadow`| |`shadow=compatible-local`|7.1|shadow=local |`shadow=local`|7.1|shadow |`shift-count-negative`|5.1|default |`shift-count-overflow`|5.1|default |`shift-negative-value`|6.1 |`shift-overflow=`|6.1 |`sign-compare`||extra |`sign-conversion`||conversion |`sign-promo`| |`sized-deallocation`|5.1|extra |`sizeof-array-argument`|5.1|default |`sizeof-pointer-div`|8.1|all |`sizeof-pointer-memaccess`|5.1|all |`stack-protector`| |`stack-usage=`|4.7 |`strict-aliasing`| |`strict-aliasing=`||all |`strict-null-sentinel`| |`strict-overflow`| |`strict-overflow=`||all |`string-compare`|10.1 |`stringop-overflow=`|7.1 |`stringop-truncation`|8.1 |`subobject-linkage`|6.1|default |`suggest-attribute=cold`|8.1 |`suggest-attribute=const`| |`suggest-attribute=format`|4.8 |`suggest-attribute=malloc`|8.1 |`suggest-attribute=noreturn`| |`suggest-attribute=pure`| |`suggest-final-methods`|5.1 |`suggest-final-types`|5.1 |`suggest-override`|5.1 |`switch`||all |`switch-bool`|5.1|default |`switch-default`| |`switch-enum`| |`switch-outside-range`|10.1|default |`switch-unreachable`|7.1|default |`sync-nand`||default |`synth`| |`system-headers`| |`tautological-compare`|6.1|all |`templates`|6.1 |`terminate`|6.1|default |`trampolines`| |`trigraphs`||all |`type-limits`||extra |`undef`| |`uninitialized`||extra |`unknown-pragmas`||all |`unreachable-code`| |`unsafe-loop-optimizations`| |`unused`||all |`unused-but-set-parameter`||unused && extra |`unused-but-set-variable`||unused |`unused-const-variable=`|6.1|unused-variable |`unused-function`||unused |`unused-label`||unused |`unused-local-typedefs`|4.7|unused |`unused-macros`| |`unused-parameter`||unused && extra |`unused-result`||default |`unused-value`||unused |`unused-variable`||unused |`useless-cast`|4.8 |`varargs`|4.8|default |`variadic-macros`||default |`vector-operation-performance`|4.7 |`virtual-inheritance`|6.1 |`virtual-move-assign`|4.8|default |`vla`| |`vla-larger-than=`|7.1 |`volatile`|10.1 |`volatile-register-var`||all |`write-strings`| |`zero-as-null-pointer-constant`|4.7 |`zero-length-bounds`|10.1|all