This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFC: c++ diagnostics


On Apr 5, 2010, at 8:20 AM, Benjamin Kosnik wrote:

> 
> Hello all! 
> 
> I've put up a short diagnostics comparison between gcc, icc, and
> clang. It is my plan to update this with major revisions to individual
> compilers. 
> 
> Included are most of the outstanding bugzilla requests with the
> "diagnostic" keyword. However, I am looking for help! Please send me
> code samples that frustrate, obfuscate, and annoy. 
> 
> In particular, I am looking for template instantiation issues such as
> c++/41884, but hopefully something in a deliciously small snippet. No
> doubt other C++ hackers have particular annoyances.
> 
> I'm also looking for guidance on how to rank the priority of these
> issues. Is there some way to tell what the biggest annoyance is?
> 
> http://people.redhat.com/bkoz/diagnostics/diagnostics.html

This is a great resource Benjamin, thanks for putting it together!

Some random thoughts if you ever regenerate this:

1) the caret diagnostics would be easier to understand in the output if formatted with a <pre> or <tt> tag.  

2) The clang invocations don't need -fcaret-diagnostics -fshow-source-location -fdiagnostics-fixit-info because they are the default.

3) It's best to not pass -fdiagnostics-print-source-range-info unless you're looking for machine interpretable output.  This flag adds things like {3:29-3:32} which are useful to a machine, but otherwise just clutter the output up.

4) It looks like ICC defaults to a number of coding standards types of checks, e.g. "access control not specified".  I don't know if it is possible to turn those off, but they seem to just be noise for the purposes of this comparison.

5) There are a couple cases of GCC rejecting valid code (e.g. 19377), or which there may be some debate about (19538) it might be worth pointing this out. *shrug*

6) My understanding was that GCC's complex extension in C++ mode is supposed to work like C99 _Complex. If so, 41895 looks like a GCC bug.  I don't know if C++'0x affects this though.

7) There are some clang bugs here.  Access control is not yet enabled by default (affects 20397, 39728), and a variety of other bugs (affects 14283, 38612).  I file Clang PR#6782/6783 to track these.

Thanks again for putting this together,

-Chris



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]