// { dg-do assemble } // GROUPS passed conversions class GttObject {}; class GctObject: virtual public GttObject {}; class NDAMObject: virtual public GttObject, virtual public GctObject {}; class GctHashObject: virtual public GctObject {}; class GctRef: virtual public GctHashObject { public: operator void*() const; }; class NDAMAssemblerObject: virtual public NDAMObject {}; class GctReferenceObject: virtual public GctHashObject {}; class NDAMValue: virtual public NDAMAssemblerObject, public GctReferenceObject {}; class nnyacc; class NDAMValueRef : virtual public NDAMObject, public GctRef { NDAMValue *operator->() const; operator NDAMValue *() const; friend class nnyacc; }; typedef void* Pix; class NDAMValueRefSLList { public: NDAMValueRefSLList(); NDAMValueRefSLList(const NDAMValueRefSLList& a); ~NDAMValueRefSLList(); NDAMValueRef& operator () (Pix p) const; }; struct bar { NDAMValueRefSLList *valueList; }; class nnyacc { public: static void assign(void*& lval, void*& rval); // { dg-message "nnyacc::assign|no known conversion" } }; void foo (bar yylval, bar *yyvsp) { nnyacc::assign(yylval.valueList, yyvsp[0].valueList);// { dg-error "no matching" } // { dg-message "candidate" "candidate note" { target *-*-* } 47 } }