Fully define `GCC_VERSION_P' early, and then use it without any other
guard to define the GCC-specific hacks. This way, it's easy to support
other compilers which behave similarly, by defining an appropriate
`FOO_VERSION_P' macro, and then adding appropriate extra alternatives to
the individual guards.