From 222e2a7620e6520ffaf4fc4e69d79c18da31542e Mon Sep 17 00:00:00 2001 From: "Zancanaro; Carlo" Date: Mon, 24 Sep 2012 09:58:17 +1000 Subject: Add the clang library to the repo (with some of my changes, too). --- .../CodeGenObjCXX/objc-container-subscripting-1.mm | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 clang/test/CodeGenObjCXX/objc-container-subscripting-1.mm (limited to 'clang/test/CodeGenObjCXX/objc-container-subscripting-1.mm') diff --git a/clang/test/CodeGenObjCXX/objc-container-subscripting-1.mm b/clang/test/CodeGenObjCXX/objc-container-subscripting-1.mm new file mode 100644 index 0000000..c0dd0f8 --- /dev/null +++ b/clang/test/CodeGenObjCXX/objc-container-subscripting-1.mm @@ -0,0 +1,50 @@ +// RUN: %clang_cc1 -emit-llvm -triple x86_64-apple-darwin -o - %s | FileCheck %s + +typedef unsigned int size_t; +@protocol P @end +@protocol NSCopying @end + +@interface NSMutableArray +- (id)objectAtIndexedSubscript:(size_t)index; +- (void)setObject:(id)object atIndexedSubscript:(size_t)index; +@end + +struct S { + operator unsigned int (); + operator id (); +}; + +@interface NSMutableDictionary +- (id)objectForKeyedSubscript:(id)key; +- (void)setObject:(id)object forKeyedSubscript:(id)key; +@end + +int main() { + NSMutableArray

* array; + S s; + id oldObject = array[(int)s]; + + NSMutableDictionary

*dict; + dict[(id)s] = oldObject; + oldObject = dict[(id)s]; + +} + +template void test2(NSMutableArray *a) { + a[10] = 0; +} +template void test2(NSMutableArray*); +// CHECK: define weak_odr void @_Z5test2IiEvP14NSMutableArray +// CHECK: @objc_msgSend +// CHECK: ret void + + +template void test3(NSMutableArray *a) { + a[sizeof(T)] = 0; +} + +template void test3(NSMutableArray*); +// CHECK: define weak_odr void @_Z5test3IiEvP14NSMutableArray +// CHECK: @objc_msgSend +// CHECK: ret void + -- cgit v1.2.3