GCC, The GNU Compiler Collection
We use GCC 11.2.0, which includes both gcc-5.0 and g++-5.0: 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 11.2.0. Using a more recent version is often a good means to get better error messages if you can’t understand what GCC 11.2.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.