We use GCC 5.0, which includes both
the C and C++ compilers. Do not use older versions as they have poor
compliance with the C++ standard. You are welcome to use more recent
versions of GCC if you can use one, but the tests will be done
with 5.0. Using a more recent version is often a good
means to get better error messages if you can’t understand what
GCC 5.0 is trying to say.
There are good patches floating around to improve GCC. The GCC Bounds Checking Page is an interesting example in this respect. It is however no longer maintained and we advise you to have a look at mudflap instead, which is officially part of GCC.