brintos

brintos / llvm-project-archived public Read only

0
0
Text · 944 B · 740e517 Raw
39 lines · plain
1// RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.ExprInspection \2// RUN:   -verify %s 2>&1 | FileCheck %s3 4// expected-no-diagnostics5 6void clang_analyzer_printState(void);7 8@interface NSObject {9}10+ (id)alloc;11+ (Class)class;12- (id)init;13- (Class)class;14@end15 16@interface Parent : NSObject17@end18@interface Child : Parent19@end20 21void foo(id A, id B);22 23@implementation Child24+ (void)test {25  id ClassAsID = [self class];26  id Object = [[ClassAsID alloc] init];27  Class TheSameClass = [Object class];28 29  clang_analyzer_printState();30  // CHECK:      "class_object_types": [31  // CHECK-NEXT:   { "symbol": "conj_$[[#]]{Class, LC[[#]], S[[#]], #[[#]]}", "dyn_type": "Child", "sub_classable": true },32  // CHECK-NEXT:   { "symbol": "conj_$[[#]]{Class, LC[[#]], S[[#]], #[[#]]}", "dyn_type": "Child", "sub_classable": true }33  // CHECK-NEXT: ]34 35  // Let's make sure that the information is not GC'd away.36  foo(ClassAsID, TheSameClass);37}38@end39