summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.brendan/cvt3.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.brendan/cvt3.C')
-rw-r--r--gcc/testsuite/g++.old-deja/g++.brendan/cvt3.C49
1 files changed, 49 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/cvt3.C b/gcc/testsuite/g++.old-deja/g++.brendan/cvt3.C
new file mode 100644
index 000000000..8be5d6ed3
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.brendan/cvt3.C
@@ -0,0 +1,49 @@
+// { 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 }
+}