]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - gcc/testsuite/g++.old-deja/g++.other/temporary1.C
Imported gcc-4.4.3
[msp430-gcc.git] / gcc / testsuite / g++.old-deja / g++.other / temporary1.C
diff --git a/gcc/testsuite/g++.old-deja/g++.other/temporary1.C b/gcc/testsuite/g++.old-deja/g++.other/temporary1.C
deleted file mode 100644 (file)
index ed9798b..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-extern "C" int printf (const char *, ...);
-
-int c, d;
-class Foo 
-{
-public:
-   Foo() { printf("Foo() 0x%08lx\n", (__SIZE_TYPE__)this); ++c; }
-   Foo(Foo const &) { printf("Foo(Foo const &) 0x%08lx\n", (__SIZE_TYPE__)this); }
-   ~Foo() { printf("~Foo() 0x%08lx\n", (__SIZE_TYPE__)this); ++d; }
-};
-
-// Bar creates constructs a temporary Foo() as a default
-class Bar 
-{
-public:
-   Bar(Foo const & = Foo()) { printf("Bar(Foo const &) 0x%08lx\n", (__SIZE_TYPE__)this); }
-};
-
-void fakeRef(Bar *)
-{
-}
-
-int main() 
-{
-   // Create array of Bar. Will use default argument on constructor.
-   // The old compiler will loop constructing Bar. Each loop will
-   // construct a temporary Foo() but will not destruct the Foo(). 
-   // The Foo() temporary is destructed only once after the loop 
-   // completes. This could lead to a memory leak if the constructor 
-   // of Foo() allocates memory.
-   Bar bar[2];
-
-   fakeRef(bar);
-
-   printf("Done\n");
-
-   if (c == d && c == 2)
-     return 0;
-   return 1;
-}