1// { dg-do run  }
2// { dg-options "" }
3
4#include <iostream>
5
6class foo {
7public:
8        foo(int i) {k = i;}
9protected:
10        int k;
11};
12
13class bar_1 : public foo {
14public:
15        bar_1(int i) : foo(i) {}
16        int get_k() {return k;}
17};
18
19class bar_2 : public foo {
20public:
21    bar_2(int i) : foo(i) {}
22        int get_k() {return k;}
23};
24
25class multiple : public bar_1, public bar_2 {
26public:
27        multiple(int i1, int i2) : bar_1(i1), bar_2(i2) {}
28        void print() {
29                std::cout << "bar_1::k -> " << bar_1::k << "\n";
30                std::cout << "bar_2::k -> " << bar_2::k << "\n";
31                std::cout << "bar_1::get_k() -> " << bar_1::get_k() << "\n";
32                std::cout << "bar_2::get_k() -> " << bar_2::get_k() << "\n";
33        }
34};
35
36int main() {
37        multiple m(1,2);
38        m.print();
39}
40
41
42