1// { dg-do assemble } 2// GROUPS passed conversions 3class GttObject {}; 4class GctObject: virtual public GttObject {}; 5class NDAMObject: virtual public GttObject, virtual public GctObject {}; 6class GctHashObject: virtual public GctObject {}; 7 8class GctRef: virtual public GctHashObject 9{ public: operator void*() const; }; 10 11class NDAMAssemblerObject: virtual public NDAMObject {}; 12class GctReferenceObject: virtual public GctHashObject {}; 13class NDAMValue: virtual public NDAMAssemblerObject, public GctReferenceObject {}; 14 15class nnyacc; 16class NDAMValueRef : virtual public NDAMObject, public GctRef 17{ 18 NDAMValue *operator->() const; 19 operator NDAMValue *() const; 20friend class nnyacc; 21}; 22 23typedef void* Pix; 24class NDAMValueRefSLList 25{ 26public: 27 NDAMValueRefSLList(); 28 NDAMValueRefSLList(const NDAMValueRefSLList& a); 29 ~NDAMValueRefSLList(); 30 NDAMValueRef& operator () (Pix p) const; 31}; 32 33struct bar 34{ 35 NDAMValueRefSLList *valueList; 36}; 37 38class nnyacc 39{ 40public: 41 static void assign(void*& lval, void*& rval); // { dg-message "nnyacc::assign|no known conversion" } 42}; 43 44void 45foo (bar yylval, bar *yyvsp) 46{ 47 nnyacc::assign(yylval.valueList, yyvsp[0].valueList);// { dg-error "no matching|rvalue" } 48} 49