]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gdb/testsuite/gdb.cp/pass-by-ref.cc
Update copyright year range in all GDB files.
[thirdparty/binutils-gdb.git] / gdb / testsuite / gdb.cp / pass-by-ref.cc
CommitLineData
41f1b697
DJ
1/* This testcase is part of GDB, the GNU debugger.
2
42a4f53d 3 Copyright 2007-2019 Free Software Foundation, Inc.
41f1b697
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
7 the Free Software Foundation; either version 3 of the License, or
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.
14
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>. */
17
18class Obj {
19public:
20 Obj ();
21 Obj (const Obj &);
22 ~Obj ();
23 int var[2];
24};
25
26int foo (Obj arg)
27{
28 return arg.var[0] + arg.var[1];
29}
30
31Obj::Obj ()
32{
33 var[0] = 1;
34 var[1] = 2;
35}
36
37Obj::Obj (const Obj &obj)
38{
39 var[0] = obj.var[0];
40 var[1] = obj.var[1];
41}
42
43Obj::~Obj ()
44{
45
46}
47
48struct Derived : public Obj
49{
50 int other;
51};
52
53int blap (Derived arg)
54{
55 return foo (arg);
56}
57
58struct Container
59{
60 Obj obj;
61};
62
63int blip (Container arg)
64{
65 return foo (arg.obj);
66}
67
68Obj global_obj;
69Derived global_derived;
70Container global_container;
71
72int
73main ()
74{
75 int bar = foo (global_obj);
76 blap (global_derived);
77 blip (global_container);
78 return bar;
79}