summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/init/empty1.C
blob: bba179f987b3227142d148b0e2abaa1f1d7aca3c (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
// { dg-do run }

// Copyright (C) 2001 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 3 Sept 2001 <nathan@codesourcery.com>

// Bug 4203. We were bit copying empty bases including the
// padding. Which clobbers whatever they overlay.

class EmptyBase0 {};
class EmptyBase1 : public EmptyBase0 {};
class Base1
{
public:
unsigned int t_;
Base1(unsigned int t) : t_(t) {}
};

class PEPE : public Base1, public EmptyBase1
{
public:
PEPE(unsigned int t)
  : Base1(t), EmptyBase1(EmptyBase1()) {}
};

int main()
{
  PEPE pepe(0xff);
  
  return pepe.t_ != 255;
}