add GCC/Clang compiler versions for warning flags

Added a note like (only in GCC >= 4.8) or (GCC >= 4.6, Clang >= 3.8) for every suggested -Wxxx flag since they are not uniformly supported. Based on WARN_FLAGS setup code in d209af97b5/CMakeLists.txt. Verified by using godbolt.org and digging around release notes.
This commit is contained in:
Anton Voloshin
2018-11-21 22:03:05 +02:00
committed by GitHub
parent 4035ddb50e
commit 147736a36b

View File

@@ -105,18 +105,18 @@ You should use as many compilers as you can for your platform(s). Each compiler
* `-Wcast-align` warn for potential performance problem casts * `-Wcast-align` warn for potential performance problem casts
* `-Wunused` warn on anything being unused * `-Wunused` warn on anything being unused
* `-Woverloaded-virtual` warn if you overload (not override) a virtual function * `-Woverloaded-virtual` warn if you overload (not override) a virtual function
* `-Wpedantic` warn if non-standard C++ is used * `-Wpedantic` (GCC only) warn if non-standard C++ is used
* `-Wconversion` warn on type conversions that may lose data * `-Wconversion` warn on type conversions that may lose data
* `-Wsign-conversion` warn on sign conversions * `-Wsign-conversion` (Clang all versions, GCC >= 4.3) warn on sign conversions
* `-Wmisleading-indentation` warn if indentation implies blocks where blocks do not exist * `-Wmisleading-indentation` (only in GCC >= 6.0) warn if indentation implies blocks where blocks do not exist
* `-Wduplicated-cond` warn if `if` / `else` chain has duplicated conditions * `-Wduplicated-cond` (only in GCC >= 6.0) warn if `if` / `else` chain has duplicated conditions
* `-Wduplicated-branches` warn if `if` / `else` branches have duplicated code * `-Wduplicated-branches` (only in GCC >= 7.0) warn if `if` / `else` branches have duplicated code
* `-Wlogical-op` warn about logical operations being used where bitwise were probably wanted * `-Wlogical-op` (only in GCC) warn about logical operations being used where bitwise were probably wanted
* `-Wnull-dereference` warn if a null dereference is detected * `-Wnull-dereference` (only in GCC >= 6.0) warn if a null dereference is detected
* `-Wuseless-cast` warn if you perform a cast to the same type * `-Wuseless-cast` (only in GCC >= 4.8) warn if you perform a cast to the same type
* `-Wdouble-promotion` warn if `float` is implicit promoted to `double` * `-Wdouble-promotion` (GCC >= 4.6, Clang >= 3.8) warn if `float` is implicit promoted to `double`
* `-Wformat=2` warn on security issues around functions that format output (ie `printf`) * `-Wformat=2` warn on security issues around functions that format output (ie `printf`)
* `-Wlifetime` (clang only currently) shows object lifetime issues * `-Wlifetime` (only special branch of Clang currently) shows object lifetime issues
Consider using `-Weverything` and disabling the few warnings you need to on Clang Consider using `-Weverything` and disabling the few warnings you need to on Clang