diff options
author | Jason Merrill <jason@gcc.gnu.org> | 1998-11-23 21:34:00 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 1998-11-23 21:34:00 -0500 |
commit | 08a209d473649ad2016207f5dc0bafa987518dfe (patch) | |
tree | 042fc42202b881845787cc6579dedaf7ecc56cb6 /gcc | |
parent | 37b6eb345f9504a6b4543a9b1ecceb965556173d (diff) | |
download | gcc-08a209d473649ad2016207f5dc0bafa987518dfe.zip gcc-08a209d473649ad2016207f5dc0bafa987518dfe.tar.gz gcc-08a209d473649ad2016207f5dc0bafa987518dfe.tar.bz2 |
new
From-SVN: r23823
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.other/init11.C | 38 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.other/overload7.C | 22 |
2 files changed, 60 insertions, 0 deletions
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 0000000..79d7d6c --- /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 0000000..57bec8b --- /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(); +} |