]>
Commit | Line | Data |
---|---|---|
fb933624 DJ |
1 | /* This test script is part of GDB, the GNU debugger. |
2 | ||
42a4f53d | 3 | Copyright 2006-2019 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 |
47d48711 | 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. */ |
fb933624 DJ |
17 | |
18 | /* Author: Paul N. Hilfinger, AdaCore Inc. */ | |
19 | ||
20 | struct Parent { | |
21 | Parent (int id0) : id(id0) { } | |
22 | int id; | |
23 | }; | |
24 | ||
25 | struct Child : public Parent { | |
26 | Child (int id0) : Parent(id0) { } | |
27 | }; | |
28 | ||
29 | int f1(Parent& R) | |
30 | { | |
31 | return R.id; /* Set breakpoint marker3 here. */ | |
32 | } | |
33 | ||
34 | int f2(Child& C) | |
35 | { | |
36 | return f1(C); /* Set breakpoint marker2 here. */ | |
37 | } | |
38 | ||
39 | struct OtherParent { | |
40 | OtherParent (int other_id0) : other_id(other_id0) { } | |
41 | int other_id; | |
42 | }; | |
43 | ||
44 | struct MultiChild : public Parent, OtherParent { | |
45 | MultiChild (int id0) : Parent(id0), OtherParent(id0 * 2) { } | |
46 | }; | |
47 | ||
48 | int mf1(OtherParent& R) | |
49 | { | |
50 | return R.other_id; | |
51 | } | |
52 | ||
53 | int mf2(MultiChild& C) | |
54 | { | |
55 | return mf1(C); | |
56 | } | |
57 | ||
58 | int main(void) | |
59 | { | |
60 | Child Q(42); | |
61 | Child& QR = Q; | |
62 | ||
fb933624 DJ |
63 | /* Set breakpoint marker1 here. */ |
64 | ||
65 | f2(Q); | |
66 | f2(QR); | |
67 | ||
68 | MultiChild MQ(53); | |
69 | MultiChild& MQR = MQ; | |
70 | ||
71 | mf2(MQ); /* Set breakpoint MQ here. */ | |
72 | } |