From: Eric Christopher Date: Sat, 20 Aug 2011 01:04:49 +0000 (+0000) Subject: Migrate, update and FileCheckize: X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=89a179b6560b2c3cf157249d18386b33f3a4ef2d;p=clang Migrate, update and FileCheckize: 2010-02-01-utf16-with-null.m 2010-02-23-DbgInheritance.m 2010-03-17-StructRef.m 2011-03-08-IVarLookup.m from llvm/test/FrontendObjC. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138180 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/CodeGenObjC/2010-02-01-utf16-with-null.m b/test/CodeGenObjC/2010-02-01-utf16-with-null.m new file mode 100644 index 0000000000..1863984c21 --- /dev/null +++ b/test/CodeGenObjC/2010-02-01-utf16-with-null.m @@ -0,0 +1,5 @@ +// RUN: %clang_cc1 -emit-llvm %s -o - | FileCheck %s +// rdar://7589850 + +// CHECK-NOT: __ustring +void *P = @"good\0bye"; diff --git a/test/CodeGenObjC/2010-02-23-DbgInheritance.m b/test/CodeGenObjC/2010-02-23-DbgInheritance.m new file mode 100644 index 0000000000..7d31b30cce --- /dev/null +++ b/test/CodeGenObjC/2010-02-23-DbgInheritance.m @@ -0,0 +1,10 @@ +// RUN: %clang_cc1 -emit-llvm %s -g -o - | FileCheck %s +// CHECK-NOT: DW_TAG_member +// Interface P should not be a member of interface I in debug info. +@interface P +@end + +@interface I : P +@end + +void fn(I *iptr) {} diff --git a/test/CodeGenObjC/2010-03-17-StructRef.m b/test/CodeGenObjC/2010-03-17-StructRef.m new file mode 100644 index 0000000000..ef82fbccda --- /dev/null +++ b/test/CodeGenObjC/2010-03-17-StructRef.m @@ -0,0 +1,43 @@ +// RUN: %clang_cc1 %s -emit-llvm -triple x86_64-apple-darwin -o - | FileCheck %s +// Bitfield references must not touch memory outside of the enclosing +// struct. Radar 7639995 +typedef signed char BOOL; +@protocol NSObject +- (id)init; +@end +@interface NSObject {} +@end +@interface IMAVChatParticipant : NSObject { + int _ardRole; + int _state; + int _avRelayStatus; + int _chatEndedReason; + int _chatError; + unsigned _sendingAudio:1; + unsigned _sendingVideo:1; + unsigned _sendingAuxVideo:1; + unsigned _audioMuted:1; + unsigned _videoPaused:1; + unsigned _networkStalled:1; + unsigned _isInitiator:1; + unsigned _isAOLInterop:1; + unsigned _isRecording:1; + unsigned _isUsingICE:1; +} +@end +@implementation IMAVChatParticipant +- (id) init { + self = [super init]; + if ( self ) { + BOOL blah = (BOOL)1; + // We're expecting these three bitfield assignments will generate i8 stores. + _sendingAudio = (BOOL)1; + _isUsingICE = (BOOL)1; + _isUsingICE = blah; + // CHECK: store i8 + // CHECK: store i8 + // CHECK: store i8 + } + return self; +} +@end diff --git a/test/CodeGenObjC/2011-03-08-IVarLookup.m b/test/CodeGenObjC/2011-03-08-IVarLookup.m new file mode 100644 index 0000000000..56becd1bc7 --- /dev/null +++ b/test/CodeGenObjC/2011-03-08-IVarLookup.m @@ -0,0 +1,32 @@ +// RUN: %clang -S -emit-llvm -m64 -fobjc-abi-version=2 %s -o /dev/null +// XFAIL: * +// XTARGET: darwin + +typedef unsigned int UInt_t; + +@interface A +{ +@protected + UInt_t _f1; +} +@end + +@interface B : A { } +@end + +@interface A () +@property (assign) UInt_t f1; +@end + +@interface B () +@property (assign) int x; +@end + +@implementation B +@synthesize x; +- (id) init +{ + _f1 = 0; + return self; +} +@end