* template6.C, delete1.C, template7.C: New test.
From-SVN: r28140
This commit is contained in:
parent
bef10da058
commit
70ceca9bf0
4 changed files with 62 additions and 0 deletions
|
@ -1,3 +1,7 @@
|
|||
1999-07-17 Alexandre Oliva <oliva@dcc.unicamp.br>
|
||||
|
||||
* template6.C, delete1.C, template7.C: New test.
|
||||
|
||||
1999-07-13 Alexandre Oliva <oliva@dcc.unicamp.br>
|
||||
|
||||
* template5.C: New test.
|
||||
|
|
31
gcc/testsuite/g++.old-deja/g++.oliva/delete1.C
Normal file
31
gcc/testsuite/g++.old-deja/g++.oliva/delete1.C
Normal file
|
@ -0,0 +1,31 @@
|
|||
// Build don't link:
|
||||
|
||||
// Copyright (C) 1999 Free Software Foundation
|
||||
|
||||
// by Alexandre Oliva <oliva@dcc.unicamp.br>
|
||||
// simplified from bug report by K. Haley <khaley@bigfoot.com>
|
||||
// based on analysis by Martin v. Loewis
|
||||
|
||||
// [class.dtor]/11: delete must be implicitly checked for
|
||||
// accessibility only in the definition of virtual destructors,
|
||||
// implicitly defined or not.
|
||||
|
||||
struct foo {
|
||||
foo() {}
|
||||
private:
|
||||
void operator delete(void *) {} // ERROR - private
|
||||
} foo_;
|
||||
|
||||
struct bar : foo {
|
||||
~bar() {
|
||||
delete this; // ERROR - delete is private
|
||||
// An implicit invocation of delete is emitted in destructors, but
|
||||
// it should only be checked in virtual destructors
|
||||
} // gets bogus error - not virtual - XFAIL *-*-*
|
||||
} bar_;
|
||||
|
||||
struct baz : foo {
|
||||
virtual ~baz() {} // ERROR - delete is private in vdtor
|
||||
} baz_;
|
||||
|
||||
struct bad : baz {} bad_; // ERROR - delete is private in vdtor
|
11
gcc/testsuite/g++.old-deja/g++.oliva/template6.C
Normal file
11
gcc/testsuite/g++.old-deja/g++.oliva/template6.C
Normal file
|
@ -0,0 +1,11 @@
|
|||
// Build don't link:
|
||||
|
||||
// Copyright (C) 1999 Free Software Foundation
|
||||
|
||||
// by Alexandre Oliva <oliva@dcc.unicamp.br>
|
||||
// simplified from bug report by Meenaradchagan Vishnu <mvishnu@fore.com>
|
||||
|
||||
// crash test - XFAIL *-*-*
|
||||
|
||||
template <typename> struct foo {};
|
||||
template <> void foo();
|
16
gcc/testsuite/g++.old-deja/g++.oliva/template7.C
Normal file
16
gcc/testsuite/g++.old-deja/g++.oliva/template7.C
Normal file
|
@ -0,0 +1,16 @@
|
|||
// Build don't link:
|
||||
|
||||
// Copyright (C) 1999 Free Software Foundation
|
||||
|
||||
// by Alexandre Oliva <oliva@dcc.unicamp.br>
|
||||
// simplified from bug report by Paul Burchard <burchard@pobox.com>
|
||||
|
||||
// crash test - XFAIL *-*-*
|
||||
|
||||
template<class> struct A {};
|
||||
template<template<class> class T> struct B {
|
||||
B() {
|
||||
T<B>();
|
||||
}
|
||||
};
|
||||
B<A> foo;
|
Loading…
Add table
Reference in a new issue