http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52957
--- Comment #5 from Manuel López-Ibáñez <manu at gcc dot gnu.org> 2012-04-13 01:03:28 UTC --- Maintainers (those who decide) are too few and they either do not care or do not have time to fix these things. Existing or new contributors that are paid to do something specific don't care about anything else as long as it doesn't interfere with their job (if it does, whatever improvement it may be, then they are against it). I don't think there is any GCC contributor that is paid to improve GCC's diagnostics (am I wrong?). This is very different from Clang, where Chris obviously cares a great deal about Clang's diagnostics, and it seems to be supported by a team in Apple (and in Google?). Contributors to GCC that care about these things, either unpaid or in their free time, are very few and completely overworked. It is true that the GCC code base has a huge technical debt, but diagnostic fixes tend to be easy to fix, if you have a little of experience. However, there are a lot of them, and getting patches reviewed and accepted requires herculean amounts of perseverance. But probably you can share with me more about your (or Googlers) thoughts on the latter, since you have the experience of submitting the same project to both LLVM and GCC. New contributors to GCC are almost non-existent (except those that are paid to work on very specific stuff, like a new port, but these new contributors also don't care about GCC in general, as long as it doesn't interfere with their job). The reasons why GCC fails to attract new contributors are very well-known: the copyright assignment is a major hurdle for casual/unpaid contributors, patches from new contributors are routinely ignored and the patch review process is hostile to new contributors (in reality, much less than in the Linux kernel, but they have enough developers to afford being hostile). Interacting for the first time with GCC developers can easily discourage a lot of people (there is a whole page just on the subject! http://gcc.gnu.org/wiki/GCC_Research). In Clang for example, small obvious fixes proposed by new contributors without any changelog or even without a patch are often committed immediately. I have never seen this in +6 years contributing to GCC, on the contrary, the contributor will be asked to bootstrap, regtest, provide a Changelog, fix the Changelog, provide a patch, read the code style, fix the code style, some bikeshedding, and between each step, there may be weeks of no feedback at all. GCC also has a huge marketing problem, no overall vision, no clear leadership (it is easy to get contradictory answers by the people who decide), and GCC developers show both a lack of enthusiasm (just compare presentations by Clang/LLVM developers, full of amazing features, awesome graphics, never-seen-before numbers and LLVM webpages are full of how good their compiler is, how much better than anything else, etc.) and a sense of superiority ("we don't want to be like Clang/LLVM! It produces slower code by 0.0001%! It doesn't support mmix-knuth-mmixware"). These kind of things are essential to attract new contributors, however, they do not seem to provide any advantage to existing developers, and they are seen as pointless extra work better done by, wait for it, new contributors. Nothing of the above gets fixed by switching to C++ or by having a clearly defined AST...