test_objc_inlining_option.m revision 57330eed3fbe530cb05996e4a346cc5fc217c0d9
1// RUN: %clang_cc1 -analyze -analyzer-checker=core -analyzer-ipa=dynamic-bifurcate -analyzer-config objc-inlining=false -verify %s
2
3typedef signed char BOOL;
4typedef struct objc_class *Class;
5typedef struct objc_object {
6    Class isa;
7} *id;
8@protocol NSObject  - (BOOL)isEqual:(id)object; @end
9@interface NSObject <NSObject> {}
10+(id)alloc;
11-(id)init;
12-(id)autorelease;
13-(id)copy;
14- (Class)class;
15-(id)retain;
16@end
17
18// Vanila: ObjC class method is called by name.
19@interface MyParent : NSObject
20+ (int)getInt;
21@end
22@interface MyClass : MyParent
23+ (int)getInt;
24@end
25@implementation MyClass
26+ (int)testClassMethodByName {
27    int y = [MyClass getInt];
28    return 5/y; // no-warning
29}
30+ (int)getInt {
31  return 0;
32}
33@end