1 /* This testcase is part of GDB, the GNU debugger.
3 Copyright 2013-2022 Free Software Foundation, Inc.
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.
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.
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/>. */
28 A () : i (1), z (10) {}
32 class B
: public virtual A
<T
>
37 B () : i (2), common (200) {}
42 class C
: public virtual A
<int>
48 C () : i (3), c (30), common (300) {}
51 class BB
: public A
<int>
58 class CC
: public A
<int>
65 class Ambig
: public BB
, public CC
69 Ambig () : i (1000) {}
72 class D
: public Bint
, public C
78 D () : i (4), x (40) {}
85 printf ("" #X " = %d\n", (X)); \
89 #define SUM(X) sum += (X)
103 SUM (D::B
<int>::A
<int>::i
);
104 SUM (B
<int>::A
<int>::i
);
106 SUM (D::C::A
<int>::i
);
116 //SUM (D::Bint::A<int>::i);
117 SUM (Bint::A
<int>::i
);
118 // ambiguous: SUM (common);
119 SUM (B
<int>::common
);
122 // ambiguous: SUM (am.A<int>::i);