aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.other/singleton.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.other/singleton.C')
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/singleton.C38
1 files changed, 0 insertions, 38 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.other/singleton.C b/gcc/testsuite/g++.old-deja/g++.other/singleton.C
deleted file mode 100644
index 075d83ac79a..00000000000
--- a/gcc/testsuite/g++.old-deja/g++.other/singleton.C
+++ /dev/null
@@ -1,38 +0,0 @@
-// This tests two things:
-// 1. there is an annoying warning.
-// singleton.C:26: warning: `class singleton' only defines private constructors and has no friends
-// egcs fails to see that there is a public static accessor function.
-// 2. the program crashes, because apparently the static variable s in
-// singleton::instance() is considered constructed although the ctor
-// exited via an exception. (crash changed to non-zero return here)
-
-class singleton {
-public:
- static singleton& instance() {
- static singleton s;
- return s;
- }
- int check() {return initialized;}
-
-private:
- singleton() : initialized(1) {
- if ( counter++ == 0 ) throw "just for the heck of it";
- initialized = 2;
- }
- singleton( const singleton& rhs );
- void operator=( const singleton& rhs );
- int initialized;
- static int counter;
-};
-
-int singleton::counter;
-
-int main()
-{
- while (1) {
- try {
- return singleton::instance().check()-2;
- } catch (...) { }
- }
-}
-