1/* Copyright 2015-2020 Free Software Foundation, Inc.
2
3   This program is free software; you can redistribute it and/or modify
4   it under the terms of the GNU General Public License as published by
5   the Free Software Foundation; either version 3 of the License, or
6   (at your option) any later version.
7
8   This program is distributed in the hope that it will be useful,
9   but WITHOUT ANY WARRANTY; without even the implied warranty of
10   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11   GNU General Public License for more details.
12
13   You should have received a copy of the GNU General Public License
14   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
15
16struct A
17{
18  A () : a_ (1) {}
19  int do_it (int amount) { return a_ + amount; }
20
21  int a_;
22};
23
24struct B
25{
26  B () : b_ (2) {}
27  int do_it (int amount) { return b_ - amount; }
28
29  int b_;
30};
31
32struct C
33{
34  C () : c_ (3) {}
35  int do_it (int amount) { return c_ * amount; }
36
37  int c_;
38};
39
40struct D : public A, B, C
41{
42  D () : d_ (4) {}
43
44  int d_;
45};
46
47int
48main ()
49{
50  D d;
51  int var = 1234;
52
53  var = d.A::do_it (1)
54    + d.B::do_it (2)
55    + d.C::do_it (3);		// break here
56
57  return 0;
58}
59