brintos

brintos / llvm-project-archived public Read only

0
0
Text · 30.4 KiB · 314bada Raw
806 lines · plain
1#import <Foundation/Foundation.h>2 3#if defined(__APPLE__)4#if defined(__arm__) || defined(__arm64__) || defined(__aarch64__)5#define IOS6#endif7#endif8 9#if defined(IOS)10#import <Foundation/NSGeometry.h>11#else12#import <Carbon/Carbon.h>13#endif14 15@interface MyClass : NSObject {16  int i;17  char c;18  float f;19}20 21- (id)initWithInt:(int)x andFloat:(float)y andChar:(char)z;22- (int)doIncrementByInt:(int)x;23 24@end25 26@interface MyOtherClass : MyClass {27  int i2;28  MyClass *backup;29}30- (id)initWithInt:(int)x andFloat:(float)y andChar:(char)z andOtherInt:(int)q;31 32@end33 34@implementation MyClass35 36- (id)initWithInt:(int)x andFloat:(float)y andChar:(char)z {37  self = [super init];38  if (self) {39    self->i = x;40    self->f = y;41    self->c = z;42  }43  return self;44}45 46- (int)doIncrementByInt:(int)x {47  self->i += x;48  return self->i;49}50 51@end52 53@implementation MyOtherClass54 55- (id)initWithInt:(int)x andFloat:(float)y andChar:(char)z andOtherInt:(int)q {56  self = [super initWithInt:x andFloat:y andChar:z];57  if (self) {58    self->i2 = q;59    self->backup = [[MyClass alloc] initWithInt:x andFloat:y andChar:z];60  }61  return self;62}63 64@end65 66@interface Atom : NSObject {67  float mass;68}69- (void)setMass:(float)newMass;70- (float)mass;71@end72 73@interface Molecule : NSObject {74  NSArray *atoms;75}76- (void)setAtoms:(NSArray *)newAtoms;77- (NSArray *)atoms;78@end79 80@implementation Atom81 82- (void)setMass:(float)newMass {83  mass = newMass;84}85- (float)mass {86  return mass;87}88 89@end90 91@implementation Molecule92 93- (void)setAtoms:(NSArray *)newAtoms {94  atoms = newAtoms;95}96- (NSArray *)atoms {97  return atoms;98}99@end100 101@interface My_KVO_Observer : NSObject102- (void)observeValueForKeyPath:(NSString *)keyPath103                      ofObject:(id)object104                        change:(NSDictionary *)change105                       context:(void *)context;106- (id)init;107- (void)dealloc;108@end109 110@implementation My_KVO_Observer111- (void)observeValueForKeyPath:(NSString *)keyPath112                      ofObject:(id)object113                        change:(NSDictionary *)change114                       context:(void *)context {115  // we do not really care about KVO'ing - do nothing116  return;117}118- (id)init {119  self = [super init];120  return self;121}122 123- (void)dealloc {124  [super dealloc];125}126@end127 128int main(int argc, const char *argv[]) {129 130  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];131 132  MyClass *object = [[MyClass alloc] initWithInt:1 andFloat:3.14 andChar:'E'];133 134  [object doIncrementByInt:3];135 136  MyOtherClass *object2 = [[MyOtherClass alloc] initWithInt:2137                                                   andFloat:6.28138                                                    andChar:'G'139                                                andOtherInt:-1];140 141  [object2 doIncrementByInt:3];142 143  NSNumber *num1 = [NSNumber numberWithInt:5];144  NSNumber *num2 = [NSNumber numberWithFloat:3.14];145  NSNumber *num3 = [NSNumber numberWithDouble:3.14];146  NSNumber *num4 = [NSNumber numberWithUnsignedLongLong:0xFFFFFFFFFFFFFFFE];147  NSNumber *num5 = [NSNumber numberWithChar:'A'];148  NSNumber *num6 = [NSNumber numberWithUnsignedLongLong:0xFF];149  NSNumber *num7 = [NSNumber numberWithLong:0x1E8480];150  NSNumber *num8_Y = [NSNumber numberWithBool:YES];151  NSNumber *num8_N = [NSNumber numberWithBool:NO];152  NSNumber *num9 = [NSNumber numberWithShort:0x1E8480];153  NSNumber *num_at1 = @12;154  NSNumber *num_at2 = @-12;155  NSNumber *num_at3 = @12.5;156  NSNumber *num_at4 = @-12.5;157  NSNumber *num_at5 = @'a';158  NSNumber *num_at6 = @42.123f;159  NSNumber *num_at7 = @43.123;160  NSNumber *num_at8 = @12345ll;161  NSNumber *num_at9 = @0xF1234567890abcdeull;162  NSNumber *num_at9b = @-1070935975400915746;163  NSNumber *num_at10 = @YES;164  NSNumber *num_at11 = @NO;165 166  NSDecimalNumber *decimal_number =167      [NSDecimalNumber decimalNumberWithMantissa:123456168                                        exponent:-10169                                      isNegative:NO];170  NSDecimalNumber *decimal_number_neg =171      [NSDecimalNumber decimalNumberWithMantissa:123456172                                        exponent:10173                                      isNegative:YES];174  NSDecimalNumber *decimal_one = [NSDecimalNumber one];175  NSDecimalNumber *decimal_zero = [NSDecimalNumber zero];176  NSDecimalNumber *decimal_nan = [NSDecimalNumber notANumber];177 178  NSString *str0 = [num6 stringValue];179 180  NSString *str1 =181      [NSString stringWithCString:"A rather short ASCII NSString object is here"182                         encoding:NSASCIIStringEncoding];183 184  NSString *str2 = [NSString185      stringWithUTF8String:"A rather short UTF8 NSString object is here"];186 187  NSString *str3 = @"A string made with the at sign is here";188 189  NSString *str4 = [NSString190      stringWithFormat:@"This is string number %ld right here", (long)4];191 192  NSRect ns_rect_4str = {{1, 1}, {5, 5}};193 194  NSString *str5 = NSStringFromRect(ns_rect_4str);195 196  NSString *str6 = [@"/usr/doc/README.1ST" pathExtension];197 198  const unichar myCharacters[] = {0x03C3, 'x', 'x'};199  NSString *str7 = [NSString200      stringWithCharacters:myCharacters201                    length:sizeof myCharacters / sizeof *myCharacters];202 203  NSString *str8 =204      [@"/usr/doc/"205       @"file."206       @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"207       @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"208       @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"209       @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"210       @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"211       @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"212       @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"213       @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"214       @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"215       @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"216       @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"217       @"ensionThisTime" pathExtension];218 219  const unichar myOtherCharacters[] = {220      'a', ' ', 'v', 'e', 'r', 'y', ' ', 'm', 'u', 'c', 'h',    ' ', 'b', 'o',221      'r', 'i', 'n', 'g', ' ', 't', 'a', 's', 'k', ' ', 't',    'o', ' ', 'w',222      'r', 'i', 't', 'e', ' ', 'a', ' ', 's', 't', 'r', 'i',    'n', 'g', ' ',223      't', 'h', 'i', 's', ' ', 'w', 'a', 'y', '!', '!', 0x03C3, 0};224  NSString *str9 = [NSString stringWithCharacters:myOtherCharacters225                                           length:sizeof myOtherCharacters /226                                                  sizeof *myOtherCharacters];227 228  const unichar myNextCharacters[] = {0x03C3, 0x0000};229 230  NSString *str10 = [NSString231      stringWithFormat:@"This is a Unicode string %S number %ld right here",232                       myNextCharacters, (long)4];233 234  NSString *str11 = NSStringFromClass([str10 class]);235 236  NSString *label1 = @"Process Name: ";237  NSString *label2 = @"Process Id: ";238  NSString *processName = [[NSProcessInfo processInfo] processName];239  NSString *processID = [NSString240      stringWithFormat:@"%d", [[NSProcessInfo processInfo] processIdentifier]];241  NSString *str12 = [NSString242      stringWithFormat:@"%@ %@ %@ %@", label1, processName, label2, processID];243 244  NSString *strA1 =245      [NSString stringWithCString:"A rather short ASCII NSString object is here"246                         encoding:NSASCIIStringEncoding];247 248  NSString *strA2 = [NSString249      stringWithUTF8String:"A rather short UTF8 NSString object is here"];250 251  NSString *strA3 = @"A string made with the at sign is here";252 253  NSString *strA4 = [NSString254      stringWithFormat:@"This is string number %ld right here", (long)4];255 256  NSString *strA5 = NSStringFromRect(ns_rect_4str);257 258  NSString *strA6 = [@"/usr/doc/README.1ST" pathExtension];259 260  NSString *strA7 = [NSString261      stringWithCharacters:myCharacters262                    length:sizeof myCharacters / sizeof *myCharacters];263 264  NSString *strA8 =265      [@"/usr/doc/"266       @"file."267       @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"268       @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"269       @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"270       @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"271       @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"272       @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"273       @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"274       @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"275       @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"276       @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"277       @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"278       @"ensionThisTime" pathExtension];279 280  NSString *strA9 = [NSString stringWithCharacters:myOtherCharacters281                                            length:sizeof myOtherCharacters /282                                                   sizeof *myOtherCharacters];283 284  NSString *strA10 = [NSString285      stringWithFormat:@"This is a Unicode string %S number %ld right here",286                       myNextCharacters, (long)4];287 288  NSString *strA11 = NSStringFromClass([str10 class]);289 290  NSString *strA12 = [NSString291      stringWithFormat:@"%@ %@ %@ %@", label1, processName, label2, processID];292 293  NSString *strB1 =294      [NSString stringWithCString:"A rather short ASCII NSString object is here"295                         encoding:NSASCIIStringEncoding];296 297  NSString *strB2 = [NSString298      stringWithUTF8String:"A rather short UTF8 NSString object is here"];299 300  NSString *strB3 = @"A string made with the at sign is here";301 302  NSString *strB4 = [NSString303      stringWithFormat:@"This is string number %ld right here", (long)4];304 305  NSString *strB5 = NSStringFromRect(ns_rect_4str);306 307  NSString *strB6 = [@"/usr/doc/README.1ST" pathExtension];308 309  NSString *strB7 = [NSString310      stringWithCharacters:myCharacters311                    length:sizeof myCharacters / sizeof *myCharacters];312 313  NSString *strB8 =314      [@"/usr/doc/"315       @"file."316       @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"317       @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"318       @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"319       @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"320       @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"321       @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"322       @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"323       @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"324       @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"325       @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"326       @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"327       @"ensionThisTime" pathExtension];328 329  NSString *strB9 = [NSString stringWithCharacters:myOtherCharacters330                                            length:sizeof myOtherCharacters /331                                                   sizeof *myOtherCharacters];332 333  NSString *strB10 = [NSString334      stringWithFormat:@"This is a Unicode string %S number %ld right here",335                       myNextCharacters, (long)4];336 337  NSString *strB11 = NSStringFromClass([str10 class]);338 339  NSString *strB12 = [NSString340      stringWithFormat:@"%@ %@ %@ %@", label1, processName, label2, processID];341 342  NSString *strC11 = NSStringFromClass([str10 class]);343 344  NSString *strC12 = [NSString345      stringWithFormat:@"%@ %@ %@ %@", label1, processName, label2, processID];346 347  NSString *strC1 =348      [NSString stringWithCString:"A rather short ASCII NSString object is here"349                         encoding:NSASCIIStringEncoding];350 351  NSString *strC2 = [NSString352      stringWithUTF8String:"A rather short UTF8 NSString object is here"];353 354  NSString *strC3 = @"A string made with the at sign is here";355 356  NSString *strC4 = [NSString357      stringWithFormat:@"This is string number %ld right here", (long)4];358 359  NSString *strC5 = NSStringFromRect(ns_rect_4str);360 361  NSString *strC6 = [@"/usr/doc/README.1ST" pathExtension];362 363  NSString *strC7 = [NSString364      stringWithCharacters:myCharacters365                    length:sizeof myCharacters / sizeof *myCharacters];366 367  NSString *strC8 =368      [@"/usr/doc/"369       @"file."370       @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"371       @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"372       @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"373       @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"374       @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"375       @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"376       @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"377       @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"378       @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"379       @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"380       @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"381       @"ensionThisTime" pathExtension];382 383  NSString *strC9 = [NSString stringWithCharacters:myOtherCharacters384                                            length:sizeof myOtherCharacters /385                                                   sizeof *myOtherCharacters];386 387  NSString *strC10 = [NSString388      stringWithFormat:@"This is a Unicode string %S number %ld right here",389                       myNextCharacters, (long)4];390 391  NSString *strD11 = NSStringFromClass([str10 class]);392 393  NSString *strD12 = [NSString394      stringWithFormat:@"%@ %@ %@ %@", label1, processName, label2, processID];395 396  NSString *eAcute = [NSString stringWithFormat:@"%C", 0x00E9];397  NSString *randomHaziChar = [NSString stringWithFormat:@"%C", 0x9DC5];398  NSString *japanese = @"色は匂へど散りぬるを";399  NSString *italian = @"L'Italia è una Repubblica democratica, fondata sul "400                      @"lavoro. La sovranità appartiene al popolo, che la "401                      @"esercita nelle forme e nei limiti della Costituzione.";402  NSString *french =403      @"Que veut cette horde d'esclaves, De traîtres, de rois conjurés?";404  NSString *german = @"Über-Ich und aus den Ansprüchen der sozialen Umwelt";405 406  void *data_set[3] = {str1, str2, str3};407 408  NSString *hebrew = [NSString stringWithString:@"לילה טוב"];409 410  NSArray *newArray = [[NSMutableArray alloc] init];411  [newArray addObject:str1];412  [newArray addObject:str2];413  [newArray addObject:str3];414  [newArray addObject:str4];415  [newArray addObject:str5];416  [newArray addObject:str6];417  [newArray addObject:str7];418  [newArray addObject:str8];419  [newArray addObject:str9];420  [newArray addObject:str10];421  [newArray addObject:str11];422  [newArray addObject:str12];423  [newArray addObject:strA1];424  [newArray addObject:strA2];425  [newArray addObject:strA3];426  [newArray addObject:strA4];427  [newArray addObject:strA5];428  [newArray addObject:strA6];429  [newArray addObject:strA7];430  [newArray addObject:strA8];431  [newArray addObject:strA9];432  [newArray addObject:strA10];433  [newArray addObject:strA11];434  [newArray addObject:strA12];435  [newArray addObject:strB1];436  [newArray addObject:strB2];437  [newArray addObject:strB3];438  [newArray addObject:strB4];439  [newArray addObject:strB5];440  [newArray addObject:strB6];441  [newArray addObject:strB7];442  [newArray addObject:strB8];443  [newArray addObject:strB9];444  [newArray addObject:strB10];445  [newArray addObject:strB11];446  [newArray addObject:strB12];447  [newArray addObject:strC1];448  [newArray addObject:strC2];449  [newArray addObject:strC3];450  [newArray addObject:strC4];451  [newArray addObject:strC5];452  [newArray addObject:strC6];453  [newArray addObject:strC7];454  [newArray addObject:strC8];455  [newArray addObject:strC9];456  [newArray addObject:strC10];457  [newArray addObject:strC11];458  [newArray addObject:strC12];459  [newArray addObject:strD11];460  [newArray addObject:strD12];461 462  NSDictionary *newDictionary = [[NSDictionary alloc] initWithObjects:newArray463                                                              forKeys:newArray];464  NSDictionary *newMutableDictionary = [[NSMutableDictionary alloc] init];465  [newMutableDictionary setObject:@"foo" forKey:@"bar0"];466  [newMutableDictionary setObject:@"foo" forKey:@"bar1"];467  [newMutableDictionary setObject:@"foo" forKey:@"bar2"];468  [newMutableDictionary setObject:@"foo" forKey:@"bar3"];469  [newMutableDictionary setObject:@"foo" forKey:@"bar4"];470  [newMutableDictionary setObject:@"foo" forKey:@"bar5"];471  [newMutableDictionary setObject:@"foo" forKey:@"bar6"];472  [newMutableDictionary setObject:@"foo" forKey:@"bar7"];473  [newMutableDictionary setObject:@"foo" forKey:@"bar8"];474  [newMutableDictionary setObject:@"foo" forKey:@"bar9"];475  [newMutableDictionary setObject:@"foo" forKey:@"bar10"];476  [newMutableDictionary setObject:@"foo" forKey:@"bar11"];477  [newMutableDictionary setObject:@"foo" forKey:@"bar12"];478  [newMutableDictionary setObject:@"foo" forKey:@"bar13"];479  [newMutableDictionary setObject:@"foo" forKey:@"bar14"];480  [newMutableDictionary setObject:@"foo" forKey:@"bar15"];481  [newMutableDictionary setObject:@"foo" forKey:@"bar16"];482  [newMutableDictionary setObject:@"foo" forKey:@"bar17"];483  [newMutableDictionary setObject:@"foo" forKey:@"bar18"];484  [newMutableDictionary setObject:@"foo" forKey:@"bar19"];485  [newMutableDictionary setObject:@"foo" forKey:@"bar20"];486 487  /* Copying an NSMutableDictionary makes a different member of the488     class cluster, so let's also make a copy of this one: */489  NSMutableDictionary *copyDictionary = [newMutableDictionary copy];490 491  CFMutableDictionaryRef newMutableDictionaryRef = CFDictionaryCreateMutableCopy(kCFAllocatorDefault, 0, newMutableDictionary);492 493  id cfKeys[4] = {@"foo", @"bar", @"baz", @"quux"};494  id cfValues[4] = {@"foo", @"bar", @"baz", @"quux"};495  NSDictionary *nsDictionary = CFBridgingRelease(496      CFDictionaryCreate(nil, (void *)cfKeys, (void *)cfValues, 2, nil, nil));497  NSDictionary *nscfDictionary = CFBridgingRelease(498      CFDictionaryCreate(nil, (void *)cfKeys, (void *)cfValues, 4, nil, nil));499  CFDictionaryRef cfDictionaryRef = (__bridge CFDictionaryRef)nsDictionary;500 501  NSAttributedString *attrString =502      [[NSAttributedString alloc] initWithString:@"hello world from foo"503                                      attributes:newDictionary];504  [attrString isEqual:nil];505  NSAttributedString *mutableAttrString =506      [[NSMutableAttributedString alloc] initWithString:@"hello world from foo"507                                             attributes:newDictionary];508  [mutableAttrString isEqual:nil];509 510  NSString *mutableString = [[NSMutableString alloc] initWithString:@"foo"];511  [mutableString512      insertString:513          @"foo said this string needs to be very long so much longer than "514          @"whatever other string has been seen ever before by anyone of the "515          @"mankind that of course this is still not long enough given what "516          @"foo our friend foo our lovely dearly friend foo desired of us so i "517          @"am adding more stuff here for the sake of it and for the joy of "518          @"our friend who is named guess what just foo. hence, dear friend "519          @"foo, stay safe, your string is now  long enough to accommodate "520          @"your testing need and I will make sure that if not we extend it "521          @"with even more fuzzy random meaningless words pasted one after the "522          @"other from a long tiresome friday evening spent working in my "523          @"office. my office mate went home but I am still randomly typing "524          @"just for the fun of seeing what happens of the length of a Mutable "525          @"String in Cocoa if it goes beyond one byte.. so be it, dear "526           atIndex:0];527 528  NSString *mutableGetConst =529      [NSString stringWithCString:[mutableString cString]];530 531  [mutableGetConst length];532 533  NSData *immutableData = [[NSData alloc] initWithBytes:"HELLO" length:5];534  NSData *mutableData = [[NSMutableData alloc] initWithBytes:"NODATA" length:6];535 536  // No-copy versions of NSData initializers use NSConcreteData if over 2^16537  // elements are specified.538  unsigned concreteLength = 100000;539  void *zeroes1 = calloc(1, concreteLength);540  // initWithBytesNoCopy takes ownership of the buffer.541  NSData *concreteData = [[NSData alloc] initWithBytesNoCopy:zeroes1542                                                      length:concreteLength];543  void *zeroes2 = calloc(1, concreteLength);544  NSMutableData *concreteMutableData =545      [[NSMutableData alloc] initWithBytesNoCopy:zeroes2 length:concreteLength];546 547  [mutableData appendBytes:"MOREDATA" length:8];548 549  [immutableData length];550  [mutableData length];551 552  NSSet *nsset = [[NSSet alloc] initWithObjects:str1, str2, str3, nil];553  NSSet *nsmutableset =554      [[NSMutableSet alloc] initWithObjects:str1, str2, str3, nil];555  [nsmutableset addObject:str4];556  NSSet *nscfSet =557      CFBridgingRelease(CFSetCreate(nil, (void *)cfValues, 2, nil));558  CFSetRef cfSetRef = (__bridge CFSetRef)nscfSet;559 560  CFDataRef data_ref =561      CFDataCreate(kCFAllocatorDefault, [immutableData bytes], 5);562 563  CFMutableDataRef mutable_data_ref =564      CFDataCreateMutable(kCFAllocatorDefault, 8);565  CFDataAppendBytes(mutable_data_ref, [mutableData bytes], 5);566 567  CFMutableStringRef mutable_string_ref = CFStringCreateMutable(NULL, 100);568  CFStringAppend(mutable_string_ref, CFSTR("Wish ya knew"));569 570  CFStringRef cfstring_ref = CFSTR("HELLO WORLD");571 572  CFArrayRef cfarray_ref = CFArrayCreate(NULL, data_set, 3, NULL);573  CFMutableArrayRef mutable_array_ref = CFArrayCreateMutable(NULL, 16, NULL);574 575  CFArraySetValueAtIndex(mutable_array_ref, 0, str1);576  CFArraySetValueAtIndex(mutable_array_ref, 1, str2);577  CFArraySetValueAtIndex(mutable_array_ref, 2, str3);578  CFArraySetValueAtIndex(mutable_array_ref, 3, str4);579  CFArraySetValueAtIndex(mutable_array_ref, 0, str5); // replacing value at 0!!580  CFArraySetValueAtIndex(mutable_array_ref, 4, str6);581  CFArraySetValueAtIndex(mutable_array_ref, 5, str7);582  CFArraySetValueAtIndex(mutable_array_ref, 6, str8);583  CFArraySetValueAtIndex(mutable_array_ref, 7, str9);584  CFArraySetValueAtIndex(mutable_array_ref, 8, str10);585  CFArraySetValueAtIndex(mutable_array_ref, 9, str11);586  CFArraySetValueAtIndex(mutable_array_ref, 10, str12);587 588  CFBinaryHeapRef binheap_ref =589      CFBinaryHeapCreate(NULL, 15, &kCFStringBinaryHeapCallBacks, NULL);590  CFBinaryHeapAddValue(binheap_ref, str1);591  CFBinaryHeapAddValue(binheap_ref, str2);592  CFBinaryHeapAddValue(binheap_ref, str3);593  CFBinaryHeapAddValue(binheap_ref, str4);594  CFBinaryHeapAddValue(binheap_ref, str5);595  CFBinaryHeapAddValue(binheap_ref, str6);596  CFBinaryHeapAddValue(binheap_ref, str7);597  CFBinaryHeapAddValue(binheap_ref, str8);598  CFBinaryHeapAddValue(binheap_ref, str9);599  CFBinaryHeapAddValue(binheap_ref, str10);600  CFBinaryHeapAddValue(binheap_ref, str11);601  CFBinaryHeapAddValue(binheap_ref, str12);602  CFBinaryHeapAddValue(binheap_ref, strA1);603  CFBinaryHeapAddValue(binheap_ref, strB1);604  CFBinaryHeapAddValue(binheap_ref, strC1);605  CFBinaryHeapAddValue(binheap_ref, strA11);606  CFBinaryHeapAddValue(binheap_ref, strB11);607  CFBinaryHeapAddValue(binheap_ref, strC11);608  CFBinaryHeapAddValue(binheap_ref, strB12);609  CFBinaryHeapAddValue(binheap_ref, strC12);610  CFBinaryHeapAddValue(binheap_ref, strA12);611 612  CFURLRef cfurl_ref =613      CFURLCreateWithString(NULL, CFSTR("http://www.foo.bar/"), NULL);614  CFURLRef cfchildurl_ref =615      CFURLCreateWithString(NULL, CFSTR("page.html"), cfurl_ref);616  CFURLRef cfgchildurl_ref =617      CFURLCreateWithString(NULL, CFSTR("?whatever"), cfchildurl_ref);618 619  NSDictionary *error_userInfo = @{@"a" : @1, @"b" : @2};620  NSError *nserror = [[NSError alloc] initWithDomain:@"Foobar"621                                                code:-1234622                                            userInfo:error_userInfo];623  NSError **nserrorptr = &nserror;624 625  NSBundle *bundle_string = [[NSBundle alloc]626      initWithPath:@"/System/Library/Frameworks/Accelerate.framework"];627  NSBundle *bundle_url = [[NSBundle alloc]628      initWithURL:[[NSURL alloc]629                      initWithString:@"file://localhost/System/Library/"630                                     @"Frameworks/Foundation.framework"]];631 632  NSBundle *main_bundle = [NSBundle mainBundle];633 634  NSArray *bundles = [NSBundle allBundles];635 636  NSURL *nsurl0;637 638  for (NSBundle *bundle in bundles) {639    nsurl0 = [bundle bundleURL];640  }641 642  NSException *except0 = [[NSException alloc] initWithName:@"TheGuyWhoHasNoName"643                                                    reason:@"First"644                                                  userInfo:nil];645  NSException *except1 =646      [[NSException alloc] initWithName:@"TheGuyWhoHasNoName~1"647                                 reason:@"Second"648                               userInfo:nil];649  NSException *except2 =650      [[NSException alloc] initWithName:@"TheGuyWhoHasNoName`2"651                                 reason:@"Third"652                               userInfo:nil];653  NSException *except3 =654      [[NSException alloc] initWithName:@"TheGuyWhoHasNoName/3"655                                 reason:@"Fourth"656                               userInfo:nil];657 658  NSURL *nsurl = [[NSURL alloc] initWithString:@"http://www.foo.bar"];659  NSURL *nsurl2 = [NSURL URLWithString:@"page.html" relativeToURL:nsurl];660  NSURL *nsurl3 = [NSURL URLWithString:@"?whatever" relativeToURL:nsurl2];661 662  NSDate *date1 = [NSDate663      dateWithTimeIntervalSince1970:133890 * 60 * 60]; // 6pm April 10, 1985 GMT664  NSDate *date2 =665      [NSDate dateWithNaturalLanguageString:@"12am January 1, 2011"];666  NSDate *date3 = [NSDate date];667  NSDate *date4 = [NSDate dateWithTimeIntervalSince1970:24 * 60 * 60];668  NSDate *date5 =669      [NSDate dateWithTimeIntervalSinceReferenceDate:670                  floor([[NSDate date] timeIntervalSinceReferenceDate])];671 672  NSDate *date_1970_minus_06 = [NSDate dateWithTimeIntervalSince1970:-0.6];673  NSDate *date_1970_minus_05 = [NSDate dateWithTimeIntervalSince1970:-0.5];674  NSDate *date_1970_minus_04 = [NSDate dateWithTimeIntervalSince1970:-0.4];675 676  NSDate *date_1970_plus_06 = [NSDate dateWithTimeIntervalSince1970:0.6];677  NSDate *date_1970_plus_05 = [NSDate dateWithTimeIntervalSince1970:0.5];678  NSDate *date_1970_plus_04 = [NSDate dateWithTimeIntervalSince1970:0.4];679 680  NSDate *distant_past = [NSDate distantPast];681  NSDate *distant_future = [NSDate distantFuture];682 683  CFAbsoluteTime date1_abs = CFDateGetAbsoluteTime(date1);684  CFAbsoluteTime date2_abs = CFDateGetAbsoluteTime(date2);685  CFAbsoluteTime date3_abs = CFDateGetAbsoluteTime(date3);686  CFAbsoluteTime date4_abs = CFDateGetAbsoluteTime(date4);687  CFAbsoluteTime date5_abs = CFDateGetAbsoluteTime(date5);688 689  NSIndexSet *iset1 =690      [[NSIndexSet alloc] initWithIndexesInRange:NSMakeRange(1, 4)];691  NSIndexSet *iset2 =692      [[NSIndexSet alloc] initWithIndexesInRange:NSMakeRange(1, 512)];693 694  NSMutableIndexSet *imset = [[NSMutableIndexSet alloc] init];695  [imset addIndex:1936];696  [imset addIndex:7];697  [imset addIndex:9];698  [imset addIndex:11];699  [imset addIndex:24];700  [imset addIndex:41];701  [imset addIndex:58];702  [imset addIndex:61];703  [imset addIndex:62];704  [imset addIndex:63];705 706  CFTimeZoneRef cupertino = CFTimeZoneCreateWithName(NULL, CFSTR("PST"), YES);707  CFTimeZoneRef home =708      CFTimeZoneCreateWithName(NULL, CFSTR("Europe/Rome"), YES);709  CFTimeZoneRef europe = CFTimeZoneCreateWithName(NULL, CFSTR("CET"), YES);710 711  NSTimeZone *cupertino_ns = [NSTimeZone timeZoneWithAbbreviation:@"PST"];712  NSTimeZone *home_ns = [NSTimeZone timeZoneWithName:@"Europe/Rome"];713  NSTimeZone *europe_ns = [NSTimeZone timeZoneWithAbbreviation:@"CET"];714 715  CFGregorianUnits cf_greg_units = {1, 3, 5, 12, 5, 7};716  CFGregorianDate cf_greg_date =717      CFAbsoluteTimeGetGregorianDate(CFDateGetAbsoluteTime(date1), NULL);718  CFRange cf_range = {4, 4};719  NSPoint ns_point = {4, 4};720  NSRange ns_range = {4, 4};721 722  NSRect ns_rect = {{1, 1}, {5, 5}};723  NSRect *ns_rect_ptr = &ns_rect;724  NSRectArray ns_rect_arr = &ns_rect;725  NSSize ns_size = {5, 7};726  NSSize *ns_size_ptr = &ns_size;727 728  CGSize cg_size = {1, 6};729  CGPoint cg_point = {2, 7};730  CGRect cg_rect = {{1, 2}, {7, 7}};731 732#ifndef IOS733  RGBColor rgb_color = {3, 56, 35};734  RGBColor *rgb_color_ptr = &rgb_color;735#endif736 737  Rect rect = {4, 8, 4, 7};738  Rect *rect_ptr = &rect;739 740  Point point = {7, 12};741  Point *point_ptr = &point;742 743#ifndef IOS744  HIPoint hi_point = {7, 12};745  HIRect hi_rect = {{3, 5}, {4, 6}};746#endif747 748  SEL foo_selector = @selector(foo_selector_impl);749 750  CFMutableBitVectorRef mut_bv = CFBitVectorCreateMutable(NULL, 64);751  CFBitVectorSetCount(mut_bv, 50);752  CFBitVectorSetBitAtIndex(mut_bv, 0, 1);753  CFBitVectorSetBitAtIndex(mut_bv, 1, 1);754  CFBitVectorSetBitAtIndex(mut_bv, 2, 1);755  CFBitVectorSetBitAtIndex(mut_bv, 5, 1);756  CFBitVectorSetBitAtIndex(mut_bv, 6, 1);757  CFBitVectorSetBitAtIndex(mut_bv, 8, 1);758  CFBitVectorSetBitAtIndex(mut_bv, 10, 1);759  CFBitVectorSetBitAtIndex(mut_bv, 11, 1);760  CFBitVectorSetBitAtIndex(mut_bv, 16, 1);761  CFBitVectorSetBitAtIndex(mut_bv, 17, 1);762  CFBitVectorSetBitAtIndex(mut_bv, 19, 1);763  CFBitVectorSetBitAtIndex(mut_bv, 20, 1);764  CFBitVectorSetBitAtIndex(mut_bv, 22, 1);765  CFBitVectorSetBitAtIndex(mut_bv, 24, 1);766  CFBitVectorSetBitAtIndex(mut_bv, 28, 1);767  CFBitVectorSetBitAtIndex(mut_bv, 29, 1);768  CFBitVectorSetBitAtIndex(mut_bv, 30, 1);769  CFBitVectorSetBitAtIndex(mut_bv, 30, 1);770  CFBitVectorSetBitAtIndex(mut_bv, 31, 1);771  CFBitVectorSetBitAtIndex(mut_bv, 34, 1);772  CFBitVectorSetBitAtIndex(mut_bv, 35, 1);773  CFBitVectorSetBitAtIndex(mut_bv, 37, 1);774  CFBitVectorSetBitAtIndex(mut_bv, 39, 1);775  CFBitVectorSetBitAtIndex(mut_bv, 40, 1);776  CFBitVectorSetBitAtIndex(mut_bv, 41, 1);777  CFBitVectorSetBitAtIndex(mut_bv, 43, 1);778  CFBitVectorSetBitAtIndex(mut_bv, 47, 1);779 780  Molecule *molecule = [Molecule new];781 782  Class myclass = NSClassFromString(@"NSValue");783  Class myclass2 = [str0 class];784  Class myclass3 = [molecule class];785  Class myclass4 = NSClassFromString(@"NSMutableArray");786  Class myclass5 = [nil class];787 788  NSArray *components = @[ @"usr", @"blah", @"stuff" ];789  NSString *path = [NSString pathWithComponents:components];790 791  [molecule addObserver:[My_KVO_Observer new]792             forKeyPath:@"atoms"793                options:0794                context:NULL]; // Set break point at this line.795  [newMutableDictionary addObserver:[My_KVO_Observer new]796                         forKeyPath:@"weirdKeyToKVO"797                            options:NSKeyValueObservingOptionNew798                            context:NULL];799 800  [molecule setAtoms:nil];801  [molecule setAtoms:[NSMutableArray new]];802 803  [pool drain];804  return 0;805}806