From 08a209d473649ad2016207f5dc0bafa987518dfe Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Mon, 23 Nov 1998 21:34:00 -0500 Subject: [PATCH] new From-SVN: r23823 --- gcc/testsuite/g++.old-deja/g++.other/init11.C | 38 +++++++++++++++++++ .../g++.old-deja/g++.other/overload7.C | 22 +++++++++++ 2 files changed, 60 insertions(+) create mode 100644 gcc/testsuite/g++.old-deja/g++.other/init11.C create mode 100644 gcc/testsuite/g++.old-deja/g++.other/overload7.C diff --git a/gcc/testsuite/g++.old-deja/g++.other/init11.C b/gcc/testsuite/g++.old-deja/g++.other/init11.C new file mode 100644 index 00000000000..79d7d6caa71 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/init11.C @@ -0,0 +1,38 @@ +// Check that elements for which no explicit initializer was given are +// default-initialized properly. + +extern "C" int printf (const char *, ...); + +struct A +{ + int i; + A(): i (42) { } + A(int j): i(j) { } +}; + +A ar[4] = { 1, 2 }; + +struct B +{ + A a1, a2, a3, a4; +}; + +B b = { 1, 2 }; + +struct C +{ + A ar[4]; +}; + +C c = { 1, 2 }; + +int +main () +{ + printf ("%d %d %d %d\n%d %d %d %d\n%d %d %d %d\n", + ar[0].i, ar[1].i, ar[2].i, ar[3].i, + b.a1.i, b.a2.i, b.a3.i, b.a4.i, + c.ar[1-1].i, c.ar[2-1].i, c.ar[3-1].i, c.ar[4-1].i); + + return (b.a4.i != 42 || c.ar[3].i != 42); +} diff --git a/gcc/testsuite/g++.old-deja/g++.other/overload7.C b/gcc/testsuite/g++.old-deja/g++.other/overload7.C new file mode 100644 index 00000000000..57bec8bed2d --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/overload7.C @@ -0,0 +1,22 @@ +// Check that object call works when there are multiple conversion ops +// returning the same type. + +typedef int (*pfn)(); + +int zero () { return 0; } +int one () { return 1; } +int two () { return 2; } + +struct A { + A() { } + operator pfn () { return one; } + operator pfn () const { return zero; } + operator pfn () volatile { return two; } +}; + +int +main () +{ + const A a; + return a(); +} -- 2.30.2