+++ /dev/null
-// GROUPS passed copy-ctors
-/*
-The old g++ output is
-
-Item()
-Compound()
-Pre foo
-foo
-~Compound()
-~Item()
-Post foo
-~Compound()
-~Item()
-
-The output should be something like (produced from ATT 2.1)
-
-Item()
-Compound()
-Pre foo
-Item(const Item& i) <------ missing above
-foo
-~Compound()
-~Item()
-Post foo
-~Compound()
-~Item()
-
-*/
-
-extern "C" int printf (const char *, ...);
-extern "C" void exit (int);
-
-int count = 0;
-
-void
-die (int x)
-{
- if (x != ++count)
- {
- printf ("FAIL\n");
- exit (1);
- }
-}
-
-
-class Item {
- public:
- Item() { die (1); }
- Item(const Item& i) { die (4); }
- ~Item() { count++; if (count != 7 && count != 10) die (-1); }
-};
-
-
-class Compound {
- Item i;
- public:
- Compound() { die (2); }
- ~Compound() { count++; if (count != 6 && count != 9) die (-1); }
-};
-
-
-void foo(Compound a)
-{
- die (5);
-}
-
-int
-main()
-{
- Compound a;
-
- die (3);
- foo(a);
-
- die (8);
-
- printf ("PASS\n");
-}
-