|
|
|
digraph iCFG {
|
|
|
|
12 [label="12: DeclStmt \n n$9=_fun_NSString_stringWithUTF8String:(\"Mercedes-Benz\":char *) [line 18]\n n$10=_fun_NSString_stringWithUTF8String:(\"BMW\":char *) [line 18]\n n$11=_fun_NSString_stringWithUTF8String:(\"Porsche\":char *) [line 18]\n n$12=_fun_NSString_stringWithUTF8String:(\"Opel\":char *) [line 19]\n n$13=_fun_NSString_stringWithUTF8String:(\"Volkswagen\":char *) [line 19]\n n$14=_fun_NSString_stringWithUTF8String:(\"Audi\":char *) [line 19]\n n$15=_fun_NSArray_arrayWithObjects:count:(n$9:struct objc_object *,n$10:struct objc_object *,n$11:struct objc_object *,n$12:struct objc_object *,n$13:struct objc_object *,n$14:struct objc_object *,0:struct objc_object *) [line 18]\n *&germanCars:class NSArray *=n$15 [line 18]\n REMOVE_TEMPS(n$9,n$10,n$11,n$12,n$13,n$14,n$15); [line 18]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
12 -> 11 ;
|
|
|
|
11 [label="11: BinaryOperatorStmt: Assign \n n$7=*&germanCars:class NSArray * [line 20]\n n$8=_fun_NSArray_objectAtIndexedSubscript:(n$7:class NSArray *,3:unsigned long ) virtual [line 20]\n *&s:class NSString *=n$8 [line 20]\n REMOVE_TEMPS(n$7,n$8); [line 20]\n NULLIFY(&s,false); [line 20]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
11 -> 10 ;
|
|
|
|
10 [label="10: BinaryOperatorStmt: Assign \n n$5=*&germanCars:class NSArray * [line 22]\n n$6=_fun_NSArray_nextObject(n$5:class NSArray *) virtual [line 22]\n *&item:class NSString *=n$6 [line 22]\n REMOVE_TEMPS(n$5,n$6); [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
10 -> 4 ;
|
|
|
|
9 [label="9: Call _fun_NSLog \n n$3=_fun_NSString_stringWithUTF8String:(\"%@\":char *) [line 23]\n n$4=*&item:class NSString * [line 23]\n _fun_NSLog(n$3:struct objc_object *,n$4:class NSString *) [line 23]\n REMOVE_TEMPS(n$3,n$4); [line 23]\n NULLIFY(&item,false); [line 23]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
9 -> 8 ;
|
|
|
|
8 [label="8: BinaryOperatorStmt: Assign \n n$1=*&germanCars:class NSArray * [line 22]\n n$2=_fun_NSArray_nextObject(n$1:class NSArray *) virtual [line 22]\n *&item:class NSString *=n$2 [line 22]\n REMOVE_TEMPS(n$1,n$2); [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
8 -> 4 ;
|
|
|
|
7 [label="7: Prune (false branch) \n PRUNE(((n$0 != 0) == 0), false); [line 22]\n REMOVE_TEMPS(n$0); [line 22]\n " shape="invhouse"]
|
|
|
|
|
|
|
|
|
|
|
|
7 -> 3 ;
|
|
|
|
6 [label="6: Prune (true branch) \n PRUNE(((n$0 != 0) != 0), true); [line 22]\n REMOVE_TEMPS(n$0); [line 22]\n " shape="invhouse"]
|
|
|
|
|
|
|
|
|
|
|
|
6 -> 9 ;
|
|
|
|
5 [label="5: BinaryOperatorStmt: NE \n n$0=*&item:class NSString * [line 22]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
5 -> 6 ;
|
|
|
|
5 -> 7 ;
|
|
|
|
4 [label="4: + \n " ]
|
|
|
|
|
|
|
|
|
|
|
|
4 -> 5 ;
|
|
|
|
3 [label="3: Return Stmt \n NULLIFY(&germanCars,false); [line 26]\n NULLIFY(&item,false); [line 26]\n *&return:int =0 [line 26]\n APPLY_ABSTRACTION; [line 26]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
3 -> 2 ;
|
|
|
|
2 [label="2: Exit main \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
1 [label="1: Start main\nFormals: \nLocals: item:class NSString * germanCars:class NSArray * s:class NSString * \n DECLARE_LOCALS(&return,&item,&germanCars,&s); [line 14]\n NULLIFY(&germanCars,false); [line 14]\n NULLIFY(&item,false); [line 14]\n NULLIFY(&s,false); [line 14]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
1 -> 12 ;
|
|
|
|
}
|