summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.other/ambig2.C
blob: 7f609687635e7dcdae16223363a538ee9d05041d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// { dg-do assemble  }
// Copyright (C) 1999, 2000 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 29 Aug 1999 <nathan@acm.org>

// We should spot all ambiguities

struct A {int m;};
struct B : A { int m; };
struct C : A { int m; };
struct D0 : virtual B, virtual C { int m; };
struct D1 : virtual B, C { int m; };
struct D2 : B, virtual C { int m; };
struct D3 : B, C { int m; };

void fn(D0 *d0, D1 *d1, D2 *d2, D3 *d3)
{
  A *a0 = d0;   // { dg-error "" } A is an ambiguous base
  A *a1 = d1;   // { dg-error "" } A is an ambiguous base
  A *a2 = d2;   // { dg-error "" } A is an ambiguous base
  A *a3 = d3;   // { dg-error "" } A is an ambiguous base
}