[Bug c++/39859] New: C++: Duplicated and unhelpful error for "c:n"

ian at airs dot com gcc-bugzilla@gcc.gnu.org
Thu Apr 23 00:41:00 GMT 2009


When I compile this erroneous C++ program

namespace n { const int c = 1; }
int foo() { return n:c; }

I get this:

foo.cc: In function ‘int foo()’:
foo.cc:2: error: expected primary-expression before ‘:’ token
foo.cc:2: error: expected ‘;’ before ‘:’ token
foo.cc:2: error: expected primary-expression before ‘:’ token
foo.cc:2: error: expected ‘;’ before ‘:’ token

The duplicated error messages are useless; I think that is a bug.

Even if that bug is fixed, this error message could be better.  The error is
using a single colon instead of two colons.  "expected primary-expression" is
not helpful to the user.  Firstly, as in PR 39858, what is missing is an
expression, not a primary-expression.  Secondly, the colon is clearly out of
place; if we found an expression, we would still fail.  In this case, we
actually know that we just saw a NAMESPACE_DECL.  We can give a better error
message in this context.


-- 
           Summary: C++: Duplicated and unhelpful error for "c:n"
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Severity: trivial
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: ian at airs dot com


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



More information about the Gcc-bugs mailing list