Test case for misaligned ivars.

main
Niels Grewe 9 years ago
parent 4afd2d4241
commit 8c79eb836c

@ -52,8 +52,32 @@ typedef int v4si __attribute__ ((vector_size (16)));
} }
@end @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) int main(void)
{ {
[[Vector alloc] permute]; [[Vector alloc] permute];
[[Foo new] check]; [[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));
} }

Loading…
Cancel
Save