A broken diagnostic is issued since GCC 4.0.0 for the following code snippet:
=============================================================== struct A { virtual A foo(); }; void bar(A& a) { a.foo()=0; } =============================================================== bug.cc: In function 'void bar(A&)': bug.cc:8: error: no match for 'operator=' in '#'obj_type_ref' not supported by dump_expr#<expression error>() = 0' bug.cc:2: note: candidates are: A& A::operator=(const A&) -- Summary: [4.1/4.2/4.3 regression] Broken diagnostic: 'obj_type_ref' not supported by dump_expr Product: gcc Version: 4.3.0 Status: UNCONFIRMED Keywords: diagnostic, monitored Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: reichelt at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34275