Commit | Line | Data |
---|---|---|
fb933624 DJ |
1 | /* This test script is part of GDB, the GNU debugger. |
2 | ||
0fb0cc75 | 3 | Copyright 2006, 2007, 2008, 2009 Free Software Foundation, Inc. |
fb933624 DJ |
4 | |
5 | This program is free software; you can redistribute it and/or modify | |
6 | it under the terms of the GNU General Public License as published by | |
a9762ec7 | 7 | the Free Software Foundation; either version 3 of the License, or |
fb933624 DJ |
8 | (at your option) any later version. |
9 | ||
10 | This program is distributed in the hope that it will be useful, | |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | GNU General Public License for more details. | |
a9762ec7 | 14 | |
fb933624 | 15 | You should have received a copy of the GNU General Public License |
a9762ec7 | 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. |
fb933624 DJ |
17 | */ |
18 | ||
19 | /* Author: Paul N. Hilfinger, AdaCore Inc. */ | |
20 | ||
21 | struct Parent { | |
22 | Parent (int id0) : id(id0) { } | |
23 | int id; | |
24 | }; | |
25 | ||
26 | struct Child : public Parent { | |
27 | Child (int id0) : Parent(id0) { } | |
28 | }; | |
29 | ||
30 | int f1(Parent& R) | |
31 | { | |
32 | return R.id; /* Set breakpoint marker3 here. */ | |
33 | } | |
34 | ||
35 | int f2(Child& C) | |
36 | { | |
37 | return f1(C); /* Set breakpoint marker2 here. */ | |
38 | } | |
39 | ||
40 | struct OtherParent { | |
41 | OtherParent (int other_id0) : other_id(other_id0) { } | |
42 | int other_id; | |
43 | }; | |
44 | ||
45 | struct MultiChild : public Parent, OtherParent { | |
46 | MultiChild (int id0) : Parent(id0), OtherParent(id0 * 2) { } | |
47 | }; | |
48 | ||
49 | int mf1(OtherParent& R) | |
50 | { | |
51 | return R.other_id; | |
52 | } | |
53 | ||
54 | int mf2(MultiChild& C) | |
55 | { | |
56 | return mf1(C); | |
57 | } | |
58 | ||
59 | int main(void) | |
60 | { | |
61 | Child Q(42); | |
62 | Child& QR = Q; | |
63 | ||
64 | #ifdef usestubs | |
65 | set_debug_traps(); | |
66 | breakpoint(); | |
67 | #endif | |
68 | ||
69 | /* Set breakpoint marker1 here. */ | |
70 | ||
71 | f2(Q); | |
72 | f2(QR); | |
73 | ||
74 | MultiChild MQ(53); | |
75 | MultiChild& MQR = MQ; | |
76 | ||
77 | mf2(MQ); /* Set breakpoint MQ here. */ | |
78 | } |