[Bug c++/44520] New: improve diagnostic for ambiguous lookup

manu at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Sun Jun 13 13:37:00 GMT 2010


Testcase:

struct B1 { void f(); };
struct B2 { void f(double); };

struct I1 : B1 { };
struct I2 : B1 { };

struct D: I1, I2, B2 {
  using B1::f;  using B2::f;
  void g() {
    f(); 
  }
};

gcc-4.6:

clang-7.C:10:7: error: ‘B1’ is an ambiguous base of ‘D’

clang:

t.cc:10:5: error: ambiguous conversion from derived class 'D' to base class
'B1':
    struct D -> struct I1 -> struct B1
    struct D -> struct I2 -> struct B1
    f(); 
    ^

Clang prints the hierarchy, which is something that g++ doesn't support (I
think).


-- 
           Summary: improve diagnostic for ambiguous lookup
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Keywords: diagnostic
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: manu at gcc dot gnu dot org


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



More information about the Gcc-bugs mailing list