This should make CI consistent on all the compilers we support. Most of
this patch is working around various warnings emitted by GCC in our code
base, which are now being shown when we compile the tests.
After this patch, the whole test suite should be warning free on all
compilers we support and test, except for a few warnings on GCC that
we silence explicitly until we figure out the proper fix for them.
How many of the diffs are just refactoring #define into ADDITIONAL_COMPILER_FLAGS: -D? I don't think that's related to the point of this patch; I also think it's uncontroversial and you could ship it right now. Or am I missing something?
(Further down, I see some where the #define was separated from the REQUIRES by several lines of code. I suggest moving it up to the line immediately after the REQUIRES.)