summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.other/using8.C
blob: 2700bb27cd6cd5a58bd2ee85aa1f1676cf1553a8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// { dg-do assemble  }

// Copyright (C) 2000 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 14 Nov 2000 <nathan@codesourcery.com>

// We rejected using decls bringing in functions from a base which would hide a
// nested class of the same name, but only if we had no functions by that name
// already. Also, we failed to find that using declaration during lookup. Also
// we failed to reject using declarations which matched the constructor name.

struct A
{
  int f ();
  void D ();
};

struct A2 {
  typedef int f;
};

struct B : A 
{
  using A::f;
  struct f {};
};

struct C : A 
{
  using A::f;
  int f (int);
  struct f {};
};

void foo (B *bp, C* cp)
{
  bp->f ();
  cp->f ();
}

struct D : A
{
  using A::D;   // { dg-error "" } names constructor
};