summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/abi/covariant2.C
blob: 3231cc4c84c40502ef883a17623294ed0828ea26 (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
// { dg-do compile }

// Copyright (C) 2003 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 12 Dec 2003 <nathan@codesourcery.com>
// Origin: grigory@stl.sarov.ru

// PR c++/12881. ICE in thunk generation

struct c1 {};

struct c3 : virtual c1
{
    virtual c1* f6() {}
    int i;
};

struct c6 : virtual c3 { };

struct c7 : c3
{
    virtual c3* f6() {}
};

struct c24 : virtual c7
{
    virtual c6* f6();
};

c6* c24::f6() {  return 0; }

struct c31 : c24 {};