llvm/clang/test/SemaObjC/at-defs.m

// RUN: %clang_cc1 -triple i386-unknown-unknown -fobjc-runtime=macosx-fragile-10.5 %s -fsyntax-only

@interface Test {
	double a;
}
@end
@implementation Test
@end
@interface TestObject : Test {
@public
  float bar;
  int foo;
}
@end
@implementation TestObject
@end
struct wibble {
  @defs(TestObject)
};

extern void *malloc(__typeof__(sizeof(0)));
extern int printf(const char *, ...);

int main(void)
{
	TestObject * a = (id)malloc(100);
	a->foo = 12;
	printf("12: %d\n", ((struct wibble*)a)->foo);
	printf("%d: %d\n", ((char*)&(((struct wibble*)a)->foo)) - (char*)a, ((char*)&(a->foo)) - (char*)a);
	return 0;
}