Mercurial > hg > CbC > CbC_llvm
diff clang/test/ARCMT/objcmt-boxing.m.result @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/clang/test/ARCMT/objcmt-boxing.m.result Thu Feb 13 15:10:13 2020 +0900 @@ -0,0 +1,107 @@ +// RUN: rm -rf %t +// RUN: %clang_cc1 -fobjc-arc -objcmt-migrate-literals -objcmt-migrate-subscripting -mt-migrate-directory %t %s -x objective-c++ -verify +// RUN: c-arcmt-test -mt-migrate-directory %t | arcmt-test -verify-transformed-files %s.result +// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -x objective-c++ %s.result + +#define YES __objc_yes +#define NO __objc_no + +typedef long NSInteger; +typedef unsigned long NSUInteger; +typedef signed char BOOL; +#define nil ((void*) 0) + +#define INT_MIN (-__INT_MAX__ -1) + +@interface NSObject ++ (id)alloc; +@end + +@interface NSNumber : NSObject +@end + +@interface NSNumber (NSNumberCreation) +- (id)initWithChar:(char)value; +- (id)initWithUnsignedChar:(unsigned char)value; +- (id)initWithShort:(short)value; +- (id)initWithUnsignedShort:(unsigned short)value; +- (id)initWithInt:(int)value; +- (id)initWithUnsignedInt:(unsigned int)value; +- (id)initWithLong:(long)value; +- (id)initWithUnsignedLong:(unsigned long)value; +- (id)initWithLongLong:(long long)value; +- (id)initWithUnsignedLongLong:(unsigned long long)value; +- (id)initWithFloat:(float)value; +- (id)initWithDouble:(double)value; +- (id)initWithBool:(BOOL)value; +- (id)initWithInteger:(NSInteger)value; +- (id)initWithUnsignedInteger:(NSUInteger)value; + ++ (NSNumber *)numberWithChar:(char)value; ++ (NSNumber *)numberWithUnsignedChar:(unsigned char)value; ++ (NSNumber *)numberWithShort:(short)value; ++ (NSNumber *)numberWithUnsignedShort:(unsigned short)value; ++ (NSNumber *)numberWithInt:(int)value; ++ (NSNumber *)numberWithUnsignedInt:(unsigned int)value; ++ (NSNumber *)numberWithLong:(long)value; ++ (NSNumber *)numberWithUnsignedLong:(unsigned long)value; ++ (NSNumber *)numberWithLongLong:(long long)value; ++ (NSNumber *)numberWithUnsignedLongLong:(unsigned long long)value; ++ (NSNumber *)numberWithFloat:(float)value; ++ (NSNumber *)numberWithDouble:(double)value; ++ (NSNumber *)numberWithBool:(BOOL)value; ++ (NSNumber *)numberWithInteger:(NSInteger)value; ++ (NSNumber *)numberWithUnsignedInteger:(NSUInteger)value; +@end + +enum { + NSASCIIStringEncoding = 1, + NSUTF8StringEncoding = 4, + NSUnicodeStringEncoding = 10 +}; +typedef NSUInteger NSStringEncoding; + +@interface NSString : NSObject +@end + +@interface NSString (NSStringExtensionMethods) ++ (id)stringWithUTF8String:(const char *)nullTerminatedCString; ++ (id)stringWithCString:(const char *)cString encoding:(NSStringEncoding)enc; ++ (id)stringWithCString:(const char *)bytes; +- (instancetype)initWithUTF8String:(const char *)nullTerminatedCString; +@end + +enum MyEnm { + ME_foo +}; + +void foo() { + @INT_MIN; + bool cppb; + @(cppb); + MyEnm myenum; + @(myenum); + @(ME_foo); + [NSNumber numberWithDouble:cppb]; // expected-warning {{converting to boxing syntax requires casting 'bool' to 'double'}} +} + +void boxString() { + NSString *s = @"box"; + const char *cstr1; + char *cstr2; + s = @(cstr1); + s = @(cstr2); + s = @(cstr1); + s = @(cstr1); + s = [NSString stringWithCString:cstr1 encoding: NSUnicodeStringEncoding]; + NSStringEncoding encode; + s = [NSString stringWithCString:cstr1 encoding:encode]; + s = @(cstr1); + + static const char strarr[] = "coolbox"; + s = @(strarr); + // rdar://18080352 + const char *utf8Bytes = "blah"; + NSString *string1 = @(utf8Bytes); + NSString *string2 = @(utf8Bytes); +}