// { 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|rvalue" }
}