This is the mail archive of the gcc-bugs@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]

[Bug c++/16068] New: Bad error message


In:

#include    <iostream>
class A{};

template<typename T>
void    operator<<(const A&, const T& t) {}

int main() {
    A a;
    a << std::endl;
    }

You get the message:

~/ootbc/common/test/src$ g++ foo1.cc
foo1.cc: In function `int main()':
foo1.cc:9: error: no match for 'operator<<' in 'a << std::endl'


While there is an error here, it is that there are multiple matches (endl is an overloaded function, all of which match) and is ambiguous, rather than that there are no matches. The error should should the usual unresolvable ambiguity message listing the ambiguous identifications.

This bug is related to #16058, which was (incorrectly) reported as an indentification error as a result of a message like this.

Ivan

-- 
           Summary: Bad error message
           Product: gcc
           Version: 3.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: igodard at pacbell dot net
                CC: gcc-bugs at gcc dot gnu dot org


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


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