blob: cdcff03b770b967bab701b017550e910c2a46de7 [file] [log] [blame]
Fariborz Jahanian88ec6102012-04-10 22:06:54 +00001// RUN: %clang_cc1 -x objective-c++ -fblocks -fms-extensions -rewrite-objc %s -o %t-rw.cpp
2// RUN: %clang_cc1 -fsyntax-only -fblocks -Wno-address-of-temporary -D"Class=void*" -D"id=void*" -D"SEL=void*" -D"__declspec(X)=" %t-rw.cpp
3// rdar://11203853
4
Fariborz Jahanianccda6802012-06-29 23:48:43 +00005typedef unsigned long size_t;
Fariborz Jahanianbe8d55c2012-06-29 18:27:08 +00006
Fariborz Jahanian88ec6102012-04-10 22:06:54 +00007void *sel_registerName(const char *);
8
Fariborz Jahanian88ec6102012-04-10 22:06:54 +00009@protocol P @end
10
11@interface NSMutableArray
12#if __has_feature(objc_subscripting)
13- (id)objectAtIndexedSubscript:(size_t)index;
14- (void)setObject:(id)object atIndexedSubscript:(size_t)index;
15#endif
16@end
17
18#if __has_feature(objc_subscripting)
19@interface XNSMutableArray
20- (id)objectAtIndexedSubscript:(size_t)index;
21- (void)setObject:(id)object atIndexedSubscript:(size_t)index;
22#endif
23@end
24
25@interface NSMutableDictionary
26- (id)objectForKeyedSubscript:(id)key;
27- (void)setObject:(id)object forKeyedSubscript:(id)key;
28@end
29
30@class NSString;
31
32int main() {
33 NSMutableArray<P> * array;
34 id oldObject = array[10];
35
36 array[10] = oldObject;
37
38 id unknown_array;
39 oldObject = unknown_array[1];
40
41 unknown_array[1] = oldObject;
42
43 NSMutableDictionary *dictionary;
44 NSString *key;
45 id newObject;
46 oldObject = dictionary[key];
47 dictionary[key] = newObject; // replace oldObject with newObject
48}
49