aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/abi/offsetof.C
blob: 5a66511f2bdf7a7b844f65ea6efaed3550d062bd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Test that we can refer to the address of a base member of a null pointer
// to get its offset.  The standard says that offsetof shall not be used on
// non-POD classes, but there seems to be no such restriction on the common
// implementation thereof.

// Yes, this is bad, naughty, evil code.  But it seems to be well-formed.

// { dg-do run }

struct A { int i; };

struct B: public A {
  virtual void f ();
};

struct C: public B { };

int main ()
{
  return ((__SIZE_TYPE__) &((C*)0)->i) != sizeof(void*);
}