Vasily
da25e58cbb
Add clang-tidy, create Linux build script
...
clang-tidy is currently set up with errors for all checks that do not
warn. This is to prevent regressing the repo.
Gradually these warnings should be removed in order to prevent further
regresssions in warnings that do not have many occurences.
2019-02-28 21:16:53 +01:00
Vasily
dbb1ab70e5
Clarify cast in easylogging++
...
`tval.tv_usec` is a (signed) `long` and `ssPrec->m_offset` is an
`unsigned int`. Clang warns upon realizing that we are attempting to
divide a signed `long` with an `unsigned int`.
Casting the `long` to `unsigned long` makes both operands `unsigned` and
allows for auto conversion to `size_t`.
The `size_t` cast is to make it apparent that the cast is correct.
2019-02-21 18:48:53 +01:00
Vasily
4814c4686f
Add brackets to optimize statement
...
Not having brackets forces the compiler to see the statement as (xdelta
* 360.0) * 8.0, which requires two `mulsd` operations. Adding the
brackets only requires one.
More details here
https://github.com/OpenVR-Advanced-Settings/OpenVR-AdvancedSettings/pull/87
2019-02-21 18:48:53 +01:00
Vasily
90ad7e7270
Remove extra parens
2019-02-21 18:48:53 +01:00
Vasily
2da88237f2
Remove -Wmissing-variable-declaration from GCC
...
GCC does not support it.
2019-02-21 18:48:53 +01:00
Vasily
81ae0efd1c
Add -Wmissing-variable-declarations to all clang/gcc compilers
2019-02-21 18:48:53 +01:00
Vasily
9ab0b1d62d
Remove -Wextra-semi for GCC
...
It is not currently supported yet by GCC.
2019-02-21 18:48:53 +01:00
Vasily
9d46358309
Add -Wzero-as-null-pointer-constant and fix occurences
2019-02-21 18:48:53 +01:00
Vasily
896559cc20
Add -Wextra-semi and fix occurences
2019-02-21 18:48:53 +01:00
Vasily
d66e50e318
Fix wrongly placed parens
2019-02-21 18:48:53 +01:00
Vasily
a93c7500d3
Fix GCC -Werror=conversion
...
Was mistakenly cast to long long unsigned int instead of double.
2019-02-21 18:48:53 +01:00
Vasily
e99b36f610
Fix GCC -Werror=conversion in easylogging++
2019-02-21 18:48:53 +01:00
Vasily
c8709888d0
Add -Wno-sign-conversion to GCC and clang
...
The auto generated Qt MOC .cpp files contain warnings that can't be
fixed.
2019-02-21 18:48:53 +01:00
Vasily
dacfe05425
Fix -Wconversion
2019-02-21 18:48:53 +01:00
Vasily
cff2fc7eba
Fix more -Wfloat-conversion warnings
2019-02-21 18:48:53 +01:00
Vasily
b861ae0075
Fix -Wfloat-conversion warnings
2019-02-21 18:48:53 +01:00
Vasily
29d41b4ed0
Add -Wconversion to GCC and Clang
...
clang-msvc spams warnings from the moc .cpp files that include Qt
headers.
2019-02-21 18:48:53 +01:00
Vasily
775d0e0e36
Fix -Wsign-conversion warnings in easylogging++
2019-02-21 18:48:53 +01:00
Vasily
cfefec59e3
Fix -Wsign-conversion warnings
2019-02-21 18:48:53 +01:00
Vasily
bc8ab72363
Fix clang -Wdouble-promotion cast
2019-02-21 18:48:53 +01:00
Vasily
60b9f71b9a
Fix gcc -Wdouble-promotion warnings
...
For some reason GCC uses the float version of sqrt even though all
arguments and results are floats.
2019-02-21 18:48:53 +01:00
Vasily
edf14b6bf9
Fix clang -Wdouble-promotion
...
gcc instance failed before compiling.
2019-02-21 18:48:53 +01:00
Vasily
4d06360c92
Fix gcc and clang -Wdouble-promotion
2019-02-21 18:48:53 +01:00
Vasily
85fbbbbd42
Gcc and clang fix for -Wdouble-promotion
2019-02-21 18:48:53 +01:00
Vasily
8444a4972b
Attempt different fix for clang -Wdouble-promotion
2019-02-21 18:48:53 +01:00
Vasily
400654898b
Fix gcc -Wdouble-promotion issues
2019-02-21 18:48:53 +01:00
Vasily
88dad1087f
Fix clang -Wdouble-promotion issues
2019-02-21 18:48:53 +01:00
Vasily
ec014a1e74
Add -Wdouble-promotion switch to clang/gcc compilers
...
It introduces a lot of ugly casts. Long term the floats should probably
be changed to doubles everywhere since we're only compiling for 64 bit
x86.
2019-02-21 18:48:53 +01:00
Vasily
fe3bbc2959
Remove -Weffc++ from GCC
...
The "should be initialized in the member initialization list" is
incorrectly implemented on GCC.
https://stackoverflow.com/questions/14002454/can-i-ignore-the-gcc-warning-foom-bar-should-be-initialized-in-the-member-i
2019-02-21 18:48:53 +01:00
Vasily
0caff37251
Add -Weffc++ switch to clang/gcc
2019-02-21 18:48:53 +01:00
Vasily
473e928106
Refactor common switches into file
2019-02-21 18:48:53 +01:00
Vasily
106727a5b9
Remove -Wmost from GCC
...
-Wmost is a clang only switch.
2019-02-21 18:48:53 +01:00
Vasily
fddae4278b
Add more recommended switches
...
Commented out switches still give errors.
2019-02-21 18:48:53 +01:00
Vasily
ac614c36e6
Replace -pedantic with -Wpedantic
2019-02-21 18:48:53 +01:00
Vasily
d87338d195
Add -pedantic to Linux compilers
...
clang-msvc does not support -pedantic.
2019-02-21 18:48:53 +01:00
Vasily
82ac83d649
Add -Wextra to supported compilers
2019-02-21 18:48:53 +01:00
Vasily
cc4f0d4bc8
Remove unneeded -Xclang
2019-02-21 18:48:53 +01:00
Vasily
34204d2441
Add -Wnon-virtual-dtor and resolve issues
...
The IPolicyConfig file is a third party file and since it describes a
third party API we can't make changes to it. Adding it via the system
includes disables warnings on most compilers.
2019-02-21 18:48:53 +01:00
Vasily
60bd0a54c1
Fix shadowed variable in easylogging++.cc
...
The _var was chosen because it conflicts with the naming convention in
the rest of the file.
Fixing the error was easier than getting GCC to ignore errors in one
file, or using a pragma to mute the warning.
Introducing a GCC pragma would require disabling C4068 on MSVC (unknown
pragma).
2019-02-21 18:48:53 +01:00
Vasily
5c70aba098
Revert easylogging++ include and attempt changing easylogging++.cc
2019-02-21 18:48:53 +01:00
Vasily
940ad48923
Attempt -i switch in order to ignore warnings in file
2019-02-21 18:48:53 +01:00
Vasily
9019270df8
Refine compiler system includes for different platforms
...
MSVC seems to be the only platform that doesn't have a non-experimental
way to include files that don't give warnings.
2019-02-21 18:48:53 +01:00
Vasily
7234e2ba6c
Convert Linux only cast from old style
2019-02-21 18:48:53 +01:00
Vasily
1b6cc47238
Add .. to linux include paths
2019-02-21 18:48:53 +01:00
Vasily
4ed6e80645
Include third party headers system headers for clang/g++
2019-02-21 18:48:53 +01:00
Vitaly
acb666a142
Remove old style casts and enable warnings for them
2019-02-21 18:48:53 +01:00
Vasily
81af2b9c72
Add -Wshadow and solve warnings
2019-02-21 18:48:53 +01:00
Vasily
89e026e714
Rename declaration parameter to fit definition
2019-02-21 18:48:53 +01:00
Vasily
fdc096bb61
Add recommended compiler switches
...
From
https://github.com/lefticus/cppbestpractices/blob/master/02-Use_the_Tools_Available.md#MSVC
The '/w14619' switch creates errors in qglobal.h and qvector.h.
2019-02-21 18:48:53 +01:00
Vasily
68a72ded1f
Add whole program optimization to MSVC
2019-02-21 18:48:53 +01:00