http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49152

--- Comment #18 from Ralph Loader <suckfish at ihug dot co.nz> 2012-03-22 
14:21:33 UTC ---
Flaws from the pretty-printing not listed in this bug (from 25362):

It takes the address of integer constants.

The pretty printing confuses '.' and '->' [this has changed slightly since
25362 was logged.  An attempt has been made to fix it by inserting a unary '&'.
 But that is not correct: '&' might be overloaded for the type in question...]

It prints something utterly bizarre when a std::map is a base class --- it
looks like it is inventing a member '<Anonymous>' to contain the base type.  [I
assume that is how gcc represents inheritance internally.  But it shouldn't be
in the error message.]


My thoughts on bikeshed colours:

This bug is currently listed as 'P3 - enhancement'.  But it is a real bug.  The
current output is incorrect, not just something that could be improved.

This bug is a regression.  Once upon a time [I just checked with gcc-3.2.3],
gcc did actually produce usable diagnostics that were vaguely correct (by
giving the relevant type information instead).  That also had the advantage of
being fairly concise, readable, and useful to the user.

Reply via email to