I usually use clang because it has fantastic error messages, and in my experience it builds faster, uses less memory, and makes smaller executables than gcc. But I also build with gcc every once in a while since clang doesn't catch a couple of warnings, such as unused variables.