]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - gcc/testsuite/g++.old-deja/g++.other/singleton.C
Imported gcc-4.4.3
[msp430-gcc.git] / gcc / testsuite / g++.old-deja / g++.other / singleton.C
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 (file)
index 075d83a..0000000
+++ /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 (...) { }
-       }
-}
-