diff options
Diffstat (limited to 'test/FrontendObjC/2009-04-28-bitfield-vs-vbc.m')
-rw-r--r-- | test/FrontendObjC/2009-04-28-bitfield-vs-vbc.m | 127 |
1 files changed, 0 insertions, 127 deletions
diff --git a/test/FrontendObjC/2009-04-28-bitfield-vs-vbc.m b/test/FrontendObjC/2009-04-28-bitfield-vs-vbc.m deleted file mode 100644 index 8306fcc..0000000 --- a/test/FrontendObjC/2009-04-28-bitfield-vs-vbc.m +++ /dev/null @@ -1,127 +0,0 @@ -// RUN: %llvmgcc -S -x objective-c -m32 %s -o %t -// This used to crash, 6831493. -#include <stdlib.h> - -struct s0 { - double x; -}; - -@interface I2 { - struct s0 _iv1; -} -@end - -@interface I3 : I2 { - unsigned int _iv2 :1; - unsigned : 0; - unsigned int _iv3 : 3; -} -@end - -@interface I4 : I3 { - char _iv4; -} -@end - -@interface I5 : I4 { - char _iv5; - int _iv6; - int _iv7; -} - -@property int P1; -@end - -@implementation I2 -@end - -@implementation I3 -@end - -@implementation I4 -@end - -@interface I5 () -@property int P2; -@end - -#if 0 -int g2 = sizeof(I2); -int g3 = sizeof(I3); -int g4 = sizeof(I4); -int g5_0 = sizeof(I5); -#endif - -@implementation I5 -#ifdef __x86_64 -@synthesize P1 = _MadeUpName; -@synthesize P2 = _AnotherMadeUpName; -#else -@synthesize P1 = _iv6; -@synthesize P2 = _iv7; -#endif -@end - -#if 0 -int g5_1 = sizeof(I5); -#endif - -@interface T0_I0 { - double iv_A_0; - char iv_A_1; -} -@end - -@interface T0_I1 : T0_I0 { - char iv_B_0; -} -@end - -@interface T0_I2 : T0_I1 { - char iv_C_0; -} -@end - -#if 0 -int g6 = sizeof(T0_I0); -int g7 = sizeof(T0_I1); -int g8 = sizeof(T0_I2); -#endif - -@implementation T0_I0 @end -@implementation T0_I1 @end -@implementation T0_I2 @end - -void f0(I2*i2,I3*i3,I4*i4,I5*i5,T0_I0*t0_i0,T0_I1*t0_i1,T0_I2*t0_i2) { -} - -// Thomas Wang's ui32 hash. -unsigned hash_ui32_to_ui32(unsigned a) { - a = (a ^ 61) ^ (a >> 16); - a = a + (a << 3); - a = a ^ (a >> 4); - a = a * 0x27d4eb2d; - a = a ^ (a >> 15); - return a; -} - -unsigned char hash_ui32_to_ui8(unsigned ui) { - ui = hash_ui32_to_ui32(ui); - ui ^= ui>>8; - ui ^= ui>>8; - ui ^= ui>>8; - return (unsigned char) ui; -} - -void *init() { - unsigned i, N = 1024; - unsigned char *p = malloc(N); - for (i=0; i != N; ++i) - p[i] = hash_ui32_to_ui8(i); - return p; -} - -int main(){ - void *p = init(); - f0(p,p,p,p,p,p,p); -} |