1*67e74705SXin Li // RUN: %clang_cc1 -triple x86_64-apple-darwin10.0.0 -fsyntax-only -std=c++11 -verify %s -Winvalid-offsetof 2*67e74705SXin Li 3*67e74705SXin Li struct NonPOD { 4*67e74705SXin Li virtual void f(); 5*67e74705SXin Li int m; 6*67e74705SXin Li }; 7*67e74705SXin Li 8*67e74705SXin Li struct P { 9*67e74705SXin Li NonPOD fieldThatPointsToANonPODType; 10*67e74705SXin Li }; 11*67e74705SXin Li f()12*67e74705SXin Livoid f() { 13*67e74705SXin Li int i = __builtin_offsetof(P, fieldThatPointsToANonPODType.m); // expected-warning{{offset of on non-standard-layout type 'P'}} 14*67e74705SXin Li } 15*67e74705SXin Li 16*67e74705SXin Li struct StandardLayout { 17*67e74705SXin Li int x; StandardLayoutStandardLayout18*67e74705SXin Li StandardLayout() {} 19*67e74705SXin Li }; 20*67e74705SXin Li int o = __builtin_offsetof(StandardLayout, x); // no-warning 21