| -Waddress | ENABLED TODAY | -- |
| -Waggregate-return | (might be a good idea, but triggers today.) | |
| -Wall | ENABLED TODAY | |
| -Warray-bounds | ENABLED TODAY | |
| -Warray-bounds=n | (XXXX writeme) | |
| -Wbad-function-cast | ENABLED TODAY | |
| -Wbool-compare | ENABLED TODAY (by -Wall) | |
| -Wc++-compat | (I don't consider this a bug, or it would trigger way too often) | |
| -Wc++11-compat | ENABLED TODAY (by -Wall) | |
| -Wc++14-compat | ENABLED TODAY (by -Wall) | |
| -Wc90-c99-compat | (I don't consider this a bug, or it would trigger way too often) | |
| -Wc99-c11-compat | (could add trivially) | |
| -Wcast-align | (triggers today) | GCC 3 |
| -Wcast-qual | (might be a good idea, but triggers today.) | GCC 4.6 |
| -Wchar-subscripts | ENABLED TODAY | |
| -Wclobbered | ENABLED TODAY (by -Wextra) | |
| -Wcomment | ENABLED TODAY | |
| -Wconditionally-supported | (C++ only, irrelevant to tor.) | |
| -Wconversion | (might be a good idea, but triggers today.) | GCC 4.6 |
| -Wcoverage-mismatch | ENABLED TODAY (by default) | |
| -Wdate-time | (could add trivially) | |
| -Wdeclaration-after-statement | (I don't consider this a bug, or it would trigger way too often) | |
| -Wdelete-incomplete | (C++ only, irrelevant to tor.) | |
| -Wdisabled-optimization | (I don't consider this a bug, or it would trigger way too often) | |
| -Wdouble-promotion | (might be a good idea, but triggers today.) | GCC 4.6 |
| -Wduplicated-cond | (might be a good idea, but triggers today.) | GCC 6.1 |
| -Wempty-body | ENABLED TODAY (by -Wextra) | |
| -Wenum-compare | ENABLED TODAY (by -Wall) | |
| -Werror | ENABLED TODAY | |
| -Wextra | ENABLED TODAY | |
| -Wfloat-conversion | (might be a good idea, but triggers today.) | GCC 4.9 |
| -Wfloat-equal | ENABLED TODAY | |
| -Wformat | ENABLED TODAY (by -Wall) | |
| -Wformat-nonliteral | ENABLED TODAY (by -Wformat=2) | |
| -Wformat-security | ENABLED TODAY (by -Wformat=2) | |
| -Wformat-signedness | ENABLED TODAY (by -Wformat=2) | |
| -Wformat-y2k | ENABLED TODAY (by -Wformat=2) | |
| -Wformat=2 | ENABLED TODAY | |
| -Wframe-address | ENABLED TODAY (by -Wall) | |
| -Wframe-larger-than=len | (I don't consider this a bug, or it would trigger way too often) | |
| -Whsa | (irrelevant to Tor?) | |
| -Wignored-attributes | (could add trivially) | |
| -Wignored-qualifiers | ENABLED TODAY (by -Wextra) | |
| -Wimplicit | ENABLED TODAY (by -Wall) | |
| -Wimplicit-function-declaration | ENABLED TODAY (by -Wall) | |
| -Wimplicit-int | ENABLED TODAY (by -Wall) | |
| -Wincompatible-pointer-types | Actually, this is on by default FWICT. |
GCC 5.1 |
| -Winit-self | ENABLED TODAY | |
| -Winline | (I don't consider this a bug, or it would trigger way too often) | |
| -Winvalid-memory-model | ENABLED TODAY (by default) | |
| -Winvalid-pch | (I don't consider this a bug, or it would trigger way too often) | |
| -Wjump-misses-init | (might be a good idea, but triggers today.) | GCC 4.6 |
| -Wlarger-than=len | (I don't consider this a bug, or it would trigger way too often) | |
| -Wlogical-not-parentheses | ENABLED TODAY (by -Wall) | |
| -Wlogical-op | ENABLED TODAY | |
| -Wlong-long | (I don't consider this a bug, or it would trigger way too often) | |
| -Wmain | ENABLED TODAY (by -Wall) | |
| -Wmaybe-uninitialized | ENABLED TODAY (by -Wall) | |
| -Wmemset-transposed-args | ENABLED TODAY (by -Wall) | |
| -Wmisleading-indentation | ENABLED TODAY (by -Wall) | |
| -Wmissing-braces | ENABLED TODAY (by -Wall) | |
| -Wmissing-declarations | ENABLED TODAY | |
| -Wmissing-field-initializers | ENABLED TODAY | |
| -Wmissing-format-attribute | (could add trivially) | |
| -Wmissing-include-dirs | (I don't consider this a bug, or it would trigger way too often) | |
| -Wmissing-parameter-type | ENABLED TODAY (by -Wextra) | |
| -Wmissing-prototypes | ENABLED TODAY | |
| -Wnested-externs | ENABLED TODAY | |
| -Wnonnull | ENABLED TODAY (by -Wall) | |
| -Wnonnull-compare | ENABLED TODAY (by -Wall) | |
| -Wnormalized=[none|id|nfc|nfkc] | We use -Wnormalized=id now; should we switch? | |
| -Wnull-dereference | (might be a good idea, but triggers today.) | GCC 6.1 |
| -Wodr | (irrelevant to Tor?) | |
| -Wold-style-declaration | ENABLED TODAY (by -Wextra) | |
| -Wold-style-definition | ENABLED TODAY | |
| -Wopenmp-simd | ENABLED TODAY (by -Wall) | |
| -Woverlength-strings | (might be a good idea, but triggers today.) | GCC 4.6 |
| -Woverride-init-side-effects | ENABLED TODAY (by default) | |
| -Wpacked | (could add trivially) | |
| -Wpacked-bitfield-compat | (I don't consider this a bug, or it would trigger way too often) | |
| -Wpadded | (might be a good idea, but triggers today.) | GCC 3 |
| -Wparentheses | ENABLED TODAY (by -Wall) | |
| -Wpedantic | (I don't consider this a bug, or it would trigger way too often) | |
| -Wplacement-new | (C++ only, irrelevant to tor.) | |
| -Wplacement-new=n | (C++ only, irrelevant to tor.) | |
| -Wpointer-arith | ENABLED TODAY | |
| -Wpointer-sign | ENABLED TODAY (by -Wall) | |
| -Wredundant-decls | ENABLED TODAY | |
| -Wreturn-type | ENABLED TODAY (by -Wall) | |
| -Wsequence-point | ENABLED TODAY (by -Wall) | |
| -Wshadow | We have a ticket to turn this one on. Good idea? | GCC 3 |
| -Wshift-count-negative | (could add trivially) | |
| -Wshift-count-overflow | (could add trivially) | |
| -Wshift-negative-value | (could add trivially) | |
| -Wshift-overflow | ENABLED TODAY (by default) | |
| -Wshift-overflow=n | Easy, when n==2. | |
| -Wsign-compare | ENABLED TODAY (by -Wextra) | |
| -Wsign-conversion | (might be a good idea, but triggers today.) | GCC 4.6 |
| -Wsizeof-array-argument | (could add trivially) | |
| -Wsizeof-pointer-memaccess | ENABLED TODAY (by -Wall) | |
| -Wstack-protector | ENABLED TODAY | |
| -Wstack-usage=len | Would trigger way too much. | |
| -Wstrict-aliasing | ENABLED TODAY (by -Wall) | |
| -Wstrict-aliasing=n | Already on; could raise n to 5? | GCC 3? |
| -Wstrict-overflow | (might be a good idea, but triggers today.) | GCC 4.2 |
| -Wstrict-overflow=n | (might be a good idea, but triggers today.) | GCC 4.2 |
| -Wstrict-prototypes | ENABLED TODAY | |
| -Wsubobject-linkage | (C++ only, irrelevant to tor.) | |
| -Wsuggest-attribute=pure | Triggers a lot on our current code | GCC 4.6 |
| -Wsuggest-attribute=const | Triggers a lot on our current code | GCC 4.6 |
| -Wsuggest-attribute=noreturn | (No problem to add) | |
| -Wsuggest-attribute=format | (no problem to add) | |
| -Wsuggest-final-methods | (C++ only, irrelevant to tor.) | |
| -Wsuggest-final-types | (C++ only, irrelevant to tor.) | |
| -Wsuggest-override | (C++ only, irrelevant to tor.) | |
| -Wswitch | ENABLED TODAY (by -Wall) | |
| -Wswitch-bool | (could add trivially) | |
| -Wswitch-default | (might be a good idea, but triggers today.) | GCC 3 |
| -Wswitch-enum | ENABLED TODAY | |
| -Wsync-nand | (could add trivially) | |
| -Wsystem-headers | (I don't consider this a bug, or it would trigger way too often) | |
| -Wtautological-compare | ENABLED TODAY (by -Wall) | |
| -Wtraditional | (I don't consider this a bug, or it would trigger way too often) | |
| -Wtraditional-conversion | (I don't consider this a bug, or it would trigger way too often) | |
| -Wtrampolines | (could add trivially) | |
| -Wtrigraphs | ENABLED TODAY (by -Wall) | |
| -Wtype-limits | ENABLED TODAY (by -Wextra) | |
| -Wundef | ENABLED TODAY | |
| -Wuninitialized | ENABLED TODAY (by -Wall) | |
| -Wunknown-pragmas | ENABLED TODAY (by -Wall) | |
| -Wunsafe-loop-optimizations | (might be a good idea, but triggers today.) | GCC 4.1 |
| -Wunsuffixed-float-constants | (might be a good idea, but triggers today.) | GCC 4.6 |
| -Wunused | (could add trivially) | |
| -Wunused-but-set-parameter | (could add trivially) | |
| -Wunused-but-set-variable | (could add trivially) | |
| -Wunused-const-variable | (might be a good idea, but triggers today.) | GCC 6.1 |
| -Wunused-const-variable=n | (Triggers on our current code.) | GCC 6.1 |
| -Wunused-function | ENABLED TODAY (by -Wall) | |
| -Wunused-label | ENABLED TODAY (by -Wall) | |
| -Wunused-local-typedefs | (could add trivially) | |
| -Wunused-parameter | (could add trivially) | |
| -Wunused-value | ENABLED TODAY (by -Wall) | |
| -Wunused-variable | ENABLED TODAY (by -Wall) | |
| -Wuseless-cast | (C++ only, irrelevant to tor.) | |
| -Wvariadic-macros | (could add trivially) | |
| -Wvector-operation-performance | (irrelevant to Tor?) | |
| -Wvla | (I don't consider this a bug, or it would trigger way too often) | |
| -Wvolatile-register-var | ENABLED TODAY (by -Wall) | |
| -Wwrite-strings | ENABLED TODAY | |
| -Wzero-as-null-pointer-constant | (C++ only, irrelevant to tor.) | |
| -pedantic-errors | (I don't consider this a bug, or it would trigger way too often) |