Home | History | Annotate | Line # | Download | only in gdb.compile
compile-cplus-inherit.cc revision 1.1.1.1
      1 /* Copyright 2015-2019 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 
     16 struct A
     17 {
     18   A () : a_ (1) {}
     19   int do_it (int amount) { return a_ + amount; }
     20 
     21   int a_;
     22 };
     23 
     24 struct B
     25 {
     26   B () : b_ (2) {}
     27   int do_it (int amount) { return b_ - amount; }
     28 
     29   int b_;
     30 };
     31 
     32 struct C
     33 {
     34   C () : c_ (3) {}
     35   int do_it (int amount) { return c_ * amount; }
     36 
     37   int c_;
     38 };
     39 
     40 struct D : public A, B, C
     41 {
     42   D () : d_ (4) {}
     43 
     44   int d_;
     45 };
     46 
     47 int
     48 main ()
     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