brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · 33d1c68 Raw
86 lines · plain
1 2struct SB {3  virtual void meth();4};5 6struct SS : public SB {7  void submeth() {8    this->meth();9    SB::meth();10  }11};12 13@interface IB14-(void)meth;15+(void)ClsMeth;16@end17 18@interface IS : IB19-(void)submeth;20+(void)ClsMeth;21@end22 23@implementation IS24-(void)submeth {25  [self meth];26  [super meth];27}28+(void)ClsMeth {29  [super ClsMeth];30}31@end32 33void foo(SS *ss, IS* is, Class cls) {34  ss->meth();35  [is meth];36  [IB ClsMeth];37  [cls ClsMeth];38}39 40@interface NSObject41+(id)alloc;42-(id)init;43@end44 45@interface Test : NSObject46@end47 48void test2() {49  id o = [[Test alloc] init];50}51 52@interface Test2 : NSObject53@property (assign) id someProp;54@end55 56void test3(Test2 *o) {57  id v = o.someProp;58}59 60// RUN: c-index-test -cursor-at=%s:8:11 \61// RUN:              -cursor-at=%s:9:11 \62// RUN:              -cursor-at=%s:25:11 \63// RUN:              -cursor-at=%s:26:11 \64// RUN:              -cursor-at=%s:29:11 \65// RUN:              -cursor-at=%s:34:9 \66// RUN:              -cursor-at=%s:35:9 \67// RUN:              -cursor-at=%s:36:9 \68// RUN:              -cursor-at=%s:37:9 \69// RUN:              -cursor-at=%s:49:26 \70// RUN:              -cursor-at=%s:57:12 \71// RUN:       %s | FileCheck %s72 73// CHECK:     8:11 MemberRefExpr=meth:3:16 {{.*}} Dynamic-call74// CHECK-NOT: 9:9 {{.*}} Dynamic-call75// CHECK:     25:3 ObjCMessageExpr=meth:14:8 {{.*}} Dynamic-call Receiver-type=ObjCObjectPointer76// CHECK-NOT: 26:3 {{.*}} Dynamic-call77// CHECK-NOT: 29:3 {{.*}} Dynamic-call78// CHECK:     29:3 {{.*}} Receiver-type=ObjCInterface79// CHECK:     34:7 MemberRefExpr=meth:3:16 {{.*}} Dynamic-call Receiver-type=Pointer80// CHECK:     35:3 ObjCMessageExpr=meth:14:8 {{.*}} Dynamic-call Receiver-type=ObjCObjectPointer81// CHECK-NOT: 36:3 {{.*}} Dynamic-call82// CHECK:     36:3 {{.*}} Receiver-type=ObjCInterface83// CHECK:     37:3 ObjCMessageExpr=ClsMeth:15:8 {{.*}} Dynamic-call Receiver-type=ObjCClass84// CHECK-NOT: 49:10 {{.*}} Dynamic-call85// CHECK:     57:12 MemberRefExpr=someProp:53:23 {{.*}} Dynamic-call  Receiver-type=ObjCObjectPointer86