OSDN Git Service
(root)
/
pf3gnuchains
/
gcc-fork.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
953e80037b8db79800ca184f795d9dfa7921580e
[pf3gnuchains/gcc-fork.git]
/
gcc
/
testsuite
/
g++.old-deja
/
g++.mike
/
p2846.C
1
// prms-id: 2846
2
3
extern "C" int printf(const char *, ...);
4
extern "C" void exit(int);
5
6
class A;
7
class B;
8
9
class A {
10
public:
11
12
A(void){}
13
A(const A&){}
14
A(const B&);
15
16
virtual ~A(void){}
17
18
virtual void print(void) const {
19
printf("A::print\n");
20
printf("FAIL\n");
21
exit(1);
22
}
23
B compute(void) const;
24
};
25
26
class B : private A {
27
friend class A;
28
public:
29
30
virtual ~B(void){}
31
32
void print(void) const {
33
printf("B::print\n");
34
}
35
36
private:
37
B(const A& x, int){}
38
};
39
40
A::A(const B& s) {
41
s.print();
42
}
43
44
B A::compute(void) const {
45
B sub(*this, 1);
46
return sub;
47
}
48
49
main ()
50
{
51
A titi;
52
A toto = titi.compute();
53
printf("PASS\n");
54
return 0;
55
}