mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-09 01:47:19 +08:00
new
From-SVN: r23823
This commit is contained in:
parent
37b6eb345f
commit
08a209d473
38
gcc/testsuite/g++.old-deja/g++.other/init11.C
Normal file
38
gcc/testsuite/g++.old-deja/g++.other/init11.C
Normal file
@ -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);
|
||||
}
|
22
gcc/testsuite/g++.old-deja/g++.other/overload7.C
Normal file
22
gcc/testsuite/g++.old-deja/g++.other/overload7.C
Normal file
@ -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();
|
||||
}
|
Loading…
Reference in New Issue
Block a user