offsetof.cpp revision a5728872c7702ddd09537c95bc3cbd20e1f2fb09
1// RUN: %clang_cc1 -fsyntax-only -verify %s -Winvalid-offsetof
2
3struct NonPOD {
4  virtual void f();
5  int m;
6};
7
8struct P {
9  NonPOD fieldThatPointsToANonPODType;
10};
11
12void f() {
13  int i = __builtin_offsetof(P, fieldThatPointsToANonPODType.m); // expected-warning{{offset of on non-POD type 'struct P'}}
14}
15
16struct Base { int x; };
17struct Derived : Base { int y; };
18int o = __builtin_offsetof(Derived, x); // expected-warning{{offset of on non-POD type}}
19
20const int o2 = sizeof(__builtin_offsetof(Derived, x));
21