1 // 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 5 typedef unsigned long size_t; 6 7 void *sel_registerName(const char *); 8 9 @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 32 int 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 50