xref: /aosp_15_r20/external/clang/test/SemaObjC/at-defs.m (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li// RUN: %clang_cc1 -triple i386-unknown-unknown -fobjc-runtime=macosx-fragile-10.5 %s -fsyntax-only
2*67e74705SXin Li
3*67e74705SXin Li@interface Test {
4*67e74705SXin Li	double a;
5*67e74705SXin Li}
6*67e74705SXin Li@end
7*67e74705SXin Li@implementation Test
8*67e74705SXin Li@end
9*67e74705SXin Li@interface TestObject : Test {
10*67e74705SXin Li@public
11*67e74705SXin Li  float bar;
12*67e74705SXin Li  int foo;
13*67e74705SXin Li}
14*67e74705SXin Li@end
15*67e74705SXin Li@implementation TestObject
16*67e74705SXin Li@end
17*67e74705SXin Listruct wibble {
18*67e74705SXin Li  @defs(TestObject)
19*67e74705SXin Li};
20*67e74705SXin Li
21*67e74705SXin Li
22*67e74705SXin Liint main(void)
23*67e74705SXin Li{
24*67e74705SXin Li	TestObject * a = (id)malloc(100);
25*67e74705SXin Li	a->foo = 12;
26*67e74705SXin Li	printf("12: %d\n", ((struct wibble*)a)->foo);
27*67e74705SXin Li	printf("%d: %d\n", ((char*)&(((struct wibble*)a)->foo)) - (char*)a, ((char*)&(a->foo)) - (char*)a);
28*67e74705SXin Li	return 0;
29*67e74705SXin Li}
30