]> granicus.if.org Git - clang/commitdiff
Migrate, update and FileCheckize:
authorEric Christopher <echristo@apple.com>
Sat, 20 Aug 2011 01:04:49 +0000 (01:04 +0000)
committerEric Christopher <echristo@apple.com>
Sat, 20 Aug 2011 01:04:49 +0000 (01:04 +0000)
 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

test/CodeGenObjC/2010-02-01-utf16-with-null.m [new file with mode: 0644]
test/CodeGenObjC/2010-02-23-DbgInheritance.m [new file with mode: 0644]
test/CodeGenObjC/2010-03-17-StructRef.m [new file with mode: 0644]
test/CodeGenObjC/2011-03-08-IVarLookup.m [new file with mode: 0644]

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 (file)
index 0000000..1863984
--- /dev/null
@@ -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 (file)
index 0000000..7d31b30
--- /dev/null
@@ -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 (file)
index 0000000..ef82fbc
--- /dev/null
@@ -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 <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 (file)
index 0000000..56becd1
--- /dev/null
@@ -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