xref: /aosp_15_r20/external/clang/test/Rewriter/objc-modern-ivar-receiver-1.mm (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li// RUN: %clang_cc1 -E %s -o %t.mm
2*67e74705SXin Li// RUN: %clang_cc1 -x objective-c++ -fblocks -fms-extensions -rewrite-objc %t.mm -o - | FileCheck %s
3*67e74705SXin Li
4*67e74705SXin Livoid *sel_registerName(const char *);
5*67e74705SXin Li
6*67e74705SXin Li@interface NSMutableArray
7*67e74705SXin Li- (void)addObject:(id)addObject;
8*67e74705SXin Li@end
9*67e74705SXin Li
10*67e74705SXin Li@interface NSInvocation {
11*67e74705SXin Li@private
12*67e74705SXin Li    id _container;
13*67e74705SXin Li}
14*67e74705SXin Li+ (NSInvocation *)invocationWithMethodSignature;
15*67e74705SXin Li
16*67e74705SXin Li@end
17*67e74705SXin Li
18*67e74705SXin Li@implementation NSInvocation
19*67e74705SXin Li
20*67e74705SXin Li+ (NSInvocation *)invocationWithMethodSignature {
21*67e74705SXin Li    NSInvocation *newInv;
22*67e74705SXin Li    id obj = newInv->_container;
23*67e74705SXin Li    [newInv->_container addObject:0];
24*67e74705SXin Li   return 0;
25*67e74705SXin Li}
26*67e74705SXin Li@end
27*67e74705SXin Li
28*67e74705SXin Li// CHECK: id obj = (*(id *)((char *)newInv + OBJC_IVAR_$_NSInvocation$_container));
29*67e74705SXin Li// rdar://11076938
30*67e74705SXin Li// CHECK: struct _class_t *superclass;
31*67e74705SXin Li// CHECK: extern "C" __declspec(dllimport) struct objc_cache _objc_empty_cache;
32