Fast-DDS
Fast-DDS copied to clipboard
[21358] Increase the warning level for Ubuntu CI's compilation
Description
The compilation in Windows is usually more restrictive than the compilation in Ubuntu. This is in part because the compilation warning-flags in Windows and Ubuntu are different.
- Windows:
-DCMAKE_CXX_FLAGS="/WX /MP" - Ubuntu:
-DCMAKE_CXX_FLAGS="-Werror -Wall -Wextra -Wpedantic -Wunused-value -Woverloaded-virtual"
The problem with Windows being more restrictive than Ubuntu is that many errors cannot be found and solved until the CI runs on Windows, which usually takes a long time. To find and solve errors faster, we have included the following compilation warning-flags to Ubuntu's CI:
-
-Wsign-compare -
-Wcast-align -
-Wlogical-op -
-Wduplicated-cond -
-Wrestrict -
-Wnull-dereference -
-Wpointer-arith -
-Wwrite-strings -
-Wunreachable-code
According to ChatGPT, the following flags should be added to make Ubuntu's CI as restrictive as Window's:
-
-Wconversion -
-Wshadow -
-Wsign-conversion -
-Wold-style-cast -
-Wuseless-cast -
-Wformat=2 -
-Wmissing-include-dirs -
-Wredundant-decls -
-Wstrict-overflow=5 -
-Wswitch-enum -
-Wdouble-promotion -
-Wduplicated-branches
According to StackOverflow, the following flags could also be useful:
-
-Wfloat-equal -
-Wundef -
-Waggregate-return -
-Wcast-qual -
-Wswitch-default -
-Wstrict-prototypes
Both ChatGPT's and StackOverflow's suggestions are left out from this first attempt.
Contributor Checklist
- [x] Commit messages follow the project guidelines.
- N/A The code follows the style guidelines of this project.
- N/A Tests that thoroughly check the new feature have been added/Regression tests checking the bug and its fix have been added; the added tests pass locally
- N/A Any new/modified methods have been properly documented using Doxygen.
- N/A Any new configuration API has an equivalent XML API (with the corresponding XSD extension)
- [x] Changes are backport compatible: they do NOT break ABI nor change library core behavior.
- [x] Changes are API compatible.
- [ ] New feature has been added to the
versions.mdfile (if applicable). - [ ] New feature has been documented/Current behavior is correctly described in the documentation.
- [ ] Applicable backports have been included in the description.
Reviewer Checklist
- [ ] The PR has a milestone assigned.
- [ ] The title and description correctly express the PR's purpose.
- [ ] Check contributor checklist is correct.
- [ ] If this is a critical bug fix, backports to the critical-only supported branches have been requested.
- [ ] Check CI results: changes do not issue any warning.
- [ ] Check CI results: failing tests are unrelated with the changes.