OSDN Git Service

* g++.other/singleton.C: Return error value instead of taking
authorrobertl <robertl@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 10 Jul 1998 21:45:18 +0000 (21:45 +0000)
committerrobertl <robertl@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 10 Jul 1998 21:45:18 +0000 (21:45 +0000)
SIGSEGV.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@21054 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/g++.old-deja/g++.other/singleton.C

index 9fe92bd..d48ad94 100644 (file)
@@ -1,3 +1,8 @@
+Fri Jul 10 23:43:33 1998 Martin von Loewis <martin@mira.isdn.cs.tu-berlin.de>
+       
+       *  g++.other/singleton.C: Return error value instead of taking
+       SIGSEGV.
+
 Fri Jul 10 10:02:03 1998  Klaus-Georg Adams <Klaus-Georg.Adams@chemie.uni-karlsruhe.de> 
 
        *  g++.other/singleton.C: New test.   Warning is under dispute.
index 32722c3..fda64fb 100644 (file)
@@ -1,10 +1,12 @@
+// execution test - re-initialization of statics XFAIL *-*-*
 // This tests two things:
-// 1. there is an annoying warning. singleton.C:27: warning: `class
-// singleton' only defines private constructors and has no friends egcs
-// fails to see that there is a public static accessor function.
+// 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.
+// exited via an exception. (crash changed to non-zero return here)
 
 class singleton {
 public:
@@ -12,19 +14,18 @@ public:
                static singleton s;
                return s;
        }
-       ~singleton() { delete sigsegv; }
-       int crash() { return *sigsegv; }
+       int check() {return initialized;}
 
 private:
-       singleton() : sigsegv(0) {
+       singleton() : initialized(1) {
                if ( counter++ == 0 ) throw "just for the heck of it";
-               sigsegv = new int(0);
+               initialized = 2;
        }
        singleton( const singleton& rhs );
        void operator=( const singleton& rhs );
-       int* sigsegv;
+       int initialized;
        static int counter;
-};
+};  // gets bogus error - class is not useless XFAIL *-*-*
 
 int singleton::counter;
 
@@ -32,7 +33,8 @@ int main()
 {
        while (1) {
                try {
-                       return singleton::instance().crash();
+                       return singleton::instance().ok()-2;
                } catch (...) { }
        }
 }
+