diff --git a/Test/alignTest.m b/Test/alignTest.m index b0f8deb..b33f760 100644 --- a/Test/alignTest.m +++ b/Test/alignTest.m @@ -52,8 +52,32 @@ typedef int v4si __attribute__ ((vector_size (16))); } @end +#if __has_attribute(objc_root_class) +__attribute__((objc_root_class)) +#endif +@interface StringLikeTest +{ + Class isa; + char* c_string; + int len; +} +@end + +@implementation StringLikeTest ++ (Class)class +{ + return self; +} +@end + int main(void) { [[Vector alloc] permute]; [[Foo new] check]; + + Ivar v_isa = class_getInstanceVariable([StringLikeTest class], "isa"); + Ivar v_c_string = class_getInstanceVariable([StringLikeTest class], "c_string"); + Ivar v_len = class_getInstanceVariable([StringLikeTest class], "len"); + assert(ivar_getOffset(v_isa) < ivar_getOffset(v_c_string)); + assert(ivar_getOffset(v_c_string) < ivar_getOffset(v_len)); }