]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - gcc/testsuite/g++.old-deja/g++.mike/p8018.C
Imported gcc-4.4.3
[msp430-gcc.git] / gcc / testsuite / g++.old-deja / g++.mike / p8018.C
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p8018.C b/gcc/testsuite/g++.old-deja/g++.mike/p8018.C
deleted file mode 100644 (file)
index 37035bc..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-// prms-id: 8018
-
-class RefCount {
-private:
-  int nref;
-
-public:
-  RefCount() : nref(0) {}
-  ~RefCount() {}
-
-  int nrefs() const { return nref; }
-  int reference() {
-    nref++;
-    return nref;
-  }
-  int unreference() {
-    nref--;
-    return nref;
-  }
-};
-
-class A : public RefCount {
-public:
-  A() {}
-  ~A() {}
-};
-
-class RefA {
-private:
-  A *p;
-
-  void clear() {
-    if (p) {
-      p->unreference();
-      if (!p->nrefs())
-       delete p;
-    }
-  }
-
-public:
-  RefA(A* a) : p(a) { if (p) p->reference(); }
-  RefA(const RefA& a) : p(a.p) { if (p) p->reference(); }
-  ~RefA() { clear(); }
-
-  A* operator->() { return p; }
-
-  RefA& operator=(const RefA& a) {
-    clear();
-    p=a.p;
-    if (p)
-      p->reference();
-    return *this;
-  }
-
-  RefA& operator=(A* a) {
-    clear();
-    p=a;
-    if (p)
-      p->reference();
-    return *this;
-  }
-};
-
-class AccRefA {
-private:
-  RefA a;
-
-public:
-  AccRefA(A* ap) : a(ap) {}
-  AccRefA(const RefA& ar) : a(ar) {}
-  ~AccRefA() {}
-
-  operator RefA&() { return a; }
-  RefA& result() { return a; }
-};
-
-int
-main() {
-  RefA a1 = new A;
-  AccRefA aa1(a1);
-  RefA a3 = aa1;
-
-  if (a1->nrefs() != 3)
-    return 1;
-}