aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.brendan/copy8.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.brendan/copy8.C')
-rw-r--r--gcc/testsuite/g++.old-deja/g++.brendan/copy8.C67
1 files changed, 0 insertions, 67 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/copy8.C b/gcc/testsuite/g++.old-deja/g++.brendan/copy8.C
deleted file mode 100644
index fe248bae34d..00000000000
--- a/gcc/testsuite/g++.old-deja/g++.brendan/copy8.C
+++ /dev/null
@@ -1,67 +0,0 @@
-// GROUPS passed copy-ctors
-/*
-This report is for GCC 2.3.3 running on a Sun/4. The bug is that when
-a class instance is passed-by-value, GCC does not correctly copy the value.
-At the end of this report is an example program that demonstrates the bug.
-It should print:
-
- construct A('x')
- copy A('x')
- destruct A('x')
- destruct A('x')
-
-and in fact does for IBM's xlC C++. However, for GCC 2.3.3, it fails
-to print the second line ["copy A('x')"], which indicates that it failed
-to call the copy-constructor for class A when it should have. Below is a
-typescript that lists the program, shows how I compiled it, and shows the
-incorrect output.
-*/
-
-extern "C" void printf (char *, ...);
-extern "C" void exit (int);
-
-int count = 0;
-
-void
-die (int x)
-{
- if (x != ++count)
- {
- printf ("FAIL\n");
- exit (1);
- }
-}
-
-class A { // Class with explicit & instrumented copy-constructor and destructor.
-public:
- const char * id;
- A( const char * id1 ) : id(id1) { die (1); }
-
- // Copy constructor
- A( const A& a ) : id(a.id) { die (2); }
-
- // Destructor
- ~A() { count++; if (count != 3 && count != 4) die (-1); }
-};
-
-class X { // Class without explicit copy-constructor
-private:
- A a;
-public:
- X( const char * id ) : a(id) {}
-};
-
-void Func( X x ) { // Function with call-by-value argument
-}
-
-int
-main() {
- X x("x"); // Construct instance of x.
-
- // The next line should call the copy-constructor for X since x is
- // being passed by value. For GCC 2.3.3 on a Sun/4, it does not.
- Func(x);
-
- printf ("PASS\n");
- return 0;
-}