diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.mike/eh18.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.mike/eh18.C | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh18.C b/gcc/testsuite/g++.old-deja/g++.mike/eh18.C deleted file mode 100644 index cf98bce4902..00000000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh18.C +++ /dev/null @@ -1,63 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -class VB { -public: - int n; - VB (int v) { n = v; } - VB (const VB& o) { - n = o.n; -// printf("copying VB from %d to %d\n", &o, this); - } -}; - -class D : public virtual VB { - int j; -public: - D(int i1, int i2) : VB(i2) { j = i1; } - VB& vb() { return *(VB*)this; } - const VB& vb() const { return *(const VB*)this; } -}; - -class pD : private virtual VB { - int j; -public: - pD(int i1, int i2) : VB(i2) { j = i1; } - VB& vb() { return *(VB*)this; } - const VB& vb() const { return *(const VB*)this; } -}; - - -int main () { - D d(1943, 4279); - pD pd(3621, 9527); - VB *vb = &d.vb(); - VB *pvb = &pd.vb(); - - // A catch of a public virtual base. - try { -// printf("Throwing D at %d (VB at %d)\n", &d, vb); - throw d; - } - catch (VB& vb) { -// printf("Catching VB at %d\n", &vb); - if (vb.n != 4279) - return 1; - } - catch (...) { - return 1; - } - - // A catch of a private virtual base. - try { -// printf("Throwing D at %d (VB at %d)\n", &pd, pvb); - throw pd; - } - catch (VB& vb) { -// printf("Catching VB at %d\n", &vb); - // This was a private base of the throw object, don't catch it. - return 1; - } - catch (...) { - } -} |