aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.mike/p646.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.mike/p646.C')
-rw-r--r--gcc/testsuite/g++.old-deja/g++.mike/p646.C175
1 files changed, 0 insertions, 175 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p646.C b/gcc/testsuite/g++.old-deja/g++.mike/p646.C
deleted file mode 100644
index 2644c1b43df..00000000000
--- a/gcc/testsuite/g++.old-deja/g++.mike/p646.C
+++ /dev/null
@@ -1,175 +0,0 @@
-// GROUPS passed i960
-/*
- Bug Id: bnr
- PMRS Id: p0000646
- Bug is: Urgent Code Generation Problem in gcc-i960 V 1.95
-*/
-
-
-// Special g++ Options:
-
-extern "C"
-{
- void printf (char *, ...);
- void abort ();
-}
-
-struct foo
-{
- static int si;
- int i;
- foo ();
- foo (const foo&);
- ~foo ();
-};
-
-int
-foo_parm_returns_i (foo foo_arg)
-{
- return foo_arg.i;
-}
-
-int foo::si = 0;
-
-foo::foo ()
-{
- si++;
- printf ("new foo @ 0x%x; now %d foos\n", this, si);
-}
-
-foo::foo (const foo &other)
-{
- si++;
- printf ("another foo @ 0x%x; now %d foos\n", this, si);
- *this = other;
-}
-
-foo::~foo ()
-{
- si--;
- printf ("deleted foo @ 0x%x; now %d foos\n", this, si);
-}
-
-int
-return_1 ()
-{
- foo f;
- printf ("returning 1\n");
- return 1;
-}
-
-int
-return_arg (int arg)
-{
- foo f;
- printf ("returning %d\n", arg);
- return arg;
-}
-
-int
-return_sum (int x, int y)
-{
- foo f;
- printf ("returning %d+%d\n", x, y);
- return x + y;
-}
-
-foo
-return_foo ()
-{
- foo f;
- printf ("returning foo\n");
- return f;
-}
-
-foo
-return_named_foo () return f
-{
- printf ("returning named foo\n");
- return f;
-}
-
-foo
-foo_parm_returns_foo (foo f)
-{
- return f;
-}
-
-void
-abort_because (char *str)
-{
- printf ("aborting because %s\n", str);
- abort ();
-}
-
-int
-warn_return_1 ()
-{
- foo f;
- printf ("returning 1\n");
-}
-
-int
-warn_return_arg (int arg)
-{
- foo f;
- printf ("returning %d\n", arg);
- arg;
-}
-
-int
-warn_return_sum (int x, int y)
-{
- foo f;
- printf ("returning %d+%d\n", x, y);
- x + y;
-}
-
-foo
-warn_return_foo ()
-{
- foo f;
- printf ("returning foo\n");
-}
-
-foo
-nowarn_return_named_foo () return f
-{
- printf ("returning named foo\n");
-}
-
-foo
-warn_foo_parm_returns_foo (foo f)
-{
- f;
-}
-
-main ()
-{
- int ii = return_1 ();
- if (ii != 1)
- abort_because ("wrong value returned");
- int j = return_arg (42);
- if (j != 42)
- abort_because ("wrong value returned");
- int k = return_sum (-69, 69);
- if (k != 0)
- abort_because ("wrong value returned");
- foo f1 = return_named_foo ();
- if (foo::si != 1)
- abort_because ("wrong number of foos");
- f1.i = 5;
- int l = foo_parm_returns_i (f1);
- if (l != 5)
- abort_because ("l != 5");
- foo f2 = foo_parm_returns_foo (f1);
- if (foo::si != 2)
- abort_because ("wrong number of foos");
- if (f2.i != 5)
- abort_because ("f2.i != 5");
- foo f3 = return_foo ();
- if (foo::si != 3)
- abort_because ("wrong number of foos");
- printf("PASS\n");
- return 0;
-}