GCC is so 1980s. Clang/LLDB is the way to go today.
I can totally agree with this, except for the CM targets not being up to snuff in LLVM quite yet.
Please tell me why as I'm curious and don't know much about Clang.
For a long time, GCC (and EGCS and back to GCC) was the only serious open source compiler on the block (and even commonly better than the commercial variants, including ICC and MSVC - blows were traded). However, GCC actively fought several key measures such as modularization of the compiler ("plugins") which was seen as a threat to the pure GPL version.
Apple needed a compiler which they could integrate into their developer suite after dragging along with GCC and even Metroworks for years, and found some hope in a project called LLVM. LLVM was a non-GPL, open source compiler-framework of sorts. After pouring years of R&D into it, LLVM and the new Clang matured in new ways that the more conservative GCC never bothered to adopt. Clang had much better programmer ergonomics (compare a clang C++ template error to a GCC one at the time frame, or even C missing close block syntax errors), and more importantly was very modular and pluggable as LLVM had been grown as a framework instead of a monolith. This allowed people to create a very large number of tools re-using parts of the Clang+LLVM pipeline, such as top end semantic analyzers, refactoring tools, source to source translators, and on the backend new and unique optimizer passes.
In short, LLVM had a lot of very smart people on it providing a ton of competition to GCC, and GCC is playing catch-up now. Clang+LLVM+LLDB are projects which are mostly programmer-compatible with GCC+GDB, but provide a "fresh perspective" and are as good or better than GCC, plus substantially easier to integrate into an IDE or generate new tooling around.