From 1e6247c872deaefcb4ef284900be0e3a8e2dccfe Mon Sep 17 00:00:00 2001 From: Cristiano Calcagno Date: Fri, 4 Sep 2015 14:09:39 -0200 Subject: [PATCH] [frontend] generate fresh ids separately for different procedures in the cfg Summary: each procedure has a different scope, so we can restart the fresh name generator and have more stable instructions in the cfg, that don't change when other procedures are changed --- infer/src/clang/cFrontend.ml | 3 + infer/src/harness/inhabit.ml | 3 + infer/src/java/jFrontend.ml | 3 + infer/src/llvm/lTrans.ml | 7 +- .../c/frontend/c_prototype/prototype.dot | 2 +- .../codetoanalyze/c/frontend/comma/comma.dot | 8 +- .../c/frontend/conditional_operator/cond2.dot | 22 +- .../conditional_operator.dot | 50 ++-- .../conditional_operator/function_call.dot | 6 +- .../conditional_operator/if_short_circuit.dot | 86 +++---- .../conditional_operator/int_negation.dot | 22 +- .../conditional_operator/member_access.dot | 6 +- .../c/frontend/gotostmt/goto_ex.dot | 232 +++++++++--------- .../initialization/struct_initlistexpr.dot | 2 +- .../c/frontend/switchstmt/switch.dot | 214 ++++++++-------- .../cpp/frontend/types/functions.dot | 12 +- .../cpp/frontend/types/methods.dot | 16 +- .../errors/field_superclass/SuperExample.dot | 4 +- .../AutoreleaseExample.dot | 30 +-- .../RetainReleaseExample2.dot | 26 +- .../TollBridgeExample.dot | 2 +- .../memory_leaks_benchmark/arc_methods.dot | 8 +- .../errors/npe/Nonnull_attribute_example.dot | 18 +- .../frontend/assertions/NSAssert_example.dot | 24 +- .../objc/frontend/block/block.dot | 2 +- .../objc/frontend/block/dispatch.dot | 6 +- .../objc/frontend/block/retain_cycle.dot | 14 +- .../objc/frontend/boxing/dict_literal.dot | 2 +- .../objc/frontend/boxing/string_literal.dot | 2 +- .../frontend/property/PropertyAttributes.dot | 8 +- .../objc/frontend/types/void_call.dot | 18 +- .../objc/frontend/vardecl/initlist.dot | 6 +- 32 files changed, 439 insertions(+), 425 deletions(-) diff --git a/infer/src/clang/cFrontend.ml b/infer/src/clang/cFrontend.ml index b8594a3cc..bf944352a 100644 --- a/infer/src/clang/cFrontend.ml +++ b/infer/src/clang/cFrontend.ml @@ -21,6 +21,9 @@ open CGen_trans (* Translate one global declaration *) let rec translate_one_declaration tenv cg cfg namespace parent_dec dec = + (* each procedure has different scope: start names from id 0 *) + Ident.reset_name_generator (); + let ns_suffix = Ast_utils.namespace_to_string namespace in let info = Clang_ast_proj.get_decl_tuple dec in CLocation.update_curr_file info; diff --git a/infer/src/harness/inhabit.ml b/infer/src/harness/inhabit.ml index bf5b7f26a..47fe582f2 100644 --- a/infer/src/harness/inhabit.ml +++ b/infer/src/harness/inhabit.ml @@ -303,6 +303,9 @@ let add_harness_to_cg harness_name harness_cfg harness_node loc cg tenv = (** create and fill the appropriate nodes and add them to the harness cfg. also add the harness * proc to the cg *) let setup_harness_cfg harness_name harness_cfg env proc_file_map tenv = + (* each procedure has different scope: start names from id 0 *) + Ident.reset_name_generator (); + (* TMP: pick an arbitrary cg and cfg to piggyback the harness code onto *) (* TODO (t4707171): create our own fresh cfg / cg instead *) let (source_dir, cg) = diff --git a/infer/src/java/jFrontend.ml b/infer/src/java/jFrontend.ml index 4d6d5f98d..5b53ae7f7 100644 --- a/infer/src/java/jFrontend.ml +++ b/infer/src/java/jFrontend.ml @@ -160,6 +160,9 @@ let create_icfg never_null_matcher linereader program icfg source_file cn node = begin Javalib.m_iter (JTrans.create_local_procdesc program linereader cfg tenv node) node; Javalib.m_iter (fun m -> + (* each procedure has different scope: start names from id 0 *) + Ident.reset_name_generator (); + let method_kind = JTransType.get_method_kind m in match m with | Javalib.ConcreteMethod cm -> diff --git a/infer/src/llvm/lTrans.ml b/infer/src/llvm/lTrans.ml index d6a346b9e..b3c23a160 100644 --- a/infer/src/llvm/lTrans.ml +++ b/infer/src/llvm/lTrans.ml @@ -113,7 +113,12 @@ let callees_of_function_def : LAst.function_def -> Procname.t list = function (* Update CFG and call graph with new function definition *) let trans_function_def (cfg : Cfg.cfg) (cg: Cg.t) (metadata : LAst.metadata_map) - (func_def : LAst.function_def) : unit = match func_def with + (func_def : LAst.function_def) : unit = + + (* each procedure has different scope: start names from id 0 *) + Ident.reset_name_generator (); + + match func_def with FunctionDef (func_name, ret_tp_opt, params, annotated_instrs) -> let proc_name = procname_of_function_variable func_name in let ret_type = diff --git a/infer/tests/codetoanalyze/c/frontend/c_prototype/prototype.dot b/infer/tests/codetoanalyze/c/frontend/c_prototype/prototype.dot index 555b3a335..b24956c5b 100644 --- a/infer/tests/codetoanalyze/c/frontend/c_prototype/prototype.dot +++ b/infer/tests/codetoanalyze/c/frontend/c_prototype/prototype.dot @@ -1,5 +1,5 @@ digraph iCFG { -7 [label="7: Return Stmt \n n$1=*&a:int [line 26]\n n$2=*&b:int [line 26]\n *&return:int =(n$1 + n$2) [line 26]\n REMOVE_TEMPS(n$1,n$2); [line 26]\n NULLIFY(&a,false); [line 26]\n NULLIFY(&b,false); [line 26]\n APPLY_ABSTRACTION; [line 26]\n " shape="box"] +7 [label="7: Return Stmt \n n$0=*&a:int [line 26]\n n$1=*&b:int [line 26]\n *&return:int =(n$0 + n$1) [line 26]\n REMOVE_TEMPS(n$0,n$1); [line 26]\n NULLIFY(&a,false); [line 26]\n NULLIFY(&b,false); [line 26]\n APPLY_ABSTRACTION; [line 26]\n " shape="box"] 7 -> 6 ; diff --git a/infer/tests/codetoanalyze/c/frontend/comma/comma.dot b/infer/tests/codetoanalyze/c/frontend/comma/comma.dot index df7bb4736..5be14d300 100644 --- a/infer/tests/codetoanalyze/c/frontend/comma/comma.dot +++ b/infer/tests/codetoanalyze/c/frontend/comma/comma.dot @@ -11,11 +11,11 @@ digraph iCFG { 17 -> 16 ; -16 [label="16: DeclStmt \n n$13=*&a:int [line 24]\n *&a:int =(n$13 * 2) [line 24]\n n$14=*&a:int [line 24]\n n$15=*&a:int [line 24]\n *&a:int =(n$15 + 1) [line 24]\n *&b:int =(7 * n$15) [line 24]\n n$16=*&b:int [line 24]\n n$17=*&a:int [line 24]\n n$18=*&b:int [line 24]\n *&c:int =((n$17 + n$18) + 9) [line 24]\n n$19=*&c:int [line 24]\n n$20=*&c:int [line 24]\n *&d:int =n$20 [line 24]\n REMOVE_TEMPS(n$13,n$14,n$15,n$16,n$17,n$18,n$19,n$20); [line 24]\n NULLIFY(&a,false); [line 24]\n NULLIFY(&b,false); [line 24]\n NULLIFY(&c,false); [line 24]\n " shape="box"] +16 [label="16: DeclStmt \n n$1=*&a:int [line 24]\n *&a:int =(n$1 * 2) [line 24]\n n$2=*&a:int [line 24]\n n$3=*&a:int [line 24]\n *&a:int =(n$3 + 1) [line 24]\n *&b:int =(7 * n$3) [line 24]\n n$4=*&b:int [line 24]\n n$5=*&a:int [line 24]\n n$6=*&b:int [line 24]\n *&c:int =((n$5 + n$6) + 9) [line 24]\n n$7=*&c:int [line 24]\n n$8=*&c:int [line 24]\n *&d:int =n$8 [line 24]\n REMOVE_TEMPS(n$1,n$2,n$3,n$4,n$5,n$6,n$7,n$8); [line 24]\n NULLIFY(&a,false); [line 24]\n NULLIFY(&b,false); [line 24]\n NULLIFY(&c,false); [line 24]\n " shape="box"] 16 -> 15 ; -15 [label="15: Return Stmt \n n$12=*&d:int [line 25]\n *&return:int =n$12 [line 25]\n REMOVE_TEMPS(n$12); [line 25]\n NULLIFY(&d,false); [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] +15 [label="15: Return Stmt \n n$0=*&d:int [line 25]\n *&return:int =n$0 [line 25]\n REMOVE_TEMPS(n$0); [line 25]\n NULLIFY(&d,false); [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] 15 -> 14 ; @@ -34,11 +34,11 @@ digraph iCFG { 11 -> 10 ; -10 [label="10: DeclStmt \n n$6=*&a:int [line 18]\n *&a:int =(n$6 * 2) [line 18]\n n$7=*&a:int [line 18]\n n$8=*&a:int [line 18]\n *&a:int =(n$8 + 1) [line 18]\n *&b:int =(7 * n$8) [line 18]\n n$9=*&b:int [line 18]\n n$10=*&a:int [line 18]\n n$11=*&b:int [line 18]\n *&d:int =((n$10 + n$11) + 9) [line 18]\n REMOVE_TEMPS(n$6,n$7,n$8,n$9,n$10,n$11); [line 18]\n NULLIFY(&a,false); [line 18]\n NULLIFY(&b,false); [line 18]\n " shape="box"] +10 [label="10: DeclStmt \n n$1=*&a:int [line 18]\n *&a:int =(n$1 * 2) [line 18]\n n$2=*&a:int [line 18]\n n$3=*&a:int [line 18]\n *&a:int =(n$3 + 1) [line 18]\n *&b:int =(7 * n$3) [line 18]\n n$4=*&b:int [line 18]\n n$5=*&a:int [line 18]\n n$6=*&b:int [line 18]\n *&d:int =((n$5 + n$6) + 9) [line 18]\n REMOVE_TEMPS(n$1,n$2,n$3,n$4,n$5,n$6); [line 18]\n NULLIFY(&a,false); [line 18]\n NULLIFY(&b,false); [line 18]\n " shape="box"] 10 -> 9 ; -9 [label="9: Return Stmt \n n$5=*&d:int [line 19]\n *&return:int =n$5 [line 19]\n REMOVE_TEMPS(n$5); [line 19]\n NULLIFY(&d,false); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] +9 [label="9: Return Stmt \n n$0=*&d:int [line 19]\n *&return:int =n$0 [line 19]\n REMOVE_TEMPS(n$0); [line 19]\n NULLIFY(&d,false); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] 9 -> 8 ; diff --git a/infer/tests/codetoanalyze/c/frontend/conditional_operator/cond2.dot b/infer/tests/codetoanalyze/c/frontend/conditional_operator/cond2.dot index 4834f1e9a..19ade5e13 100644 --- a/infer/tests/codetoanalyze/c/frontend/conditional_operator/cond2.dot +++ b/infer/tests/codetoanalyze/c/frontend/conditional_operator/cond2.dot @@ -1,26 +1,26 @@ digraph iCFG { -57 [label="57: BinaryOperatorStmt: Assign \n n$14=*&SIL_temp_conditional___51:int [line 23]\n NULLIFY(&SIL_temp_conditional___51,true); [line 23]\n *&y:int =n$14 [line 23]\n REMOVE_TEMPS(n$14); [line 23]\n NULLIFY(&y,false); [line 23]\n " shape="box"] +57 [label="57: BinaryOperatorStmt: Assign \n n$6=*&SIL_temp_conditional___51:int [line 23]\n NULLIFY(&SIL_temp_conditional___51,true); [line 23]\n *&y:int =n$6 [line 23]\n REMOVE_TEMPS(n$6); [line 23]\n NULLIFY(&y,false); [line 23]\n " shape="box"] 57 -> 42 ; 57 -> 43 ; -56 [label="56: UnaryOperator \n n$13=*&x:int [line 23]\n *&x:int =(n$13 - 1) [line 23]\n DECLARE_LOCALS(&SIL_temp_conditional___51); [line 23]\n *&SIL_temp_conditional___51:int =n$13 [line 23]\n REMOVE_TEMPS(n$13); [line 23]\n NULLIFY(&x,false); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] +56 [label="56: UnaryOperator \n n$5=*&x:int [line 23]\n *&x:int =(n$5 - 1) [line 23]\n DECLARE_LOCALS(&SIL_temp_conditional___51); [line 23]\n *&SIL_temp_conditional___51:int =n$5 [line 23]\n REMOVE_TEMPS(n$5); [line 23]\n NULLIFY(&x,false); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] 56 -> 51 ; -55 [label="55: UnaryOperator \n n$12=*&x:int [line 23]\n *&x:int =(n$12 + 1) [line 23]\n DECLARE_LOCALS(&SIL_temp_conditional___51); [line 23]\n *&SIL_temp_conditional___51:int =(n$12 + 1) [line 23]\n REMOVE_TEMPS(n$12); [line 23]\n NULLIFY(&x,false); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] +55 [label="55: UnaryOperator \n n$4=*&x:int [line 23]\n *&x:int =(n$4 + 1) [line 23]\n DECLARE_LOCALS(&SIL_temp_conditional___51); [line 23]\n *&SIL_temp_conditional___51:int =(n$4 + 1) [line 23]\n REMOVE_TEMPS(n$4); [line 23]\n NULLIFY(&x,false); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] 55 -> 51 ; -54 [label="54: Prune (false branch) \n PRUNE(((n$11 > 1) == 0), false); [line 23]\n REMOVE_TEMPS(n$11); [line 23]\n " shape="invhouse"] +54 [label="54: Prune (false branch) \n PRUNE(((n$3 > 1) == 0), false); [line 23]\n REMOVE_TEMPS(n$3); [line 23]\n " shape="invhouse"] 54 -> 56 ; -53 [label="53: Prune (true branch) \n PRUNE(((n$11 > 1) != 0), true); [line 23]\n REMOVE_TEMPS(n$11); [line 23]\n " shape="invhouse"] +53 [label="53: Prune (true branch) \n PRUNE(((n$3 > 1) != 0), true); [line 23]\n REMOVE_TEMPS(n$3); [line 23]\n " shape="invhouse"] 53 -> 55 ; -52 [label="52: BinaryOperatorStmt: GT \n *&x:int =1 [line 23]\n n$11=*&x:int [line 23]\n " shape="box"] +52 [label="52: BinaryOperatorStmt: GT \n *&x:int =1 [line 23]\n n$3=*&x:int [line 23]\n " shape="box"] 52 -> 53 ; @@ -33,19 +33,19 @@ digraph iCFG { 50 -> 40 ; -49 [label="49: BinaryOperatorStmt: Assign \n *&x:int =1 [line 24]\n n$9=*&x:int [line 24]\n DECLARE_LOCALS(&SIL_temp_conditional___40); [line 24]\n *&SIL_temp_conditional___40:int =n$9 [line 24]\n REMOVE_TEMPS(n$9); [line 24]\n NULLIFY(&x,false); [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"] +49 [label="49: BinaryOperatorStmt: Assign \n *&x:int =1 [line 24]\n n$1=*&x:int [line 24]\n DECLARE_LOCALS(&SIL_temp_conditional___40); [line 24]\n *&SIL_temp_conditional___40:int =n$1 [line 24]\n REMOVE_TEMPS(n$1); [line 24]\n NULLIFY(&x,false); [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"] 49 -> 40 ; -48 [label="48: Prune (false branch) \n PRUNE(((n$8 > 1) == 0), false); [line 24]\n REMOVE_TEMPS(n$8); [line 24]\n " shape="invhouse"] +48 [label="48: Prune (false branch) \n PRUNE(((n$0 > 1) == 0), false); [line 24]\n REMOVE_TEMPS(n$0); [line 24]\n " shape="invhouse"] 48 -> 50 ; -47 [label="47: Prune (true branch) \n PRUNE(((n$8 > 1) != 0), true); [line 24]\n REMOVE_TEMPS(n$8); [line 24]\n " shape="invhouse"] +47 [label="47: Prune (true branch) \n PRUNE(((n$0 > 1) != 0), true); [line 24]\n REMOVE_TEMPS(n$0); [line 24]\n " shape="invhouse"] 47 -> 49 ; -46 [label="46: BinaryOperatorStmt: GT \n n$8=*&SIL_temp_conditional___41:int [line 24]\n NULLIFY(&SIL_temp_conditional___41,true); [line 24]\n " shape="box"] +46 [label="46: BinaryOperatorStmt: GT \n n$0=*&SIL_temp_conditional___41:int [line 24]\n NULLIFY(&SIL_temp_conditional___41,true); [line 24]\n " shape="box"] 46 -> 47 ; @@ -74,7 +74,7 @@ digraph iCFG { 40 -> 39 ; -39 [label="39: Return Stmt \n n$10=*&SIL_temp_conditional___40:int [line 24]\n NULLIFY(&SIL_temp_conditional___40,true); [line 24]\n *&return:int =(0 + n$10) [line 24]\n REMOVE_TEMPS(n$10); [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"] +39 [label="39: Return Stmt \n n$2=*&SIL_temp_conditional___40:int [line 24]\n NULLIFY(&SIL_temp_conditional___40,true); [line 24]\n *&return:int =(0 + n$2) [line 24]\n REMOVE_TEMPS(n$2); [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"] 39 -> 38 ; diff --git a/infer/tests/codetoanalyze/c/frontend/conditional_operator/conditional_operator.dot b/infer/tests/codetoanalyze/c/frontend/conditional_operator/conditional_operator.dot index 3a7010ac8..22d522daa 100644 --- a/infer/tests/codetoanalyze/c/frontend/conditional_operator/conditional_operator.dot +++ b/infer/tests/codetoanalyze/c/frontend/conditional_operator/conditional_operator.dot @@ -3,7 +3,7 @@ digraph iCFG { 54 -> 50 ; -53 [label="53: UnaryOperator \n n$21=*&p:int * [line 42]\n n$22=*n$21:int [line 42]\n DECLARE_LOCALS(&SIL_temp_conditional___50); [line 42]\n *&SIL_temp_conditional___50:int =n$22 [line 42]\n REMOVE_TEMPS(n$21,n$22); [line 42]\n NULLIFY(&p,false); [line 42]\n APPLY_ABSTRACTION; [line 42]\n " shape="box"] +53 [label="53: UnaryOperator \n n$1=*&p:int * [line 42]\n n$2=*n$1:int [line 42]\n DECLARE_LOCALS(&SIL_temp_conditional___50); [line 42]\n *&SIL_temp_conditional___50:int =n$2 [line 42]\n REMOVE_TEMPS(n$1,n$2); [line 42]\n NULLIFY(&p,false); [line 42]\n APPLY_ABSTRACTION; [line 42]\n " shape="box"] 53 -> 50 ; @@ -19,11 +19,11 @@ digraph iCFG { 50 -> 49 ; -49 [label="49: DeclStmt \n n$23=*&SIL_temp_conditional___50:int [line 42]\n NULLIFY(&SIL_temp_conditional___50,true); [line 42]\n *&z:int =n$23 [line 42]\n REMOVE_TEMPS(n$23); [line 42]\n " shape="box"] +49 [label="49: DeclStmt \n n$3=*&SIL_temp_conditional___50:int [line 42]\n NULLIFY(&SIL_temp_conditional___50,true); [line 42]\n *&z:int =n$3 [line 42]\n REMOVE_TEMPS(n$3); [line 42]\n " shape="box"] 49 -> 48 ; -48 [label="48: Return Stmt \n n$20=*&z:int [line 43]\n *&return:int =n$20 [line 43]\n REMOVE_TEMPS(n$20); [line 43]\n NULLIFY(&z,false); [line 43]\n APPLY_ABSTRACTION; [line 43]\n " shape="box"] +48 [label="48: Return Stmt \n n$0=*&z:int [line 43]\n *&return:int =n$0 [line 43]\n REMOVE_TEMPS(n$0); [line 43]\n NULLIFY(&z,false); [line 43]\n APPLY_ABSTRACTION; [line 43]\n " shape="box"] 48 -> 47 ; @@ -39,15 +39,15 @@ digraph iCFG { 45 -> 41 ; -44 [label="44: ConditinalStmt Branch \n n$18=*&b:int [line 38]\n DECLARE_LOCALS(&SIL_temp_conditional___41); [line 38]\n *&SIL_temp_conditional___41:int =n$18 [line 38]\n REMOVE_TEMPS(n$18); [line 38]\n NULLIFY(&b,false); [line 38]\n APPLY_ABSTRACTION; [line 38]\n " shape="box"] +44 [label="44: ConditinalStmt Branch \n n$1=*&b:int [line 38]\n DECLARE_LOCALS(&SIL_temp_conditional___41); [line 38]\n *&SIL_temp_conditional___41:int =n$1 [line 38]\n REMOVE_TEMPS(n$1); [line 38]\n NULLIFY(&b,false); [line 38]\n APPLY_ABSTRACTION; [line 38]\n " shape="box"] 44 -> 41 ; -43 [label="43: Prune (false branch) \n n$17=*&b:int [line 38]\n PRUNE((n$17 == 0), false); [line 38]\n REMOVE_TEMPS(n$17); [line 38]\n " shape="invhouse"] +43 [label="43: Prune (false branch) \n n$0=*&b:int [line 38]\n PRUNE((n$0 == 0), false); [line 38]\n REMOVE_TEMPS(n$0); [line 38]\n " shape="invhouse"] 43 -> 45 ; -42 [label="42: Prune (true branch) \n n$17=*&b:int [line 38]\n PRUNE((n$17 != 0), true); [line 38]\n REMOVE_TEMPS(n$17); [line 38]\n " shape="invhouse"] +42 [label="42: Prune (true branch) \n n$0=*&b:int [line 38]\n PRUNE((n$0 != 0), true); [line 38]\n REMOVE_TEMPS(n$0); [line 38]\n " shape="invhouse"] 42 -> 44 ; @@ -55,7 +55,7 @@ digraph iCFG { 41 -> 40 ; -40 [label="40: Return Stmt \n n$19=*&SIL_temp_conditional___41:int [line 38]\n NULLIFY(&SIL_temp_conditional___41,true); [line 38]\n *&return:int =n$19 [line 38]\n REMOVE_TEMPS(n$19); [line 38]\n APPLY_ABSTRACTION; [line 38]\n " shape="box"] +40 [label="40: Return Stmt \n n$2=*&SIL_temp_conditional___41:int [line 38]\n NULLIFY(&SIL_temp_conditional___41,true); [line 38]\n *&return:int =n$2 [line 38]\n REMOVE_TEMPS(n$2); [line 38]\n APPLY_ABSTRACTION; [line 38]\n " shape="box"] 40 -> 39 ; @@ -71,15 +71,15 @@ digraph iCFG { 37 -> 33 ; -36 [label="36: ConditinalStmt Branch \n n$14=*&b:int [line 33]\n DECLARE_LOCALS(&SIL_temp_conditional___33); [line 33]\n *&SIL_temp_conditional___33:int =n$14 [line 33]\n REMOVE_TEMPS(n$14); [line 33]\n NULLIFY(&b,false); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] +36 [label="36: ConditinalStmt Branch \n n$1=*&b:int [line 33]\n DECLARE_LOCALS(&SIL_temp_conditional___33); [line 33]\n *&SIL_temp_conditional___33:int =n$1 [line 33]\n REMOVE_TEMPS(n$1); [line 33]\n NULLIFY(&b,false); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] 36 -> 33 ; -35 [label="35: Prune (false branch) \n n$13=*&b:int [line 33]\n PRUNE((n$13 == 0), false); [line 33]\n REMOVE_TEMPS(n$13); [line 33]\n " shape="invhouse"] +35 [label="35: Prune (false branch) \n n$0=*&b:int [line 33]\n PRUNE((n$0 == 0), false); [line 33]\n REMOVE_TEMPS(n$0); [line 33]\n " shape="invhouse"] 35 -> 37 ; -34 [label="34: Prune (true branch) \n n$13=*&b:int [line 33]\n PRUNE((n$13 != 0), true); [line 33]\n REMOVE_TEMPS(n$13); [line 33]\n " shape="invhouse"] +34 [label="34: Prune (true branch) \n n$0=*&b:int [line 33]\n PRUNE((n$0 != 0), true); [line 33]\n REMOVE_TEMPS(n$0); [line 33]\n " shape="invhouse"] 34 -> 36 ; @@ -87,7 +87,7 @@ digraph iCFG { 33 -> 32 ; -32 [label="32: Return Stmt \n n$15=*&SIL_temp_conditional___33:int [line 33]\n NULLIFY(&SIL_temp_conditional___33,true); [line 33]\n n$16=_fun_test2(n$15:int ) [line 33]\n *&return:int =n$16 [line 33]\n REMOVE_TEMPS(n$15,n$16); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] +32 [label="32: Return Stmt \n n$2=*&SIL_temp_conditional___33:int [line 33]\n NULLIFY(&SIL_temp_conditional___33,true); [line 33]\n n$3=_fun_test2(n$2:int ) [line 33]\n *&return:int =n$3 [line 33]\n REMOVE_TEMPS(n$2,n$3); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] 32 -> 31 ; @@ -103,15 +103,15 @@ digraph iCFG { 29 -> 25 ; -28 [label="28: ConditinalStmt Branch \n n$11=*&b:int [line 27]\n DECLARE_LOCALS(&SIL_temp_conditional___25); [line 27]\n *&SIL_temp_conditional___25:int =n$11 [line 27]\n REMOVE_TEMPS(n$11); [line 27]\n NULLIFY(&b,false); [line 27]\n APPLY_ABSTRACTION; [line 27]\n " shape="box"] +28 [label="28: ConditinalStmt Branch \n n$2=*&b:int [line 27]\n DECLARE_LOCALS(&SIL_temp_conditional___25); [line 27]\n *&SIL_temp_conditional___25:int =n$2 [line 27]\n REMOVE_TEMPS(n$2); [line 27]\n NULLIFY(&b,false); [line 27]\n APPLY_ABSTRACTION; [line 27]\n " shape="box"] 28 -> 25 ; -27 [label="27: Prune (false branch) \n n$10=*&b:int [line 27]\n PRUNE((n$10 == 0), false); [line 27]\n REMOVE_TEMPS(n$10); [line 27]\n " shape="invhouse"] +27 [label="27: Prune (false branch) \n n$1=*&b:int [line 27]\n PRUNE((n$1 == 0), false); [line 27]\n REMOVE_TEMPS(n$1); [line 27]\n " shape="invhouse"] 27 -> 29 ; -26 [label="26: Prune (true branch) \n n$10=*&b:int [line 27]\n PRUNE((n$10 != 0), true); [line 27]\n REMOVE_TEMPS(n$10); [line 27]\n " shape="invhouse"] +26 [label="26: Prune (true branch) \n n$1=*&b:int [line 27]\n PRUNE((n$1 != 0), true); [line 27]\n REMOVE_TEMPS(n$1); [line 27]\n " shape="invhouse"] 26 -> 28 ; @@ -119,11 +119,11 @@ digraph iCFG { 25 -> 24 ; -24 [label="24: DeclStmt \n n$12=*&SIL_temp_conditional___25:int [line 27]\n NULLIFY(&SIL_temp_conditional___25,true); [line 27]\n *&x:int =n$12 [line 27]\n REMOVE_TEMPS(n$12); [line 27]\n " shape="box"] +24 [label="24: DeclStmt \n n$3=*&SIL_temp_conditional___25:int [line 27]\n NULLIFY(&SIL_temp_conditional___25,true); [line 27]\n *&x:int =n$3 [line 27]\n REMOVE_TEMPS(n$3); [line 27]\n " shape="box"] 24 -> 23 ; -23 [label="23: Return Stmt \n n$9=*&x:int [line 28]\n *&return:int =n$9 [line 28]\n REMOVE_TEMPS(n$9); [line 28]\n NULLIFY(&x,false); [line 28]\n APPLY_ABSTRACTION; [line 28]\n " shape="box"] +23 [label="23: Return Stmt \n n$0=*&x:int [line 28]\n *&return:int =n$0 [line 28]\n REMOVE_TEMPS(n$0); [line 28]\n NULLIFY(&x,false); [line 28]\n APPLY_ABSTRACTION; [line 28]\n " shape="box"] 23 -> 22 ; @@ -139,15 +139,15 @@ digraph iCFG { 20 -> 16 ; -19 [label="19: ConditinalStmt Branch \n n$7=*&b:int [line 22]\n DECLARE_LOCALS(&SIL_temp_conditional___16); [line 22]\n *&SIL_temp_conditional___16:int =n$7 [line 22]\n REMOVE_TEMPS(n$7); [line 22]\n NULLIFY(&b,false); [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"] +19 [label="19: ConditinalStmt Branch \n n$2=*&b:int [line 22]\n DECLARE_LOCALS(&SIL_temp_conditional___16); [line 22]\n *&SIL_temp_conditional___16:int =n$2 [line 22]\n REMOVE_TEMPS(n$2); [line 22]\n NULLIFY(&b,false); [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"] 19 -> 16 ; -18 [label="18: Prune (false branch) \n n$6=*&b:int [line 22]\n PRUNE((n$6 == 0), false); [line 22]\n REMOVE_TEMPS(n$6); [line 22]\n " shape="invhouse"] +18 [label="18: Prune (false branch) \n n$1=*&b:int [line 22]\n PRUNE((n$1 == 0), false); [line 22]\n REMOVE_TEMPS(n$1); [line 22]\n " shape="invhouse"] 18 -> 20 ; -17 [label="17: Prune (true branch) \n n$6=*&b:int [line 22]\n PRUNE((n$6 != 0), true); [line 22]\n REMOVE_TEMPS(n$6); [line 22]\n " shape="invhouse"] +17 [label="17: Prune (true branch) \n n$1=*&b:int [line 22]\n PRUNE((n$1 != 0), true); [line 22]\n REMOVE_TEMPS(n$1); [line 22]\n " shape="invhouse"] 17 -> 19 ; @@ -155,11 +155,11 @@ digraph iCFG { 16 -> 15 ; -15 [label="15: DeclStmt \n n$8=*&SIL_temp_conditional___16:int [line 22]\n NULLIFY(&SIL_temp_conditional___16,true); [line 22]\n *&x:int =n$8 [line 22]\n REMOVE_TEMPS(n$8); [line 22]\n " shape="box"] +15 [label="15: DeclStmt \n n$3=*&SIL_temp_conditional___16:int [line 22]\n NULLIFY(&SIL_temp_conditional___16,true); [line 22]\n *&x:int =n$3 [line 22]\n REMOVE_TEMPS(n$3); [line 22]\n " shape="box"] 15 -> 14 ; -14 [label="14: Return Stmt \n n$5=*&x:int [line 23]\n *&return:int =n$5 [line 23]\n REMOVE_TEMPS(n$5); [line 23]\n NULLIFY(&x,false); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] +14 [label="14: Return Stmt \n n$0=*&x:int [line 23]\n *&return:int =n$0 [line 23]\n REMOVE_TEMPS(n$0); [line 23]\n NULLIFY(&x,false); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] 14 -> 13 ; @@ -175,15 +175,15 @@ digraph iCFG { 11 -> 7 ; -10 [label="10: ConditinalStmt Branch \n n$2=*&b:int [line 18]\n DECLARE_LOCALS(&SIL_temp_conditional___7); [line 18]\n *&SIL_temp_conditional___7:int =n$2 [line 18]\n REMOVE_TEMPS(n$2); [line 18]\n NULLIFY(&b,false); [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] +10 [label="10: ConditinalStmt Branch \n n$1=*&b:int [line 18]\n DECLARE_LOCALS(&SIL_temp_conditional___7); [line 18]\n *&SIL_temp_conditional___7:int =n$1 [line 18]\n REMOVE_TEMPS(n$1); [line 18]\n NULLIFY(&b,false); [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] 10 -> 7 ; -9 [label="9: Prune (false branch) \n n$1=*&b:int [line 18]\n PRUNE((n$1 == 0), false); [line 18]\n REMOVE_TEMPS(n$1); [line 18]\n " shape="invhouse"] +9 [label="9: Prune (false branch) \n n$0=*&b:int [line 18]\n PRUNE((n$0 == 0), false); [line 18]\n REMOVE_TEMPS(n$0); [line 18]\n " shape="invhouse"] 9 -> 11 ; -8 [label="8: Prune (true branch) \n n$1=*&b:int [line 18]\n PRUNE((n$1 != 0), true); [line 18]\n REMOVE_TEMPS(n$1); [line 18]\n " shape="invhouse"] +8 [label="8: Prune (true branch) \n n$0=*&b:int [line 18]\n PRUNE((n$0 != 0), true); [line 18]\n REMOVE_TEMPS(n$0); [line 18]\n " shape="invhouse"] 8 -> 10 ; @@ -191,7 +191,7 @@ digraph iCFG { 7 -> 6 ; -6 [label="6: Return Stmt \n n$3=*&SIL_temp_conditional___7:int [line 18]\n NULLIFY(&SIL_temp_conditional___7,true); [line 18]\n n$4=_fun_test2(n$3:int ) [line 18]\n *&return:int =n$4 [line 18]\n REMOVE_TEMPS(n$3,n$4); [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] +6 [label="6: Return Stmt \n n$2=*&SIL_temp_conditional___7:int [line 18]\n NULLIFY(&SIL_temp_conditional___7,true); [line 18]\n n$3=_fun_test2(n$2:int ) [line 18]\n *&return:int =n$3 [line 18]\n REMOVE_TEMPS(n$2,n$3); [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] 6 -> 5 ; diff --git a/infer/tests/codetoanalyze/c/frontend/conditional_operator/function_call.dot b/infer/tests/codetoanalyze/c/frontend/conditional_operator/function_call.dot index 6ab255969..146019c83 100644 --- a/infer/tests/codetoanalyze/c/frontend/conditional_operator/function_call.dot +++ b/infer/tests/codetoanalyze/c/frontend/conditional_operator/function_call.dot @@ -1,5 +1,5 @@ digraph iCFG { -67 [label="67: Call n$8 \n n$8=*&SIL_temp_conditional___52:_fn_ (*) [line 25]\n NULLIFY(&SIL_temp_conditional___52,true); [line 25]\n n$9=*&SIL_temp_conditional___57:int [line 25]\n NULLIFY(&SIL_temp_conditional___57,true); [line 25]\n n$10=*&SIL_temp_conditional___62:int [line 25]\n NULLIFY(&SIL_temp_conditional___62,true); [line 25]\n n$8(n$9:int ,2:int ,n$10:int ) [line 25]\n REMOVE_TEMPS(n$8,n$9,n$10); [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] +67 [label="67: Call n$0 \n n$0=*&SIL_temp_conditional___52:_fn_ (*) [line 25]\n NULLIFY(&SIL_temp_conditional___52,true); [line 25]\n n$1=*&SIL_temp_conditional___57:int [line 25]\n NULLIFY(&SIL_temp_conditional___57,true); [line 25]\n n$2=*&SIL_temp_conditional___62:int [line 25]\n NULLIFY(&SIL_temp_conditional___62,true); [line 25]\n n$0(n$1:int ,2:int ,n$2:int ) [line 25]\n REMOVE_TEMPS(n$0,n$1,n$2); [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] 67 -> 51 ; @@ -73,7 +73,7 @@ digraph iCFG { 50 -> 53 ; 50 -> 54 ; -49 [label="49: Call _fun_some_f \n n$5=*&SIL_temp_conditional___34:int [line 21]\n NULLIFY(&SIL_temp_conditional___34,true); [line 21]\n n$6=*&SIL_temp_conditional___39:int [line 21]\n NULLIFY(&SIL_temp_conditional___39,true); [line 21]\n n$7=*&SIL_temp_conditional___44:int [line 21]\n NULLIFY(&SIL_temp_conditional___44,true); [line 21]\n _fun_some_f(n$5:int ,n$6:int ,n$7:int ) [line 21]\n REMOVE_TEMPS(n$5,n$6,n$7); [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] +49 [label="49: Call _fun_some_f \n n$0=*&SIL_temp_conditional___34:int [line 21]\n NULLIFY(&SIL_temp_conditional___34,true); [line 21]\n n$1=*&SIL_temp_conditional___39:int [line 21]\n NULLIFY(&SIL_temp_conditional___39,true); [line 21]\n n$2=*&SIL_temp_conditional___44:int [line 21]\n NULLIFY(&SIL_temp_conditional___44,true); [line 21]\n _fun_some_f(n$0:int ,n$1:int ,n$2:int ) [line 21]\n REMOVE_TEMPS(n$0,n$1,n$2); [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] 49 -> 33 ; @@ -147,7 +147,7 @@ digraph iCFG { 32 -> 35 ; 32 -> 36 ; -31 [label="31: Call n$1 \n n$1=*&SIL_temp_conditional___11:_fn_ (*) [line 17]\n NULLIFY(&SIL_temp_conditional___11,true); [line 17]\n n$2=*&SIL_temp_conditional___16:int [line 17]\n NULLIFY(&SIL_temp_conditional___16,true); [line 17]\n n$3=*&SIL_temp_conditional___21:int [line 17]\n NULLIFY(&SIL_temp_conditional___21,true); [line 17]\n n$4=*&SIL_temp_conditional___26:int [line 17]\n NULLIFY(&SIL_temp_conditional___26,true); [line 17]\n n$1(n$2:int ,n$3:int ,n$4:int ) [line 17]\n REMOVE_TEMPS(n$1,n$2,n$3,n$4); [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] +31 [label="31: Call n$0 \n n$0=*&SIL_temp_conditional___11:_fn_ (*) [line 17]\n NULLIFY(&SIL_temp_conditional___11,true); [line 17]\n n$1=*&SIL_temp_conditional___16:int [line 17]\n NULLIFY(&SIL_temp_conditional___16,true); [line 17]\n n$2=*&SIL_temp_conditional___21:int [line 17]\n NULLIFY(&SIL_temp_conditional___21,true); [line 17]\n n$3=*&SIL_temp_conditional___26:int [line 17]\n NULLIFY(&SIL_temp_conditional___26,true); [line 17]\n n$0(n$1:int ,n$2:int ,n$3:int ) [line 17]\n REMOVE_TEMPS(n$0,n$1,n$2,n$3); [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] 31 -> 10 ; diff --git a/infer/tests/codetoanalyze/c/frontend/conditional_operator/if_short_circuit.dot b/infer/tests/codetoanalyze/c/frontend/conditional_operator/if_short_circuit.dot index d2959f37c..724aa462c 100644 --- a/infer/tests/codetoanalyze/c/frontend/conditional_operator/if_short_circuit.dot +++ b/infer/tests/codetoanalyze/c/frontend/conditional_operator/if_short_circuit.dot @@ -1,5 +1,5 @@ digraph iCFG { -93 [label="93: BinaryOperatorStmt: Assign \n n$28=_fun_getenv(\"BLOCK\":char *) [line 51]\n *&spec:char *=n$28 [line 51]\n REMOVE_TEMPS(n$28); [line 51]\n " shape="box"] +93 [label="93: BinaryOperatorStmt: Assign \n n$10=_fun_getenv(\"BLOCK\":char *) [line 51]\n *&spec:char *=n$10 [line 51]\n REMOVE_TEMPS(n$10); [line 51]\n " shape="box"] 93 -> 65 ; @@ -8,15 +8,15 @@ digraph iCFG { 92 -> 88 ; -91 [label="91: Prune (false branch) \n PRUNE(((n$27 == 39) == 0), false); [line 61]\n REMOVE_TEMPS(n$26,n$27); [line 61]\n APPLY_ABSTRACTION; [line 61]\n " shape="invhouse"] +91 [label="91: Prune (false branch) \n PRUNE(((n$9 == 39) == 0), false); [line 61]\n REMOVE_TEMPS(n$8,n$9); [line 61]\n APPLY_ABSTRACTION; [line 61]\n " shape="invhouse"] 91 -> 88 ; -90 [label="90: Prune (true branch) \n PRUNE(((n$27 == 39) != 0), true); [line 61]\n REMOVE_TEMPS(n$26,n$27); [line 61]\n " shape="invhouse"] +90 [label="90: Prune (true branch) \n PRUNE(((n$9 == 39) != 0), true); [line 61]\n REMOVE_TEMPS(n$8,n$9); [line 61]\n " shape="invhouse"] 90 -> 92 ; -89 [label="89: BinaryOperatorStmt: EQ \n n$26=*&spec:char * [line 61]\n n$27=*n$26:char [line 61]\n NULLIFY(&spec,false); [line 61]\n " shape="box"] +89 [label="89: BinaryOperatorStmt: EQ \n n$8=*&spec:char * [line 61]\n n$9=*n$8:char [line 61]\n NULLIFY(&spec,false); [line 61]\n " shape="box"] 89 -> 90 ; @@ -29,11 +29,11 @@ digraph iCFG { 87 -> 63 ; -86 [label="86: Prune (false branch) \n n$25=*&SIL_temp_conditional___79:int [line 57]\n NULLIFY(&SIL_temp_conditional___79,true); [line 57]\n PRUNE((n$25 == 0), false); [line 57]\n REMOVE_TEMPS(n$25); [line 57]\n APPLY_ABSTRACTION; [line 57]\n " shape="invhouse"] +86 [label="86: Prune (false branch) \n n$7=*&SIL_temp_conditional___79:int [line 57]\n NULLIFY(&SIL_temp_conditional___79,true); [line 57]\n PRUNE((n$7 == 0), false); [line 57]\n REMOVE_TEMPS(n$7); [line 57]\n APPLY_ABSTRACTION; [line 57]\n " shape="invhouse"] 86 -> 89 ; -85 [label="85: Prune (true branch) \n n$25=*&SIL_temp_conditional___79:int [line 57]\n NULLIFY(&SIL_temp_conditional___79,true); [line 57]\n PRUNE((n$25 != 0), true); [line 57]\n REMOVE_TEMPS(n$25); [line 57]\n NULLIFY(&spec,false); [line 57]\n " shape="invhouse"] +85 [label="85: Prune (true branch) \n n$7=*&SIL_temp_conditional___79:int [line 57]\n NULLIFY(&SIL_temp_conditional___79,true); [line 57]\n PRUNE((n$7 != 0), true); [line 57]\n REMOVE_TEMPS(n$7); [line 57]\n NULLIFY(&spec,false); [line 57]\n " shape="invhouse"] 85 -> 87 ; @@ -45,15 +45,15 @@ digraph iCFG { 83 -> 79 ; -82 [label="82: Prune (false branch) \n PRUNE((n$24 == 0), false); [line 57]\n REMOVE_TEMPS(n$23,n$24); [line 57]\n " shape="invhouse"] +82 [label="82: Prune (false branch) \n PRUNE((n$6 == 0), false); [line 57]\n REMOVE_TEMPS(n$5,n$6); [line 57]\n " shape="invhouse"] 82 -> 84 ; -81 [label="81: Prune (true branch) \n PRUNE((n$24 != 0), true); [line 57]\n REMOVE_TEMPS(n$23,n$24); [line 57]\n " shape="invhouse"] +81 [label="81: Prune (true branch) \n PRUNE((n$6 != 0), true); [line 57]\n REMOVE_TEMPS(n$5,n$6); [line 57]\n " shape="invhouse"] 81 -> 83 ; -80 [label="80: BinaryOperatorStmt: Assign \n n$23=_fun_getenv(\"BLOCKSIZE\":char *) [line 57]\n *&spec:char *=n$23 [line 57]\n n$24=*&spec:char * [line 57]\n " shape="box"] +80 [label="80: BinaryOperatorStmt: Assign \n n$5=_fun_getenv(\"BLOCKSIZE\":char *) [line 57]\n *&spec:char *=n$5 [line 57]\n n$6=*&spec:char * [line 57]\n " shape="box"] 80 -> 81 ; @@ -63,11 +63,11 @@ digraph iCFG { 79 -> 85 ; 79 -> 86 ; -78 [label="78: Prune (false branch) \n n$22=*&SIL_temp_conditional___71:int [line 56]\n NULLIFY(&SIL_temp_conditional___71,true); [line 56]\n PRUNE((n$22 == 0), false); [line 56]\n REMOVE_TEMPS(n$22); [line 56]\n APPLY_ABSTRACTION; [line 56]\n " shape="invhouse"] +78 [label="78: Prune (false branch) \n n$4=*&SIL_temp_conditional___71:int [line 56]\n NULLIFY(&SIL_temp_conditional___71,true); [line 56]\n PRUNE((n$4 == 0), false); [line 56]\n REMOVE_TEMPS(n$4); [line 56]\n APPLY_ABSTRACTION; [line 56]\n " shape="invhouse"] 78 -> 89 ; -77 [label="77: Prune (true branch) \n n$22=*&SIL_temp_conditional___71:int [line 56]\n NULLIFY(&SIL_temp_conditional___71,true); [line 56]\n PRUNE((n$22 != 0), true); [line 56]\n REMOVE_TEMPS(n$22); [line 56]\n NULLIFY(&spec,false); [line 56]\n " shape="invhouse"] +77 [label="77: Prune (true branch) \n n$4=*&SIL_temp_conditional___71:int [line 56]\n NULLIFY(&SIL_temp_conditional___71,true); [line 56]\n PRUNE((n$4 != 0), true); [line 56]\n REMOVE_TEMPS(n$4); [line 56]\n NULLIFY(&spec,false); [line 56]\n " shape="invhouse"] 77 -> 80 ; @@ -79,15 +79,15 @@ digraph iCFG { 75 -> 71 ; -74 [label="74: Prune (false branch) \n PRUNE((n$21 == 0), false); [line 56]\n REMOVE_TEMPS(n$20,n$21); [line 56]\n " shape="invhouse"] +74 [label="74: Prune (false branch) \n PRUNE((n$3 == 0), false); [line 56]\n REMOVE_TEMPS(n$2,n$3); [line 56]\n " shape="invhouse"] 74 -> 76 ; -73 [label="73: Prune (true branch) \n PRUNE((n$21 != 0), true); [line 56]\n REMOVE_TEMPS(n$20,n$21); [line 56]\n " shape="invhouse"] +73 [label="73: Prune (true branch) \n PRUNE((n$3 != 0), true); [line 56]\n REMOVE_TEMPS(n$2,n$3); [line 56]\n " shape="invhouse"] 73 -> 75 ; -72 [label="72: BinaryOperatorStmt: Assign \n n$20=_fun_getenv(\"BLOCK_SIZE\":char *) [line 56]\n *&spec:char *=n$20 [line 56]\n n$21=*&spec:char * [line 56]\n " shape="box"] +72 [label="72: BinaryOperatorStmt: Assign \n n$2=_fun_getenv(\"BLOCK_SIZE\":char *) [line 56]\n *&spec:char *=n$2 [line 56]\n n$3=*&spec:char * [line 56]\n " shape="box"] 72 -> 73 ; @@ -97,11 +97,11 @@ digraph iCFG { 71 -> 77 ; 71 -> 78 ; -70 [label="70: Prune (false branch) \n n$19=*&SIL_temp_conditional___64:int [line 55]\n NULLIFY(&SIL_temp_conditional___64,true); [line 55]\n PRUNE((n$19 == 0), false); [line 55]\n REMOVE_TEMPS(n$19); [line 55]\n APPLY_ABSTRACTION; [line 55]\n " shape="invhouse"] +70 [label="70: Prune (false branch) \n n$1=*&SIL_temp_conditional___64:int [line 55]\n NULLIFY(&SIL_temp_conditional___64,true); [line 55]\n PRUNE((n$1 == 0), false); [line 55]\n REMOVE_TEMPS(n$1); [line 55]\n APPLY_ABSTRACTION; [line 55]\n " shape="invhouse"] 70 -> 89 ; -69 [label="69: Prune (true branch) \n n$19=*&SIL_temp_conditional___64:int [line 55]\n NULLIFY(&SIL_temp_conditional___64,true); [line 55]\n PRUNE((n$19 != 0), true); [line 55]\n REMOVE_TEMPS(n$19); [line 55]\n NULLIFY(&spec,false); [line 55]\n " shape="invhouse"] +69 [label="69: Prune (true branch) \n n$1=*&SIL_temp_conditional___64:int [line 55]\n NULLIFY(&SIL_temp_conditional___64,true); [line 55]\n PRUNE((n$1 != 0), true); [line 55]\n REMOVE_TEMPS(n$1); [line 55]\n NULLIFY(&spec,false); [line 55]\n " shape="invhouse"] 69 -> 72 ; @@ -113,11 +113,11 @@ digraph iCFG { 67 -> 64 ; -66 [label="66: Prune (false branch) \n n$18=*&spec:char * [line 55]\n PRUNE((n$18 == 0), false); [line 55]\n REMOVE_TEMPS(n$18); [line 55]\n " shape="invhouse"] +66 [label="66: Prune (false branch) \n n$0=*&spec:char * [line 55]\n PRUNE((n$0 == 0), false); [line 55]\n REMOVE_TEMPS(n$0); [line 55]\n " shape="invhouse"] 66 -> 68 ; -65 [label="65: Prune (true branch) \n n$18=*&spec:char * [line 55]\n PRUNE((n$18 != 0), true); [line 55]\n REMOVE_TEMPS(n$18); [line 55]\n " shape="invhouse"] +65 [label="65: Prune (true branch) \n n$0=*&spec:char * [line 55]\n PRUNE((n$0 != 0), true); [line 55]\n REMOVE_TEMPS(n$0); [line 55]\n " shape="invhouse"] 65 -> 67 ; @@ -141,7 +141,7 @@ digraph iCFG { 60 -> 93 ; -59 [label="59: BinaryOperatorStmt: Assign \n n$17=_fun_getenv(\"BLOCK\":char *) [line 33]\n *&spec:char *=n$17 [line 33]\n REMOVE_TEMPS(n$17); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] +59 [label="59: BinaryOperatorStmt: Assign \n n$8=_fun_getenv(\"BLOCK\":char *) [line 33]\n *&spec:char *=n$8 [line 33]\n REMOVE_TEMPS(n$8); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] 59 -> 34 ; @@ -149,11 +149,11 @@ digraph iCFG { 58 -> 34 ; -57 [label="57: Prune (false branch) \n n$16=*&SIL_temp_conditional___50:int [line 37]\n NULLIFY(&SIL_temp_conditional___50,true); [line 37]\n PRUNE((n$16 == 0), false); [line 37]\n REMOVE_TEMPS(n$16); [line 37]\n NULLIFY(&spec,false); [line 37]\n APPLY_ABSTRACTION; [line 37]\n " shape="invhouse"] +57 [label="57: Prune (false branch) \n n$7=*&SIL_temp_conditional___50:int [line 37]\n NULLIFY(&SIL_temp_conditional___50,true); [line 37]\n PRUNE((n$7 == 0), false); [line 37]\n REMOVE_TEMPS(n$7); [line 37]\n NULLIFY(&spec,false); [line 37]\n APPLY_ABSTRACTION; [line 37]\n " shape="invhouse"] 57 -> 33 ; -56 [label="56: Prune (true branch) \n n$16=*&SIL_temp_conditional___50:int [line 37]\n NULLIFY(&SIL_temp_conditional___50,true); [line 37]\n PRUNE((n$16 != 0), true); [line 37]\n REMOVE_TEMPS(n$16); [line 37]\n " shape="invhouse"] +56 [label="56: Prune (true branch) \n n$7=*&SIL_temp_conditional___50:int [line 37]\n NULLIFY(&SIL_temp_conditional___50,true); [line 37]\n PRUNE((n$7 != 0), true); [line 37]\n REMOVE_TEMPS(n$7); [line 37]\n " shape="invhouse"] 56 -> 58 ; @@ -165,15 +165,15 @@ digraph iCFG { 54 -> 50 ; -53 [label="53: Prune (false branch) \n PRUNE((n$15 == 0), false); [line 37]\n REMOVE_TEMPS(n$14,n$15); [line 37]\n " shape="invhouse"] +53 [label="53: Prune (false branch) \n PRUNE((n$6 == 0), false); [line 37]\n REMOVE_TEMPS(n$5,n$6); [line 37]\n " shape="invhouse"] 53 -> 55 ; -52 [label="52: Prune (true branch) \n PRUNE((n$15 != 0), true); [line 37]\n REMOVE_TEMPS(n$14,n$15); [line 37]\n " shape="invhouse"] +52 [label="52: Prune (true branch) \n PRUNE((n$6 != 0), true); [line 37]\n REMOVE_TEMPS(n$5,n$6); [line 37]\n " shape="invhouse"] 52 -> 54 ; -51 [label="51: BinaryOperatorStmt: Assign \n n$14=_fun_getenv(\"BLOCKSIZE\":char *) [line 37]\n *&spec:char *=n$14 [line 37]\n n$15=*&spec:char * [line 37]\n " shape="box"] +51 [label="51: BinaryOperatorStmt: Assign \n n$5=_fun_getenv(\"BLOCKSIZE\":char *) [line 37]\n *&spec:char *=n$5 [line 37]\n n$6=*&spec:char * [line 37]\n " shape="box"] 51 -> 52 ; @@ -183,11 +183,11 @@ digraph iCFG { 50 -> 56 ; 50 -> 57 ; -49 [label="49: Prune (false branch) \n n$13=*&SIL_temp_conditional___42:int [line 36]\n NULLIFY(&SIL_temp_conditional___42,true); [line 36]\n PRUNE((n$13 == 0), false); [line 36]\n REMOVE_TEMPS(n$13); [line 36]\n APPLY_ABSTRACTION; [line 36]\n " shape="invhouse"] +49 [label="49: Prune (false branch) \n n$4=*&SIL_temp_conditional___42:int [line 36]\n NULLIFY(&SIL_temp_conditional___42,true); [line 36]\n PRUNE((n$4 == 0), false); [line 36]\n REMOVE_TEMPS(n$4); [line 36]\n APPLY_ABSTRACTION; [line 36]\n " shape="invhouse"] 49 -> 33 ; -48 [label="48: Prune (true branch) \n n$13=*&SIL_temp_conditional___42:int [line 36]\n NULLIFY(&SIL_temp_conditional___42,true); [line 36]\n PRUNE((n$13 != 0), true); [line 36]\n REMOVE_TEMPS(n$13); [line 36]\n " shape="invhouse"] +48 [label="48: Prune (true branch) \n n$4=*&SIL_temp_conditional___42:int [line 36]\n NULLIFY(&SIL_temp_conditional___42,true); [line 36]\n PRUNE((n$4 != 0), true); [line 36]\n REMOVE_TEMPS(n$4); [line 36]\n " shape="invhouse"] 48 -> 51 ; @@ -199,15 +199,15 @@ digraph iCFG { 46 -> 42 ; -45 [label="45: Prune (false branch) \n PRUNE((n$12 == 0), false); [line 36]\n REMOVE_TEMPS(n$11,n$12); [line 36]\n " shape="invhouse"] +45 [label="45: Prune (false branch) \n PRUNE((n$3 == 0), false); [line 36]\n REMOVE_TEMPS(n$2,n$3); [line 36]\n " shape="invhouse"] 45 -> 47 ; -44 [label="44: Prune (true branch) \n PRUNE((n$12 != 0), true); [line 36]\n REMOVE_TEMPS(n$11,n$12); [line 36]\n " shape="invhouse"] +44 [label="44: Prune (true branch) \n PRUNE((n$3 != 0), true); [line 36]\n REMOVE_TEMPS(n$2,n$3); [line 36]\n " shape="invhouse"] 44 -> 46 ; -43 [label="43: BinaryOperatorStmt: Assign \n n$11=_fun_getenv(\"BLOCK_SIZE\":char *) [line 36]\n *&spec:char *=n$11 [line 36]\n n$12=*&spec:char * [line 36]\n NULLIFY(&spec,false); [line 36]\n " shape="box"] +43 [label="43: BinaryOperatorStmt: Assign \n n$2=_fun_getenv(\"BLOCK_SIZE\":char *) [line 36]\n *&spec:char *=n$2 [line 36]\n n$3=*&spec:char * [line 36]\n NULLIFY(&spec,false); [line 36]\n " shape="box"] 43 -> 44 ; @@ -217,11 +217,11 @@ digraph iCFG { 42 -> 48 ; 42 -> 49 ; -41 [label="41: Prune (false branch) \n n$10=*&SIL_temp_conditional___35:int [line 35]\n NULLIFY(&SIL_temp_conditional___35,true); [line 35]\n PRUNE((n$10 == 0), false); [line 35]\n REMOVE_TEMPS(n$10); [line 35]\n APPLY_ABSTRACTION; [line 35]\n " shape="invhouse"] +41 [label="41: Prune (false branch) \n n$1=*&SIL_temp_conditional___35:int [line 35]\n NULLIFY(&SIL_temp_conditional___35,true); [line 35]\n PRUNE((n$1 == 0), false); [line 35]\n REMOVE_TEMPS(n$1); [line 35]\n APPLY_ABSTRACTION; [line 35]\n " shape="invhouse"] 41 -> 33 ; -40 [label="40: Prune (true branch) \n n$10=*&SIL_temp_conditional___35:int [line 35]\n NULLIFY(&SIL_temp_conditional___35,true); [line 35]\n PRUNE((n$10 != 0), true); [line 35]\n REMOVE_TEMPS(n$10); [line 35]\n " shape="invhouse"] +40 [label="40: Prune (true branch) \n n$1=*&SIL_temp_conditional___35:int [line 35]\n NULLIFY(&SIL_temp_conditional___35,true); [line 35]\n PRUNE((n$1 != 0), true); [line 35]\n REMOVE_TEMPS(n$1); [line 35]\n " shape="invhouse"] 40 -> 43 ; @@ -233,11 +233,11 @@ digraph iCFG { 38 -> 35 ; -37 [label="37: Prune (false branch) \n n$9=*&spec:char * [line 35]\n PRUNE((n$9 == 0), false); [line 35]\n REMOVE_TEMPS(n$9); [line 35]\n " shape="invhouse"] +37 [label="37: Prune (false branch) \n n$0=*&spec:char * [line 35]\n PRUNE((n$0 == 0), false); [line 35]\n REMOVE_TEMPS(n$0); [line 35]\n " shape="invhouse"] 37 -> 39 ; -36 [label="36: Prune (true branch) \n n$9=*&spec:char * [line 35]\n PRUNE((n$9 != 0), true); [line 35]\n REMOVE_TEMPS(n$9); [line 35]\n " shape="invhouse"] +36 [label="36: Prune (true branch) \n n$0=*&spec:char * [line 35]\n PRUNE((n$0 != 0), true); [line 35]\n REMOVE_TEMPS(n$0); [line 35]\n " shape="invhouse"] 36 -> 38 ; @@ -258,7 +258,7 @@ digraph iCFG { 32 -> 59 ; -31 [label="31: BinaryOperatorStmt: Assign \n n$8=*&x:int * [line 22]\n *n$8:int =32 [line 22]\n REMOVE_TEMPS(n$8); [line 22]\n NULLIFY(&x,false); [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"] +31 [label="31: BinaryOperatorStmt: Assign \n n$5=*&x:int * [line 22]\n *n$5:int =32 [line 22]\n REMOVE_TEMPS(n$5); [line 22]\n NULLIFY(&x,false); [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"] 31 -> 14 ; @@ -266,11 +266,11 @@ digraph iCFG { 30 -> 14 ; -29 [label="29: Prune (false branch) \n n$7=*&SIL_temp_conditional___22:int [line 18]\n NULLIFY(&SIL_temp_conditional___22,true); [line 18]\n PRUNE((n$7 == 0), false); [line 18]\n REMOVE_TEMPS(n$7); [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="invhouse"] +29 [label="29: Prune (false branch) \n n$4=*&SIL_temp_conditional___22:int [line 18]\n NULLIFY(&SIL_temp_conditional___22,true); [line 18]\n PRUNE((n$4 == 0), false); [line 18]\n REMOVE_TEMPS(n$4); [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="invhouse"] 29 -> 31 ; -28 [label="28: Prune (true branch) \n n$7=*&SIL_temp_conditional___22:int [line 18]\n NULLIFY(&SIL_temp_conditional___22,true); [line 18]\n PRUNE((n$7 != 0), true); [line 18]\n REMOVE_TEMPS(n$7); [line 18]\n NULLIFY(&x,false); [line 18]\n " shape="invhouse"] +28 [label="28: Prune (true branch) \n n$4=*&SIL_temp_conditional___22:int [line 18]\n NULLIFY(&SIL_temp_conditional___22,true); [line 18]\n PRUNE((n$4 != 0), true); [line 18]\n REMOVE_TEMPS(n$4); [line 18]\n NULLIFY(&x,false); [line 18]\n " shape="invhouse"] 28 -> 30 ; @@ -282,15 +282,15 @@ digraph iCFG { 26 -> 22 ; -25 [label="25: Prune (false branch) \n PRUNE((n$6 == 0), false); [line 18]\n REMOVE_TEMPS(n$5,n$6); [line 18]\n " shape="invhouse"] +25 [label="25: Prune (false branch) \n PRUNE((n$3 == 0), false); [line 18]\n REMOVE_TEMPS(n$2,n$3); [line 18]\n " shape="invhouse"] 25 -> 27 ; -24 [label="24: Prune (true branch) \n PRUNE((n$6 != 0), true); [line 18]\n REMOVE_TEMPS(n$5,n$6); [line 18]\n " shape="invhouse"] +24 [label="24: Prune (true branch) \n PRUNE((n$3 != 0), true); [line 18]\n REMOVE_TEMPS(n$2,n$3); [line 18]\n " shape="invhouse"] 24 -> 26 ; -23 [label="23: BinaryOperatorStmt: Assign \n n$5=_fun_getenv(\"BLOCK\":char *) [line 18]\n *&x:int *=n$5 [line 18]\n n$6=*&x:int * [line 18]\n " shape="box"] +23 [label="23: BinaryOperatorStmt: Assign \n n$2=_fun_getenv(\"BLOCK\":char *) [line 18]\n *&x:int *=n$2 [line 18]\n n$3=*&x:int * [line 18]\n " shape="box"] 23 -> 24 ; @@ -300,11 +300,11 @@ digraph iCFG { 22 -> 28 ; 22 -> 29 ; -21 [label="21: Prune (false branch) \n n$4=*&SIL_temp_conditional___15:int [line 18]\n NULLIFY(&SIL_temp_conditional___15,true); [line 18]\n PRUNE((n$4 == 0), false); [line 18]\n REMOVE_TEMPS(n$4); [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="invhouse"] +21 [label="21: Prune (false branch) \n n$1=*&SIL_temp_conditional___15:int [line 18]\n NULLIFY(&SIL_temp_conditional___15,true); [line 18]\n PRUNE((n$1 == 0), false); [line 18]\n REMOVE_TEMPS(n$1); [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="invhouse"] 21 -> 31 ; -20 [label="20: Prune (true branch) \n n$4=*&SIL_temp_conditional___15:int [line 18]\n NULLIFY(&SIL_temp_conditional___15,true); [line 18]\n PRUNE((n$4 != 0), true); [line 18]\n REMOVE_TEMPS(n$4); [line 18]\n NULLIFY(&x,false); [line 18]\n " shape="invhouse"] +20 [label="20: Prune (true branch) \n n$1=*&SIL_temp_conditional___15:int [line 18]\n NULLIFY(&SIL_temp_conditional___15,true); [line 18]\n PRUNE((n$1 != 0), true); [line 18]\n REMOVE_TEMPS(n$1); [line 18]\n NULLIFY(&x,false); [line 18]\n " shape="invhouse"] 20 -> 23 ; @@ -316,11 +316,11 @@ digraph iCFG { 18 -> 15 ; -17 [label="17: Prune (false branch) \n n$3=*&x:int * [line 18]\n PRUNE((n$3 == 0), false); [line 18]\n REMOVE_TEMPS(n$3); [line 18]\n " shape="invhouse"] +17 [label="17: Prune (false branch) \n n$0=*&x:int * [line 18]\n PRUNE((n$0 == 0), false); [line 18]\n REMOVE_TEMPS(n$0); [line 18]\n " shape="invhouse"] 17 -> 19 ; -16 [label="16: Prune (true branch) \n n$3=*&x:int * [line 18]\n PRUNE((n$3 != 0), true); [line 18]\n REMOVE_TEMPS(n$3); [line 18]\n " shape="invhouse"] +16 [label="16: Prune (true branch) \n n$0=*&x:int * [line 18]\n PRUNE((n$0 != 0), true); [line 18]\n REMOVE_TEMPS(n$0); [line 18]\n " shape="invhouse"] 16 -> 18 ; diff --git a/infer/tests/codetoanalyze/c/frontend/conditional_operator/int_negation.dot b/infer/tests/codetoanalyze/c/frontend/conditional_operator/int_negation.dot index 92cb1e2ae..33744bffb 100644 --- a/infer/tests/codetoanalyze/c/frontend/conditional_operator/int_negation.dot +++ b/infer/tests/codetoanalyze/c/frontend/conditional_operator/int_negation.dot @@ -7,11 +7,11 @@ digraph iCFG { 31 -> 28 ; -30 [label="30: Prune (false branch) \n n$6=*&x:int [line 33]\n PRUNE((n$6 == 0), false); [line 33]\n REMOVE_TEMPS(n$6); [line 33]\n " shape="invhouse"] +30 [label="30: Prune (false branch) \n n$0=*&x:int [line 33]\n PRUNE((n$0 == 0), false); [line 33]\n REMOVE_TEMPS(n$0); [line 33]\n " shape="invhouse"] 30 -> 32 ; -29 [label="29: Prune (true branch) \n n$6=*&x:int [line 33]\n PRUNE((n$6 != 0), true); [line 33]\n REMOVE_TEMPS(n$6); [line 33]\n " shape="invhouse"] +29 [label="29: Prune (true branch) \n n$0=*&x:int [line 33]\n PRUNE((n$0 != 0), true); [line 33]\n REMOVE_TEMPS(n$0); [line 33]\n " shape="invhouse"] 29 -> 31 ; @@ -19,7 +19,7 @@ digraph iCFG { 28 -> 27 ; -27 [label="27: Return Stmt \n n$7=*&SIL_temp_conditional___28:int [line 33]\n NULLIFY(&SIL_temp_conditional___28,true); [line 33]\n *&return:int =n$7 [line 33]\n REMOVE_TEMPS(n$7); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] +27 [label="27: Return Stmt \n n$1=*&SIL_temp_conditional___28:int [line 33]\n NULLIFY(&SIL_temp_conditional___28,true); [line 33]\n *&return:int =n$1 [line 33]\n REMOVE_TEMPS(n$1); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] 27 -> 26 ; @@ -39,15 +39,15 @@ digraph iCFG { 23 -> 13 ; -22 [label="22: Prune (false branch) \n PRUNE((n$5 == 0), false); [line 25]\n REMOVE_TEMPS(n$4,n$5); [line 25]\n " shape="invhouse"] +22 [label="22: Prune (false branch) \n PRUNE((n$2 == 0), false); [line 25]\n REMOVE_TEMPS(n$1,n$2); [line 25]\n " shape="invhouse"] 22 -> 24 ; -21 [label="21: Prune (true branch) \n PRUNE((n$5 != 0), true); [line 25]\n REMOVE_TEMPS(n$4,n$5); [line 25]\n " shape="invhouse"] +21 [label="21: Prune (true branch) \n PRUNE((n$2 != 0), true); [line 25]\n REMOVE_TEMPS(n$1,n$2); [line 25]\n " shape="invhouse"] 21 -> 23 ; -20 [label="20: Call _fun_identity \n n$4=*&SIL_temp_conditional___15:int [line 25]\n NULLIFY(&SIL_temp_conditional___15,true); [line 25]\n n$5=_fun_identity(n$4:int ) [line 25]\n " shape="box"] +20 [label="20: Call _fun_identity \n n$1=*&SIL_temp_conditional___15:int [line 25]\n NULLIFY(&SIL_temp_conditional___15,true); [line 25]\n n$2=_fun_identity(n$1:int ) [line 25]\n " shape="box"] 20 -> 21 ; @@ -60,11 +60,11 @@ digraph iCFG { 18 -> 15 ; -17 [label="17: Prune (false branch) \n n$3=*&x:int [line 25]\n PRUNE((n$3 == 0), false); [line 25]\n REMOVE_TEMPS(n$3); [line 25]\n " shape="invhouse"] +17 [label="17: Prune (false branch) \n n$0=*&x:int [line 25]\n PRUNE((n$0 == 0), false); [line 25]\n REMOVE_TEMPS(n$0); [line 25]\n " shape="invhouse"] 17 -> 19 ; -16 [label="16: Prune (true branch) \n n$3=*&x:int [line 25]\n PRUNE((n$3 != 0), true); [line 25]\n REMOVE_TEMPS(n$3); [line 25]\n " shape="invhouse"] +16 [label="16: Prune (true branch) \n n$0=*&x:int [line 25]\n PRUNE((n$0 != 0), true); [line 25]\n REMOVE_TEMPS(n$0); [line 25]\n " shape="invhouse"] 16 -> 18 ; @@ -92,15 +92,15 @@ digraph iCFG { 10 -> 5 ; -9 [label="9: Prune (false branch) \n PRUNE((n$2 == 0), false); [line 16]\n REMOVE_TEMPS(n$1,n$2); [line 16]\n " shape="invhouse"] +9 [label="9: Prune (false branch) \n PRUNE((n$1 == 0), false); [line 16]\n REMOVE_TEMPS(n$0,n$1); [line 16]\n " shape="invhouse"] 9 -> 11 ; -8 [label="8: Prune (true branch) \n PRUNE((n$2 != 0), true); [line 16]\n REMOVE_TEMPS(n$1,n$2); [line 16]\n " shape="invhouse"] +8 [label="8: Prune (true branch) \n PRUNE((n$1 != 0), true); [line 16]\n REMOVE_TEMPS(n$0,n$1); [line 16]\n " shape="invhouse"] 8 -> 10 ; -7 [label="7: Call _fun_identity \n n$1=*&x:int [line 16]\n n$2=_fun_identity(n$1:int ) [line 16]\n NULLIFY(&x,false); [line 16]\n " shape="box"] +7 [label="7: Call _fun_identity \n n$0=*&x:int [line 16]\n n$1=_fun_identity(n$0:int ) [line 16]\n NULLIFY(&x,false); [line 16]\n " shape="box"] 7 -> 8 ; diff --git a/infer/tests/codetoanalyze/c/frontend/conditional_operator/member_access.dot b/infer/tests/codetoanalyze/c/frontend/conditional_operator/member_access.dot index b0b81a7a2..2291d532d 100644 --- a/infer/tests/codetoanalyze/c/frontend/conditional_operator/member_access.dot +++ b/infer/tests/codetoanalyze/c/frontend/conditional_operator/member_access.dot @@ -3,7 +3,7 @@ digraph iCFG { 24 -> 20 ; -23 [label="23: Call _fun_ret_ptr \n n$7=_fun_ret_ptr(4:int ) [line 25]\n n$8=*n$7.field:int [line 25]\n DECLARE_LOCALS(&SIL_temp_conditional___20); [line 25]\n *&SIL_temp_conditional___20:int =n$8 [line 25]\n REMOVE_TEMPS(n$7,n$8); [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] +23 [label="23: Call _fun_ret_ptr \n n$0=_fun_ret_ptr(4:int ) [line 25]\n n$1=*n$0.field:int [line 25]\n DECLARE_LOCALS(&SIL_temp_conditional___20); [line 25]\n *&SIL_temp_conditional___20:int =n$1 [line 25]\n REMOVE_TEMPS(n$0,n$1); [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] 23 -> 20 ; @@ -19,7 +19,7 @@ digraph iCFG { 20 -> 19 ; -19 [label="19: DeclStmt \n n$9=*&SIL_temp_conditional___20:int [line 25]\n NULLIFY(&SIL_temp_conditional___20,true); [line 25]\n *&z:int =n$9 [line 25]\n REMOVE_TEMPS(n$9); [line 25]\n NULLIFY(&z,false); [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] +19 [label="19: DeclStmt \n n$2=*&SIL_temp_conditional___20:int [line 25]\n NULLIFY(&SIL_temp_conditional___20,true); [line 25]\n *&z:int =n$2 [line 25]\n REMOVE_TEMPS(n$2); [line 25]\n NULLIFY(&z,false); [line 25]\n APPLY_ABSTRACTION; [line 25]\n " shape="box"] 19 -> 18 ; @@ -51,7 +51,7 @@ digraph iCFG { 12 -> 11 ; -11 [label="11: DeclStmt \n n$4=*&SIL_temp_conditional___12:int [line 21]\n NULLIFY(&SIL_temp_conditional___12,true); [line 21]\n n$5=_fun_ret_ptr(n$4:int ) [line 21]\n n$6=*n$5.field:int [line 21]\n *&z:int =n$6 [line 21]\n REMOVE_TEMPS(n$4,n$5,n$6); [line 21]\n NULLIFY(&z,false); [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] +11 [label="11: DeclStmt \n n$0=*&SIL_temp_conditional___12:int [line 21]\n NULLIFY(&SIL_temp_conditional___12,true); [line 21]\n n$1=_fun_ret_ptr(n$0:int ) [line 21]\n n$2=*n$1.field:int [line 21]\n *&z:int =n$2 [line 21]\n REMOVE_TEMPS(n$0,n$1,n$2); [line 21]\n NULLIFY(&z,false); [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] 11 -> 10 ; diff --git a/infer/tests/codetoanalyze/c/frontend/gotostmt/goto_ex.dot b/infer/tests/codetoanalyze/c/frontend/gotostmt/goto_ex.dot index 641758e61..27bb80870 100644 --- a/infer/tests/codetoanalyze/c/frontend/gotostmt/goto_ex.dot +++ b/infer/tests/codetoanalyze/c/frontend/gotostmt/goto_ex.dot @@ -12,11 +12,11 @@ digraph iCFG { 250 -> 248 ; 250 -> 249 ; -249 [label="249: Prune (false branch) \n n$61=*&q:int [line 183]\n PRUNE((n$61 == 0), false); [line 183]\n REMOVE_TEMPS(n$61); [line 183]\n " shape="invhouse"] +249 [label="249: Prune (false branch) \n n$10=*&q:int [line 183]\n PRUNE((n$10 == 0), false); [line 183]\n REMOVE_TEMPS(n$10); [line 183]\n " shape="invhouse"] 249 -> 247 ; -248 [label="248: Prune (true branch) \n n$61=*&q:int [line 183]\n PRUNE((n$61 != 0), true); [line 183]\n REMOVE_TEMPS(n$61); [line 183]\n APPLY_ABSTRACTION; [line 183]\n " shape="invhouse"] +248 [label="248: Prune (true branch) \n n$10=*&q:int [line 183]\n PRUNE((n$10 != 0), true); [line 183]\n REMOVE_TEMPS(n$10); [line 183]\n APPLY_ABSTRACTION; [line 183]\n " shape="invhouse"] 248 -> 245 ; @@ -24,7 +24,7 @@ digraph iCFG { 247 -> 228 ; -246 [label="246: DeclStmt \n n$58=*&i:int [line 187]\n n$59=*&j:int [line 187]\n n$60=*&k:int [line 187]\n *&v:int =((n$58 + n$59) + n$60) [line 187]\n REMOVE_TEMPS(n$58,n$59,n$60); [line 187]\n " shape="box"] +246 [label="246: DeclStmt \n n$7=*&i:int [line 187]\n n$8=*&j:int [line 187]\n n$9=*&k:int [line 187]\n *&v:int =((n$7 + n$8) + n$9) [line 187]\n REMOVE_TEMPS(n$7,n$8,n$9); [line 187]\n " shape="box"] 246 -> 241 ; @@ -32,19 +32,19 @@ digraph iCFG { 245 -> 244 ; -244 [label="244: Call _fun_printf \n n$57=_fun_printf(\"wow\\n\":char *) [line 190]\n REMOVE_TEMPS(n$57); [line 190]\n APPLY_ABSTRACTION; [line 190]\n " shape="box"] +244 [label="244: Call _fun_printf \n n$6=_fun_printf(\"wow\\n\":char *) [line 190]\n REMOVE_TEMPS(n$6); [line 190]\n APPLY_ABSTRACTION; [line 190]\n " shape="box"] 244 -> 240 ; -243 [label="243: Prune (false branch) \n PRUNE(((n$56 >= 15) == 0), false); [line 188]\n REMOVE_TEMPS(n$56); [line 188]\n APPLY_ABSTRACTION; [line 188]\n " shape="invhouse"] +243 [label="243: Prune (false branch) \n PRUNE(((n$5 >= 15) == 0), false); [line 188]\n REMOVE_TEMPS(n$5); [line 188]\n APPLY_ABSTRACTION; [line 188]\n " shape="invhouse"] 243 -> 240 ; -242 [label="242: Prune (true branch) \n PRUNE(((n$56 >= 15) != 0), true); [line 188]\n REMOVE_TEMPS(n$56); [line 188]\n APPLY_ABSTRACTION; [line 188]\n " shape="invhouse"] +242 [label="242: Prune (true branch) \n PRUNE(((n$5 >= 15) != 0), true); [line 188]\n REMOVE_TEMPS(n$5); [line 188]\n APPLY_ABSTRACTION; [line 188]\n " shape="invhouse"] 242 -> 245 ; -241 [label="241: BinaryOperatorStmt: GE \n n$56=*&v:int [line 188]\n NULLIFY(&v,false); [line 188]\n " shape="box"] +241 [label="241: BinaryOperatorStmt: GE \n n$5=*&v:int [line 188]\n NULLIFY(&v,false); [line 188]\n " shape="box"] 241 -> 242 ; @@ -53,15 +53,15 @@ digraph iCFG { 240 -> 236 ; -239 [label="239: Prune (false branch) \n PRUNE(((n$55 < 10) == 0), false); [line 186]\n REMOVE_TEMPS(n$55); [line 186]\n APPLY_ABSTRACTION; [line 186]\n " shape="invhouse"] +239 [label="239: Prune (false branch) \n PRUNE(((n$4 < 10) == 0), false); [line 186]\n REMOVE_TEMPS(n$4); [line 186]\n APPLY_ABSTRACTION; [line 186]\n " shape="invhouse"] 239 -> 232 ; -238 [label="238: Prune (true branch) \n PRUNE(((n$55 < 10) != 0), true); [line 186]\n REMOVE_TEMPS(n$55); [line 186]\n " shape="invhouse"] +238 [label="238: Prune (true branch) \n PRUNE(((n$4 < 10) != 0), true); [line 186]\n REMOVE_TEMPS(n$4); [line 186]\n " shape="invhouse"] 238 -> 246 ; -237 [label="237: BinaryOperatorStmt: LT \n n$55=*&k:int [line 186]\n " shape="box"] +237 [label="237: BinaryOperatorStmt: LT \n n$4=*&k:int [line 186]\n " shape="box"] 237 -> 238 ; @@ -70,15 +70,15 @@ digraph iCFG { 236 -> 237 ; -235 [label="235: Prune (false branch) \n PRUNE(((n$54 < 10) == 0), false); [line 185]\n REMOVE_TEMPS(n$54); [line 185]\n APPLY_ABSTRACTION; [line 185]\n " shape="invhouse"] +235 [label="235: Prune (false branch) \n PRUNE(((n$3 < 10) == 0), false); [line 185]\n REMOVE_TEMPS(n$3); [line 185]\n APPLY_ABSTRACTION; [line 185]\n " shape="invhouse"] 235 -> 228 ; -234 [label="234: Prune (true branch) \n PRUNE(((n$54 < 10) != 0), true); [line 185]\n REMOVE_TEMPS(n$54); [line 185]\n APPLY_ABSTRACTION; [line 185]\n " shape="invhouse"] +234 [label="234: Prune (true branch) \n PRUNE(((n$3 < 10) != 0), true); [line 185]\n REMOVE_TEMPS(n$3); [line 185]\n APPLY_ABSTRACTION; [line 185]\n " shape="invhouse"] 234 -> 236 ; -233 [label="233: BinaryOperatorStmt: LT \n n$54=*&j:int [line 185]\n " shape="box"] +233 [label="233: BinaryOperatorStmt: LT \n n$3=*&j:int [line 185]\n " shape="box"] 233 -> 234 ; @@ -87,15 +87,15 @@ digraph iCFG { 232 -> 233 ; -231 [label="231: Prune (false branch) \n PRUNE(((n$53 < 10) == 0), false); [line 184]\n REMOVE_TEMPS(n$53); [line 184]\n " shape="invhouse"] +231 [label="231: Prune (false branch) \n PRUNE(((n$2 < 10) == 0), false); [line 184]\n REMOVE_TEMPS(n$2); [line 184]\n " shape="invhouse"] 231 -> 227 ; -230 [label="230: Prune (true branch) \n PRUNE(((n$53 < 10) != 0), true); [line 184]\n REMOVE_TEMPS(n$53); [line 184]\n APPLY_ABSTRACTION; [line 184]\n " shape="invhouse"] +230 [label="230: Prune (true branch) \n PRUNE(((n$2 < 10) != 0), true); [line 184]\n REMOVE_TEMPS(n$2); [line 184]\n APPLY_ABSTRACTION; [line 184]\n " shape="invhouse"] 230 -> 232 ; -229 [label="229: BinaryOperatorStmt: LT \n NULLIFY(&q,false); [line 184]\n n$53=*&i:int [line 184]\n " shape="box"] +229 [label="229: BinaryOperatorStmt: LT \n NULLIFY(&q,false); [line 184]\n n$2=*&i:int [line 184]\n " shape="box"] 229 -> 230 ; @@ -108,7 +108,7 @@ digraph iCFG { 227 -> 226 ; -226 [label="226: Call _fun_printf \n n$52=_fun_printf(\"out!\\n\":char *) [line 197]\n REMOVE_TEMPS(n$52); [line 197]\n " shape="box"] +226 [label="226: Call _fun_printf \n n$1=_fun_printf(\"out!\\n\":char *) [line 197]\n REMOVE_TEMPS(n$1); [line 197]\n " shape="box"] 226 -> 225 ; @@ -116,7 +116,7 @@ digraph iCFG { 225 -> 224 ; -224 [label="224: Call _fun_printf \n n$51=_fun_printf(\"terminating!\\n\":char *) [line 199]\n REMOVE_TEMPS(n$51); [line 199]\n " shape="box"] +224 [label="224: Call _fun_printf \n n$0=_fun_printf(\"terminating!\\n\":char *) [line 199]\n REMOVE_TEMPS(n$0); [line 199]\n " shape="box"] 224 -> 223 ; @@ -143,23 +143,23 @@ digraph iCFG { 218 -> 200 ; -217 [label="217: DeclStmt \n n$48=*&i:int [line 162]\n n$49=*&j:int [line 162]\n n$50=*&k:int [line 162]\n *&v:int =((n$48 + n$49) + n$50) [line 162]\n REMOVE_TEMPS(n$48,n$49,n$50); [line 162]\n " shape="box"] +217 [label="217: DeclStmt \n n$7=*&i:int [line 162]\n n$8=*&j:int [line 162]\n n$9=*&k:int [line 162]\n *&v:int =((n$7 + n$8) + n$9) [line 162]\n REMOVE_TEMPS(n$7,n$8,n$9); [line 162]\n " shape="box"] 217 -> 213 ; -216 [label="216: Call _fun_printf \n n$47=_fun_printf(\"wow\\n\":char *) [line 166]\n REMOVE_TEMPS(n$47); [line 166]\n " shape="box"] +216 [label="216: Call _fun_printf \n n$6=_fun_printf(\"wow\\n\":char *) [line 166]\n REMOVE_TEMPS(n$6); [line 166]\n " shape="box"] 216 -> 196 ; -215 [label="215: Prune (false branch) \n PRUNE(((n$46 >= 15) == 0), false); [line 163]\n REMOVE_TEMPS(n$46); [line 163]\n " shape="invhouse"] +215 [label="215: Prune (false branch) \n PRUNE(((n$5 >= 15) == 0), false); [line 163]\n REMOVE_TEMPS(n$5); [line 163]\n " shape="invhouse"] 215 -> 212 ; -214 [label="214: Prune (true branch) \n PRUNE(((n$46 >= 15) != 0), true); [line 163]\n REMOVE_TEMPS(n$46); [line 163]\n APPLY_ABSTRACTION; [line 163]\n " shape="invhouse"] +214 [label="214: Prune (true branch) \n PRUNE(((n$5 >= 15) != 0), true); [line 163]\n REMOVE_TEMPS(n$5); [line 163]\n APPLY_ABSTRACTION; [line 163]\n " shape="invhouse"] 214 -> 199 ; -213 [label="213: BinaryOperatorStmt: GE \n n$46=*&v:int [line 163]\n NULLIFY(&v,false); [line 163]\n " shape="box"] +213 [label="213: BinaryOperatorStmt: GE \n n$5=*&v:int [line 163]\n NULLIFY(&v,false); [line 163]\n " shape="box"] 213 -> 214 ; @@ -168,15 +168,15 @@ digraph iCFG { 212 -> 208 ; -211 [label="211: Prune (false branch) \n PRUNE(((n$45 < 10) == 0), false); [line 161]\n REMOVE_TEMPS(n$45); [line 161]\n APPLY_ABSTRACTION; [line 161]\n " shape="invhouse"] +211 [label="211: Prune (false branch) \n PRUNE(((n$4 < 10) == 0), false); [line 161]\n REMOVE_TEMPS(n$4); [line 161]\n APPLY_ABSTRACTION; [line 161]\n " shape="invhouse"] 211 -> 204 ; -210 [label="210: Prune (true branch) \n PRUNE(((n$45 < 10) != 0), true); [line 161]\n REMOVE_TEMPS(n$45); [line 161]\n " shape="invhouse"] +210 [label="210: Prune (true branch) \n PRUNE(((n$4 < 10) != 0), true); [line 161]\n REMOVE_TEMPS(n$4); [line 161]\n " shape="invhouse"] 210 -> 217 ; -209 [label="209: BinaryOperatorStmt: LT \n n$45=*&k:int [line 161]\n " shape="box"] +209 [label="209: BinaryOperatorStmt: LT \n n$4=*&k:int [line 161]\n " shape="box"] 209 -> 210 ; @@ -185,15 +185,15 @@ digraph iCFG { 208 -> 209 ; -207 [label="207: Prune (false branch) \n PRUNE(((n$44 < 10) == 0), false); [line 160]\n REMOVE_TEMPS(n$44); [line 160]\n APPLY_ABSTRACTION; [line 160]\n " shape="invhouse"] +207 [label="207: Prune (false branch) \n PRUNE(((n$3 < 10) == 0), false); [line 160]\n REMOVE_TEMPS(n$3); [line 160]\n APPLY_ABSTRACTION; [line 160]\n " shape="invhouse"] 207 -> 200 ; -206 [label="206: Prune (true branch) \n PRUNE(((n$44 < 10) != 0), true); [line 160]\n REMOVE_TEMPS(n$44); [line 160]\n APPLY_ABSTRACTION; [line 160]\n " shape="invhouse"] +206 [label="206: Prune (true branch) \n PRUNE(((n$3 < 10) != 0), true); [line 160]\n REMOVE_TEMPS(n$3); [line 160]\n APPLY_ABSTRACTION; [line 160]\n " shape="invhouse"] 206 -> 208 ; -205 [label="205: BinaryOperatorStmt: LT \n n$44=*&j:int [line 160]\n " shape="box"] +205 [label="205: BinaryOperatorStmt: LT \n n$3=*&j:int [line 160]\n " shape="box"] 205 -> 206 ; @@ -202,15 +202,15 @@ digraph iCFG { 204 -> 205 ; -203 [label="203: Prune (false branch) \n PRUNE(((n$43 < 10) == 0), false); [line 159]\n REMOVE_TEMPS(n$43); [line 159]\n APPLY_ABSTRACTION; [line 159]\n " shape="invhouse"] +203 [label="203: Prune (false branch) \n PRUNE(((n$2 < 10) == 0), false); [line 159]\n REMOVE_TEMPS(n$2); [line 159]\n APPLY_ABSTRACTION; [line 159]\n " shape="invhouse"] 203 -> 199 ; -202 [label="202: Prune (true branch) \n PRUNE(((n$43 < 10) != 0), true); [line 159]\n REMOVE_TEMPS(n$43); [line 159]\n APPLY_ABSTRACTION; [line 159]\n " shape="invhouse"] +202 [label="202: Prune (true branch) \n PRUNE(((n$2 < 10) != 0), true); [line 159]\n REMOVE_TEMPS(n$2); [line 159]\n APPLY_ABSTRACTION; [line 159]\n " shape="invhouse"] 202 -> 204 ; -201 [label="201: BinaryOperatorStmt: LT \n n$43=*&i:int [line 159]\n " shape="box"] +201 [label="201: BinaryOperatorStmt: LT \n n$2=*&i:int [line 159]\n " shape="box"] 201 -> 202 ; @@ -223,7 +223,7 @@ digraph iCFG { 199 -> 198 ; -198 [label="198: Call _fun_printf \n n$42=_fun_printf(\"out!\\n\":char *) [line 173]\n REMOVE_TEMPS(n$42); [line 173]\n " shape="box"] +198 [label="198: Call _fun_printf \n n$1=_fun_printf(\"out!\\n\":char *) [line 173]\n REMOVE_TEMPS(n$1); [line 173]\n " shape="box"] 198 -> 197 ; @@ -235,7 +235,7 @@ digraph iCFG { 196 -> 195 ; -195 [label="195: Call _fun_printf \n n$41=_fun_printf(\"terminating!\\n\":char *) [line 176]\n REMOVE_TEMPS(n$41); [line 176]\n " shape="box"] +195 [label="195: Call _fun_printf \n n$0=_fun_printf(\"terminating!\\n\":char *) [line 176]\n REMOVE_TEMPS(n$0); [line 176]\n " shape="box"] 195 -> 194 ; @@ -250,15 +250,15 @@ digraph iCFG { 192 -> 220 ; -191 [label="191: Call _fun_printf \n n$40=_fun_printf(\"B\\n\":char *) [line 135]\n REMOVE_TEMPS(n$40); [line 135]\n " shape="box"] +191 [label="191: Call _fun_printf \n n$7=_fun_printf(\"B\\n\":char *) [line 135]\n REMOVE_TEMPS(n$7); [line 135]\n " shape="box"] 191 -> 184 ; -190 [label="190: Prune (false branch) \n n$39=*&SIL_temp_conditional___183:int [line 137]\n NULLIFY(&SIL_temp_conditional___183,true); [line 137]\n PRUNE((n$39 == 0), false); [line 137]\n REMOVE_TEMPS(n$39); [line 137]\n " shape="invhouse"] +190 [label="190: Prune (false branch) \n n$6=*&SIL_temp_conditional___183:int [line 137]\n NULLIFY(&SIL_temp_conditional___183,true); [line 137]\n PRUNE((n$6 == 0), false); [line 137]\n REMOVE_TEMPS(n$6); [line 137]\n " shape="invhouse"] 190 -> 182 ; -189 [label="189: Prune (true branch) \n n$39=*&SIL_temp_conditional___183:int [line 137]\n NULLIFY(&SIL_temp_conditional___183,true); [line 137]\n PRUNE((n$39 != 0), true); [line 137]\n REMOVE_TEMPS(n$39); [line 137]\n APPLY_ABSTRACTION; [line 137]\n " shape="invhouse"] +189 [label="189: Prune (true branch) \n n$6=*&SIL_temp_conditional___183:int [line 137]\n NULLIFY(&SIL_temp_conditional___183,true); [line 137]\n PRUNE((n$6 != 0), true); [line 137]\n REMOVE_TEMPS(n$6); [line 137]\n APPLY_ABSTRACTION; [line 137]\n " shape="invhouse"] 189 -> 164 ; @@ -270,15 +270,15 @@ digraph iCFG { 187 -> 183 ; -186 [label="186: Prune (false branch) \n PRUNE((n$38 == 0), false); [line 137]\n REMOVE_TEMPS(n$38); [line 137]\n " shape="invhouse"] +186 [label="186: Prune (false branch) \n PRUNE((n$5 == 0), false); [line 137]\n REMOVE_TEMPS(n$5); [line 137]\n " shape="invhouse"] 186 -> 188 ; -185 [label="185: Prune (true branch) \n PRUNE((n$38 != 0), true); [line 137]\n REMOVE_TEMPS(n$38); [line 137]\n " shape="invhouse"] +185 [label="185: Prune (true branch) \n PRUNE((n$5 != 0), true); [line 137]\n REMOVE_TEMPS(n$5); [line 137]\n " shape="invhouse"] 185 -> 187 ; -184 [label="184: Call _fun_getValue \n n$38=_fun_getValue() [line 137]\n " shape="box"] +184 [label="184: Call _fun_getValue \n n$5=_fun_getValue() [line 137]\n " shape="box"] 184 -> 185 ; @@ -292,11 +292,11 @@ digraph iCFG { 182 -> 175 ; -181 [label="181: Prune (false branch) \n n$37=*&SIL_temp_conditional___174:int [line 139]\n NULLIFY(&SIL_temp_conditional___174,true); [line 139]\n PRUNE((n$37 == 0), false); [line 139]\n REMOVE_TEMPS(n$37); [line 139]\n " shape="invhouse"] +181 [label="181: Prune (false branch) \n n$4=*&SIL_temp_conditional___174:int [line 139]\n NULLIFY(&SIL_temp_conditional___174,true); [line 139]\n PRUNE((n$4 == 0), false); [line 139]\n REMOVE_TEMPS(n$4); [line 139]\n " shape="invhouse"] 181 -> 173 ; -180 [label="180: Prune (true branch) \n n$37=*&SIL_temp_conditional___174:int [line 139]\n NULLIFY(&SIL_temp_conditional___174,true); [line 139]\n PRUNE((n$37 != 0), true); [line 139]\n REMOVE_TEMPS(n$37); [line 139]\n APPLY_ABSTRACTION; [line 139]\n " shape="invhouse"] +180 [label="180: Prune (true branch) \n n$4=*&SIL_temp_conditional___174:int [line 139]\n NULLIFY(&SIL_temp_conditional___174,true); [line 139]\n PRUNE((n$4 != 0), true); [line 139]\n REMOVE_TEMPS(n$4); [line 139]\n APPLY_ABSTRACTION; [line 139]\n " shape="invhouse"] 180 -> 162 ; @@ -308,15 +308,15 @@ digraph iCFG { 178 -> 174 ; -177 [label="177: Prune (false branch) \n PRUNE((n$36 == 0), false); [line 139]\n REMOVE_TEMPS(n$36); [line 139]\n " shape="invhouse"] +177 [label="177: Prune (false branch) \n PRUNE((n$3 == 0), false); [line 139]\n REMOVE_TEMPS(n$3); [line 139]\n " shape="invhouse"] 177 -> 179 ; -176 [label="176: Prune (true branch) \n PRUNE((n$36 != 0), true); [line 139]\n REMOVE_TEMPS(n$36); [line 139]\n " shape="invhouse"] +176 [label="176: Prune (true branch) \n PRUNE((n$3 != 0), true); [line 139]\n REMOVE_TEMPS(n$3); [line 139]\n " shape="invhouse"] 176 -> 178 ; -175 [label="175: Call _fun_getValue \n n$36=_fun_getValue() [line 139]\n " shape="box"] +175 [label="175: Call _fun_getValue \n n$3=_fun_getValue() [line 139]\n " shape="box"] 175 -> 176 ; @@ -334,15 +334,15 @@ digraph iCFG { 172 -> 191 ; -171 [label="171: Prune (false branch) \n PRUNE(((n$35 > 1) == 0), false); [line 141]\n REMOVE_TEMPS(n$35); [line 141]\n " shape="invhouse"] +171 [label="171: Prune (false branch) \n PRUNE(((n$2 > 1) == 0), false); [line 141]\n REMOVE_TEMPS(n$2); [line 141]\n " shape="invhouse"] 171 -> 168 ; -170 [label="170: Prune (true branch) \n PRUNE(((n$35 > 1) != 0), true); [line 141]\n REMOVE_TEMPS(n$35); [line 141]\n APPLY_ABSTRACTION; [line 141]\n " shape="invhouse"] +170 [label="170: Prune (true branch) \n PRUNE(((n$2 > 1) != 0), true); [line 141]\n REMOVE_TEMPS(n$2); [line 141]\n APPLY_ABSTRACTION; [line 141]\n " shape="invhouse"] 170 -> 172 ; -169 [label="169: BinaryOperatorStmt: GT \n n$35=_fun_getValue() [line 141]\n " shape="box"] +169 [label="169: BinaryOperatorStmt: GT \n n$2=_fun_getValue() [line 141]\n " shape="box"] 169 -> 170 ; @@ -355,7 +355,7 @@ digraph iCFG { 167 -> 166 ; -166 [label="166: Call _fun_printf \n n$34=_fun_printf(\"A\\n\":char *) [line 147]\n REMOVE_TEMPS(n$34); [line 147]\n " shape="box"] +166 [label="166: Call _fun_printf \n n$1=_fun_printf(\"A\\n\":char *) [line 147]\n REMOVE_TEMPS(n$1); [line 147]\n " shape="box"] 166 -> 165 ; @@ -367,7 +367,7 @@ digraph iCFG { 164 -> 163 ; -163 [label="163: Call _fun_printf \n n$33=_fun_printf(\"exit\\n\":char *) [line 151]\n REMOVE_TEMPS(n$33); [line 151]\n APPLY_ABSTRACTION; [line 151]\n " shape="box"] +163 [label="163: Call _fun_printf \n n$0=_fun_printf(\"exit\\n\":char *) [line 151]\n REMOVE_TEMPS(n$0); [line 151]\n APPLY_ABSTRACTION; [line 151]\n " shape="box"] 163 -> 162 ; @@ -382,15 +382,15 @@ digraph iCFG { 160 -> 172 ; -159 [label="159: Call _fun_printf \n n$32=_fun_printf(\"B\\n\":char *) [line 112]\n REMOVE_TEMPS(n$32); [line 112]\n " shape="box"] +159 [label="159: Call _fun_printf \n n$7=_fun_printf(\"B\\n\":char *) [line 112]\n REMOVE_TEMPS(n$7); [line 112]\n " shape="box"] 159 -> 152 ; -158 [label="158: Prune (false branch) \n n$31=*&SIL_temp_conditional___151:int [line 114]\n NULLIFY(&SIL_temp_conditional___151,true); [line 114]\n PRUNE((n$31 == 0), false); [line 114]\n REMOVE_TEMPS(n$31); [line 114]\n " shape="invhouse"] +158 [label="158: Prune (false branch) \n n$6=*&SIL_temp_conditional___151:int [line 114]\n NULLIFY(&SIL_temp_conditional___151,true); [line 114]\n PRUNE((n$6 == 0), false); [line 114]\n REMOVE_TEMPS(n$6); [line 114]\n " shape="invhouse"] 158 -> 150 ; -157 [label="157: Prune (true branch) \n n$31=*&SIL_temp_conditional___151:int [line 114]\n NULLIFY(&SIL_temp_conditional___151,true); [line 114]\n PRUNE((n$31 != 0), true); [line 114]\n REMOVE_TEMPS(n$31); [line 114]\n APPLY_ABSTRACTION; [line 114]\n " shape="invhouse"] +157 [label="157: Prune (true branch) \n n$6=*&SIL_temp_conditional___151:int [line 114]\n NULLIFY(&SIL_temp_conditional___151,true); [line 114]\n PRUNE((n$6 != 0), true); [line 114]\n REMOVE_TEMPS(n$6); [line 114]\n APPLY_ABSTRACTION; [line 114]\n " shape="invhouse"] 157 -> 132 ; @@ -402,15 +402,15 @@ digraph iCFG { 155 -> 151 ; -154 [label="154: Prune (false branch) \n PRUNE((n$30 == 0), false); [line 114]\n REMOVE_TEMPS(n$30); [line 114]\n " shape="invhouse"] +154 [label="154: Prune (false branch) \n PRUNE((n$5 == 0), false); [line 114]\n REMOVE_TEMPS(n$5); [line 114]\n " shape="invhouse"] 154 -> 156 ; -153 [label="153: Prune (true branch) \n PRUNE((n$30 != 0), true); [line 114]\n REMOVE_TEMPS(n$30); [line 114]\n " shape="invhouse"] +153 [label="153: Prune (true branch) \n PRUNE((n$5 != 0), true); [line 114]\n REMOVE_TEMPS(n$5); [line 114]\n " shape="invhouse"] 153 -> 155 ; -152 [label="152: Call _fun_getValue \n n$30=_fun_getValue() [line 114]\n " shape="box"] +152 [label="152: Call _fun_getValue \n n$5=_fun_getValue() [line 114]\n " shape="box"] 152 -> 153 ; @@ -424,11 +424,11 @@ digraph iCFG { 150 -> 143 ; -149 [label="149: Prune (false branch) \n n$29=*&SIL_temp_conditional___142:int [line 116]\n NULLIFY(&SIL_temp_conditional___142,true); [line 116]\n PRUNE((n$29 == 0), false); [line 116]\n REMOVE_TEMPS(n$29); [line 116]\n " shape="invhouse"] +149 [label="149: Prune (false branch) \n n$4=*&SIL_temp_conditional___142:int [line 116]\n NULLIFY(&SIL_temp_conditional___142,true); [line 116]\n PRUNE((n$4 == 0), false); [line 116]\n REMOVE_TEMPS(n$4); [line 116]\n " shape="invhouse"] 149 -> 141 ; -148 [label="148: Prune (true branch) \n n$29=*&SIL_temp_conditional___142:int [line 116]\n NULLIFY(&SIL_temp_conditional___142,true); [line 116]\n PRUNE((n$29 != 0), true); [line 116]\n REMOVE_TEMPS(n$29); [line 116]\n APPLY_ABSTRACTION; [line 116]\n " shape="invhouse"] +148 [label="148: Prune (true branch) \n n$4=*&SIL_temp_conditional___142:int [line 116]\n NULLIFY(&SIL_temp_conditional___142,true); [line 116]\n PRUNE((n$4 != 0), true); [line 116]\n REMOVE_TEMPS(n$4); [line 116]\n APPLY_ABSTRACTION; [line 116]\n " shape="invhouse"] 148 -> 130 ; @@ -440,15 +440,15 @@ digraph iCFG { 146 -> 142 ; -145 [label="145: Prune (false branch) \n PRUNE((n$28 == 0), false); [line 116]\n REMOVE_TEMPS(n$28); [line 116]\n " shape="invhouse"] +145 [label="145: Prune (false branch) \n PRUNE((n$3 == 0), false); [line 116]\n REMOVE_TEMPS(n$3); [line 116]\n " shape="invhouse"] 145 -> 147 ; -144 [label="144: Prune (true branch) \n PRUNE((n$28 != 0), true); [line 116]\n REMOVE_TEMPS(n$28); [line 116]\n " shape="invhouse"] +144 [label="144: Prune (true branch) \n PRUNE((n$3 != 0), true); [line 116]\n REMOVE_TEMPS(n$3); [line 116]\n " shape="invhouse"] 144 -> 146 ; -143 [label="143: Call _fun_getValue \n n$28=_fun_getValue() [line 116]\n " shape="box"] +143 [label="143: Call _fun_getValue \n n$3=_fun_getValue() [line 116]\n " shape="box"] 143 -> 144 ; @@ -466,15 +466,15 @@ digraph iCFG { 140 -> 159 ; -139 [label="139: Prune (false branch) \n PRUNE(((n$27 > 1) == 0), false); [line 118]\n REMOVE_TEMPS(n$27); [line 118]\n " shape="invhouse"] +139 [label="139: Prune (false branch) \n PRUNE(((n$2 > 1) == 0), false); [line 118]\n REMOVE_TEMPS(n$2); [line 118]\n " shape="invhouse"] 139 -> 136 ; -138 [label="138: Prune (true branch) \n PRUNE(((n$27 > 1) != 0), true); [line 118]\n REMOVE_TEMPS(n$27); [line 118]\n APPLY_ABSTRACTION; [line 118]\n " shape="invhouse"] +138 [label="138: Prune (true branch) \n PRUNE(((n$2 > 1) != 0), true); [line 118]\n REMOVE_TEMPS(n$2); [line 118]\n APPLY_ABSTRACTION; [line 118]\n " shape="invhouse"] 138 -> 140 ; -137 [label="137: BinaryOperatorStmt: GT \n n$27=_fun_getValue() [line 118]\n " shape="box"] +137 [label="137: BinaryOperatorStmt: GT \n n$2=_fun_getValue() [line 118]\n " shape="box"] 137 -> 138 ; @@ -487,7 +487,7 @@ digraph iCFG { 135 -> 134 ; -134 [label="134: Call _fun_printf \n n$26=_fun_printf(\"A\\n\":char *) [line 124]\n REMOVE_TEMPS(n$26); [line 124]\n " shape="box"] +134 [label="134: Call _fun_printf \n n$1=_fun_printf(\"A\\n\":char *) [line 124]\n REMOVE_TEMPS(n$1); [line 124]\n " shape="box"] 134 -> 133 ; @@ -499,7 +499,7 @@ digraph iCFG { 132 -> 131 ; -131 [label="131: Call _fun_printf \n n$25=_fun_printf(\"exit\\n\":char *) [line 128]\n REMOVE_TEMPS(n$25); [line 128]\n APPLY_ABSTRACTION; [line 128]\n " shape="box"] +131 [label="131: Call _fun_printf \n n$0=_fun_printf(\"exit\\n\":char *) [line 128]\n REMOVE_TEMPS(n$0); [line 128]\n APPLY_ABSTRACTION; [line 128]\n " shape="box"] 131 -> 130 ; @@ -514,15 +514,15 @@ digraph iCFG { 128 -> 140 ; -127 [label="127: Call _fun_printf \n n$24=_fun_printf(\"B\\n\":char *) [line 90]\n REMOVE_TEMPS(n$24); [line 90]\n " shape="box"] +127 [label="127: Call _fun_printf \n n$8=_fun_printf(\"B\\n\":char *) [line 90]\n REMOVE_TEMPS(n$8); [line 90]\n " shape="box"] 127 -> 120 ; -126 [label="126: Prune (false branch) \n n$23=*&SIL_temp_conditional___119:int [line 92]\n NULLIFY(&SIL_temp_conditional___119,true); [line 92]\n PRUNE((n$23 == 0), false); [line 92]\n REMOVE_TEMPS(n$23); [line 92]\n " shape="invhouse"] +126 [label="126: Prune (false branch) \n n$7=*&SIL_temp_conditional___119:int [line 92]\n NULLIFY(&SIL_temp_conditional___119,true); [line 92]\n PRUNE((n$7 == 0), false); [line 92]\n REMOVE_TEMPS(n$7); [line 92]\n " shape="invhouse"] 126 -> 118 ; -125 [label="125: Prune (true branch) \n n$23=*&SIL_temp_conditional___119:int [line 92]\n NULLIFY(&SIL_temp_conditional___119,true); [line 92]\n PRUNE((n$23 != 0), true); [line 92]\n REMOVE_TEMPS(n$23); [line 92]\n APPLY_ABSTRACTION; [line 92]\n " shape="invhouse"] +125 [label="125: Prune (true branch) \n n$7=*&SIL_temp_conditional___119:int [line 92]\n NULLIFY(&SIL_temp_conditional___119,true); [line 92]\n PRUNE((n$7 != 0), true); [line 92]\n REMOVE_TEMPS(n$7); [line 92]\n APPLY_ABSTRACTION; [line 92]\n " shape="invhouse"] 125 -> 99 ; @@ -534,15 +534,15 @@ digraph iCFG { 123 -> 119 ; -122 [label="122: Prune (false branch) \n PRUNE((n$22 == 0), false); [line 92]\n REMOVE_TEMPS(n$22); [line 92]\n " shape="invhouse"] +122 [label="122: Prune (false branch) \n PRUNE((n$6 == 0), false); [line 92]\n REMOVE_TEMPS(n$6); [line 92]\n " shape="invhouse"] 122 -> 124 ; -121 [label="121: Prune (true branch) \n PRUNE((n$22 != 0), true); [line 92]\n REMOVE_TEMPS(n$22); [line 92]\n " shape="invhouse"] +121 [label="121: Prune (true branch) \n PRUNE((n$6 != 0), true); [line 92]\n REMOVE_TEMPS(n$6); [line 92]\n " shape="invhouse"] 121 -> 123 ; -120 [label="120: Call _fun_getValue \n n$22=_fun_getValue() [line 92]\n " shape="box"] +120 [label="120: Call _fun_getValue \n n$6=_fun_getValue() [line 92]\n " shape="box"] 120 -> 121 ; @@ -556,11 +556,11 @@ digraph iCFG { 118 -> 111 ; -117 [label="117: Prune (false branch) \n n$21=*&SIL_temp_conditional___110:int [line 94]\n NULLIFY(&SIL_temp_conditional___110,true); [line 94]\n PRUNE((n$21 == 0), false); [line 94]\n REMOVE_TEMPS(n$21); [line 94]\n " shape="invhouse"] +117 [label="117: Prune (false branch) \n n$5=*&SIL_temp_conditional___110:int [line 94]\n NULLIFY(&SIL_temp_conditional___110,true); [line 94]\n PRUNE((n$5 == 0), false); [line 94]\n REMOVE_TEMPS(n$5); [line 94]\n " shape="invhouse"] 117 -> 109 ; -116 [label="116: Prune (true branch) \n n$21=*&SIL_temp_conditional___110:int [line 94]\n NULLIFY(&SIL_temp_conditional___110,true); [line 94]\n PRUNE((n$21 != 0), true); [line 94]\n REMOVE_TEMPS(n$21); [line 94]\n APPLY_ABSTRACTION; [line 94]\n " shape="invhouse"] +116 [label="116: Prune (true branch) \n n$5=*&SIL_temp_conditional___110:int [line 94]\n NULLIFY(&SIL_temp_conditional___110,true); [line 94]\n PRUNE((n$5 != 0), true); [line 94]\n REMOVE_TEMPS(n$5); [line 94]\n APPLY_ABSTRACTION; [line 94]\n " shape="invhouse"] 116 -> 102 ; @@ -572,15 +572,15 @@ digraph iCFG { 114 -> 110 ; -113 [label="113: Prune (false branch) \n PRUNE((n$20 == 0), false); [line 94]\n REMOVE_TEMPS(n$20); [line 94]\n " shape="invhouse"] +113 [label="113: Prune (false branch) \n PRUNE((n$4 == 0), false); [line 94]\n REMOVE_TEMPS(n$4); [line 94]\n " shape="invhouse"] 113 -> 115 ; -112 [label="112: Prune (true branch) \n PRUNE((n$20 != 0), true); [line 94]\n REMOVE_TEMPS(n$20); [line 94]\n " shape="invhouse"] +112 [label="112: Prune (true branch) \n PRUNE((n$4 != 0), true); [line 94]\n REMOVE_TEMPS(n$4); [line 94]\n " shape="invhouse"] 112 -> 114 ; -111 [label="111: Call _fun_getValue \n n$20=_fun_getValue() [line 94]\n " shape="box"] +111 [label="111: Call _fun_getValue \n n$4=_fun_getValue() [line 94]\n " shape="box"] 111 -> 112 ; @@ -598,15 +598,15 @@ digraph iCFG { 108 -> 127 ; -107 [label="107: Prune (false branch) \n PRUNE(((n$19 > 1) == 0), false); [line 96]\n REMOVE_TEMPS(n$19); [line 96]\n " shape="invhouse"] +107 [label="107: Prune (false branch) \n PRUNE(((n$3 > 1) == 0), false); [line 96]\n REMOVE_TEMPS(n$3); [line 96]\n " shape="invhouse"] 107 -> 104 ; -106 [label="106: Prune (true branch) \n PRUNE(((n$19 > 1) != 0), true); [line 96]\n REMOVE_TEMPS(n$19); [line 96]\n APPLY_ABSTRACTION; [line 96]\n " shape="invhouse"] +106 [label="106: Prune (true branch) \n PRUNE(((n$3 > 1) != 0), true); [line 96]\n REMOVE_TEMPS(n$3); [line 96]\n APPLY_ABSTRACTION; [line 96]\n " shape="invhouse"] 106 -> 108 ; -105 [label="105: BinaryOperatorStmt: GT \n n$19=_fun_getValue() [line 96]\n " shape="box"] +105 [label="105: BinaryOperatorStmt: GT \n n$3=_fun_getValue() [line 96]\n " shape="box"] 105 -> 106 ; @@ -615,7 +615,7 @@ digraph iCFG { 104 -> 103 ; -103 [label="103: Call _fun_printf \n n$18=_fun_printf(\"g4\\n\":char *) [line 98]\n REMOVE_TEMPS(n$18); [line 98]\n APPLY_ABSTRACTION; [line 98]\n " shape="box"] +103 [label="103: Call _fun_printf \n n$2=_fun_printf(\"g4\\n\":char *) [line 98]\n REMOVE_TEMPS(n$2); [line 98]\n APPLY_ABSTRACTION; [line 98]\n " shape="box"] 103 -> 102 ; @@ -627,7 +627,7 @@ digraph iCFG { 101 -> 100 ; -100 [label="100: Call _fun_printf \n n$17=_fun_printf(\"A\\n\":char *) [line 102]\n REMOVE_TEMPS(n$17); [line 102]\n APPLY_ABSTRACTION; [line 102]\n " shape="box"] +100 [label="100: Call _fun_printf \n n$1=_fun_printf(\"A\\n\":char *) [line 102]\n REMOVE_TEMPS(n$1); [line 102]\n APPLY_ABSTRACTION; [line 102]\n " shape="box"] 100 -> 99 ; @@ -635,7 +635,7 @@ digraph iCFG { 99 -> 98 ; -98 [label="98: Call _fun_printf \n n$16=_fun_printf(\"exit\\n\":char *) [line 105]\n REMOVE_TEMPS(n$16); [line 105]\n " shape="box"] +98 [label="98: Call _fun_printf \n n$0=_fun_printf(\"exit\\n\":char *) [line 105]\n REMOVE_TEMPS(n$0); [line 105]\n " shape="box"] 98 -> 97 ; @@ -650,15 +650,15 @@ digraph iCFG { 95 -> 108 ; -94 [label="94: Call _fun_printf \n n$15=_fun_printf(\"B\\n\":char *) [line 67]\n REMOVE_TEMPS(n$15); [line 67]\n " shape="box"] +94 [label="94: Call _fun_printf \n n$8=_fun_printf(\"B\\n\":char *) [line 67]\n REMOVE_TEMPS(n$8); [line 67]\n " shape="box"] 94 -> 87 ; -93 [label="93: Prune (false branch) \n n$14=*&SIL_temp_conditional___86:int [line 69]\n NULLIFY(&SIL_temp_conditional___86,true); [line 69]\n PRUNE((n$14 == 0), false); [line 69]\n REMOVE_TEMPS(n$14); [line 69]\n " shape="invhouse"] +93 [label="93: Prune (false branch) \n n$7=*&SIL_temp_conditional___86:int [line 69]\n NULLIFY(&SIL_temp_conditional___86,true); [line 69]\n PRUNE((n$7 == 0), false); [line 69]\n REMOVE_TEMPS(n$7); [line 69]\n " shape="invhouse"] 93 -> 85 ; -92 [label="92: Prune (true branch) \n n$14=*&SIL_temp_conditional___86:int [line 69]\n NULLIFY(&SIL_temp_conditional___86,true); [line 69]\n PRUNE((n$14 != 0), true); [line 69]\n REMOVE_TEMPS(n$14); [line 69]\n APPLY_ABSTRACTION; [line 69]\n " shape="invhouse"] +92 [label="92: Prune (true branch) \n n$7=*&SIL_temp_conditional___86:int [line 69]\n NULLIFY(&SIL_temp_conditional___86,true); [line 69]\n PRUNE((n$7 != 0), true); [line 69]\n REMOVE_TEMPS(n$7); [line 69]\n APPLY_ABSTRACTION; [line 69]\n " shape="invhouse"] 92 -> 65 ; @@ -670,15 +670,15 @@ digraph iCFG { 90 -> 86 ; -89 [label="89: Prune (false branch) \n PRUNE((n$13 == 0), false); [line 69]\n REMOVE_TEMPS(n$13); [line 69]\n " shape="invhouse"] +89 [label="89: Prune (false branch) \n PRUNE((n$6 == 0), false); [line 69]\n REMOVE_TEMPS(n$6); [line 69]\n " shape="invhouse"] 89 -> 91 ; -88 [label="88: Prune (true branch) \n PRUNE((n$13 != 0), true); [line 69]\n REMOVE_TEMPS(n$13); [line 69]\n " shape="invhouse"] +88 [label="88: Prune (true branch) \n PRUNE((n$6 != 0), true); [line 69]\n REMOVE_TEMPS(n$6); [line 69]\n " shape="invhouse"] 88 -> 90 ; -87 [label="87: Call _fun_getValue \n n$13=_fun_getValue() [line 69]\n " shape="box"] +87 [label="87: Call _fun_getValue \n n$6=_fun_getValue() [line 69]\n " shape="box"] 87 -> 88 ; @@ -692,11 +692,11 @@ digraph iCFG { 85 -> 78 ; -84 [label="84: Prune (false branch) \n n$12=*&SIL_temp_conditional___77:int [line 71]\n NULLIFY(&SIL_temp_conditional___77,true); [line 71]\n PRUNE((n$12 == 0), false); [line 71]\n REMOVE_TEMPS(n$12); [line 71]\n " shape="invhouse"] +84 [label="84: Prune (false branch) \n n$5=*&SIL_temp_conditional___77:int [line 71]\n NULLIFY(&SIL_temp_conditional___77,true); [line 71]\n PRUNE((n$5 == 0), false); [line 71]\n REMOVE_TEMPS(n$5); [line 71]\n " shape="invhouse"] 84 -> 76 ; -83 [label="83: Prune (true branch) \n n$12=*&SIL_temp_conditional___77:int [line 71]\n NULLIFY(&SIL_temp_conditional___77,true); [line 71]\n PRUNE((n$12 != 0), true); [line 71]\n REMOVE_TEMPS(n$12); [line 71]\n " shape="invhouse"] +83 [label="83: Prune (true branch) \n n$5=*&SIL_temp_conditional___77:int [line 71]\n NULLIFY(&SIL_temp_conditional___77,true); [line 71]\n PRUNE((n$5 != 0), true); [line 71]\n REMOVE_TEMPS(n$5); [line 71]\n " shape="invhouse"] 83 -> 68 ; @@ -708,15 +708,15 @@ digraph iCFG { 81 -> 77 ; -80 [label="80: Prune (false branch) \n PRUNE((n$11 == 0), false); [line 71]\n REMOVE_TEMPS(n$11); [line 71]\n " shape="invhouse"] +80 [label="80: Prune (false branch) \n PRUNE((n$4 == 0), false); [line 71]\n REMOVE_TEMPS(n$4); [line 71]\n " shape="invhouse"] 80 -> 82 ; -79 [label="79: Prune (true branch) \n PRUNE((n$11 != 0), true); [line 71]\n REMOVE_TEMPS(n$11); [line 71]\n " shape="invhouse"] +79 [label="79: Prune (true branch) \n PRUNE((n$4 != 0), true); [line 71]\n REMOVE_TEMPS(n$4); [line 71]\n " shape="invhouse"] 79 -> 81 ; -78 [label="78: Call _fun_getValue \n n$11=_fun_getValue() [line 71]\n " shape="box"] +78 [label="78: Call _fun_getValue \n n$4=_fun_getValue() [line 71]\n " shape="box"] 78 -> 79 ; @@ -734,15 +734,15 @@ digraph iCFG { 75 -> 94 ; -74 [label="74: Prune (false branch) \n PRUNE(((n$10 > 1) == 0), false); [line 73]\n REMOVE_TEMPS(n$10); [line 73]\n " shape="invhouse"] +74 [label="74: Prune (false branch) \n PRUNE(((n$3 > 1) == 0), false); [line 73]\n REMOVE_TEMPS(n$3); [line 73]\n " shape="invhouse"] 74 -> 71 ; -73 [label="73: Prune (true branch) \n PRUNE(((n$10 > 1) != 0), true); [line 73]\n REMOVE_TEMPS(n$10); [line 73]\n APPLY_ABSTRACTION; [line 73]\n " shape="invhouse"] +73 [label="73: Prune (true branch) \n PRUNE(((n$3 > 1) != 0), true); [line 73]\n REMOVE_TEMPS(n$3); [line 73]\n APPLY_ABSTRACTION; [line 73]\n " shape="invhouse"] 73 -> 75 ; -72 [label="72: BinaryOperatorStmt: GT \n n$10=_fun_getValue() [line 73]\n " shape="box"] +72 [label="72: BinaryOperatorStmt: GT \n n$3=_fun_getValue() [line 73]\n " shape="box"] 72 -> 73 ; @@ -751,7 +751,7 @@ digraph iCFG { 71 -> 70 ; -70 [label="70: Call _fun_printf \n n$9=_fun_printf(\"g3\\n\":char *) [line 75]\n REMOVE_TEMPS(n$9); [line 75]\n " shape="box"] +70 [label="70: Call _fun_printf \n n$2=_fun_printf(\"g3\\n\":char *) [line 75]\n REMOVE_TEMPS(n$2); [line 75]\n " shape="box"] 70 -> 69 ; @@ -767,7 +767,7 @@ digraph iCFG { 67 -> 66 ; -66 [label="66: Call _fun_printf \n n$8=_fun_printf(\"A\\n\":char *) [line 80]\n REMOVE_TEMPS(n$8); [line 80]\n APPLY_ABSTRACTION; [line 80]\n " shape="box"] +66 [label="66: Call _fun_printf \n n$1=_fun_printf(\"A\\n\":char *) [line 80]\n REMOVE_TEMPS(n$1); [line 80]\n APPLY_ABSTRACTION; [line 80]\n " shape="box"] 66 -> 65 ; @@ -775,7 +775,7 @@ digraph iCFG { 65 -> 64 ; -64 [label="64: Call _fun_printf \n n$7=_fun_printf(\"exit\\n\":char *) [line 83]\n REMOVE_TEMPS(n$7); [line 83]\n " shape="box"] +64 [label="64: Call _fun_printf \n n$0=_fun_printf(\"exit\\n\":char *) [line 83]\n REMOVE_TEMPS(n$0); [line 83]\n " shape="box"] 64 -> 63 ; @@ -798,11 +798,11 @@ digraph iCFG { 59 -> 52 ; -58 [label="58: Prune (false branch) \n n$6=*&SIL_temp_conditional___51:int [line 47]\n NULLIFY(&SIL_temp_conditional___51,true); [line 47]\n PRUNE((n$6 == 0), false); [line 47]\n REMOVE_TEMPS(n$6); [line 47]\n " shape="invhouse"] +58 [label="58: Prune (false branch) \n n$4=*&SIL_temp_conditional___51:int [line 47]\n NULLIFY(&SIL_temp_conditional___51,true); [line 47]\n PRUNE((n$4 == 0), false); [line 47]\n REMOVE_TEMPS(n$4); [line 47]\n " shape="invhouse"] 58 -> 50 ; -57 [label="57: Prune (true branch) \n n$6=*&SIL_temp_conditional___51:int [line 47]\n NULLIFY(&SIL_temp_conditional___51,true); [line 47]\n PRUNE((n$6 != 0), true); [line 47]\n REMOVE_TEMPS(n$6); [line 47]\n " shape="invhouse"] +57 [label="57: Prune (true branch) \n n$4=*&SIL_temp_conditional___51:int [line 47]\n NULLIFY(&SIL_temp_conditional___51,true); [line 47]\n PRUNE((n$4 != 0), true); [line 47]\n REMOVE_TEMPS(n$4); [line 47]\n " shape="invhouse"] 57 -> 31 ; @@ -814,15 +814,15 @@ digraph iCFG { 55 -> 51 ; -54 [label="54: Prune (false branch) \n PRUNE((n$5 == 0), false); [line 47]\n REMOVE_TEMPS(n$5); [line 47]\n " shape="invhouse"] +54 [label="54: Prune (false branch) \n PRUNE((n$3 == 0), false); [line 47]\n REMOVE_TEMPS(n$3); [line 47]\n " shape="invhouse"] 54 -> 56 ; -53 [label="53: Prune (true branch) \n PRUNE((n$5 != 0), true); [line 47]\n REMOVE_TEMPS(n$5); [line 47]\n " shape="invhouse"] +53 [label="53: Prune (true branch) \n PRUNE((n$3 != 0), true); [line 47]\n REMOVE_TEMPS(n$3); [line 47]\n " shape="invhouse"] 53 -> 55 ; -52 [label="52: Call _fun_getValue \n n$5=_fun_getValue() [line 47]\n " shape="box"] +52 [label="52: Call _fun_getValue \n n$3=_fun_getValue() [line 47]\n " shape="box"] 52 -> 53 ; @@ -836,11 +836,11 @@ digraph iCFG { 50 -> 43 ; -49 [label="49: Prune (false branch) \n n$4=*&SIL_temp_conditional___42:int [line 49]\n NULLIFY(&SIL_temp_conditional___42,true); [line 49]\n PRUNE((n$4 == 0), false); [line 49]\n REMOVE_TEMPS(n$4); [line 49]\n " shape="invhouse"] +49 [label="49: Prune (false branch) \n n$2=*&SIL_temp_conditional___42:int [line 49]\n NULLIFY(&SIL_temp_conditional___42,true); [line 49]\n PRUNE((n$2 == 0), false); [line 49]\n REMOVE_TEMPS(n$2); [line 49]\n " shape="invhouse"] 49 -> 41 ; -48 [label="48: Prune (true branch) \n n$4=*&SIL_temp_conditional___42:int [line 49]\n NULLIFY(&SIL_temp_conditional___42,true); [line 49]\n PRUNE((n$4 != 0), true); [line 49]\n REMOVE_TEMPS(n$4); [line 49]\n " shape="invhouse"] +48 [label="48: Prune (true branch) \n n$2=*&SIL_temp_conditional___42:int [line 49]\n NULLIFY(&SIL_temp_conditional___42,true); [line 49]\n PRUNE((n$2 != 0), true); [line 49]\n REMOVE_TEMPS(n$2); [line 49]\n " shape="invhouse"] 48 -> 34 ; @@ -852,15 +852,15 @@ digraph iCFG { 46 -> 42 ; -45 [label="45: Prune (false branch) \n PRUNE((n$3 == 0), false); [line 49]\n REMOVE_TEMPS(n$3); [line 49]\n " shape="invhouse"] +45 [label="45: Prune (false branch) \n PRUNE((n$1 == 0), false); [line 49]\n REMOVE_TEMPS(n$1); [line 49]\n " shape="invhouse"] 45 -> 47 ; -44 [label="44: Prune (true branch) \n PRUNE((n$3 != 0), true); [line 49]\n REMOVE_TEMPS(n$3); [line 49]\n " shape="invhouse"] +44 [label="44: Prune (true branch) \n PRUNE((n$1 != 0), true); [line 49]\n REMOVE_TEMPS(n$1); [line 49]\n " shape="invhouse"] 44 -> 46 ; -43 [label="43: Call _fun_getValue \n n$3=_fun_getValue() [line 49]\n " shape="box"] +43 [label="43: Call _fun_getValue \n n$1=_fun_getValue() [line 49]\n " shape="box"] 43 -> 44 ; @@ -878,15 +878,15 @@ digraph iCFG { 40 -> 59 ; -39 [label="39: Prune (false branch) \n PRUNE(((n$2 > 1) == 0), false); [line 51]\n REMOVE_TEMPS(n$2); [line 51]\n " shape="invhouse"] +39 [label="39: Prune (false branch) \n PRUNE(((n$0 > 1) == 0), false); [line 51]\n REMOVE_TEMPS(n$0); [line 51]\n " shape="invhouse"] 39 -> 36 ; -38 [label="38: Prune (true branch) \n PRUNE(((n$2 > 1) != 0), true); [line 51]\n REMOVE_TEMPS(n$2); [line 51]\n APPLY_ABSTRACTION; [line 51]\n " shape="invhouse"] +38 [label="38: Prune (true branch) \n PRUNE(((n$0 > 1) != 0), true); [line 51]\n REMOVE_TEMPS(n$0); [line 51]\n APPLY_ABSTRACTION; [line 51]\n " shape="invhouse"] 38 -> 40 ; -37 [label="37: BinaryOperatorStmt: GT \n n$2=_fun_getValue() [line 51]\n " shape="box"] +37 [label="37: BinaryOperatorStmt: GT \n n$0=_fun_getValue() [line 51]\n " shape="box"] 37 -> 38 ; @@ -934,15 +934,15 @@ digraph iCFG { 26 -> 23 ; -25 [label="25: Prune (false branch) \n PRUNE(((n$1 > 1) == 0), false); [line 32]\n REMOVE_TEMPS(n$1); [line 32]\n " shape="invhouse"] +25 [label="25: Prune (false branch) \n PRUNE(((n$0 > 1) == 0), false); [line 32]\n REMOVE_TEMPS(n$0); [line 32]\n " shape="invhouse"] 25 -> 22 ; -24 [label="24: Prune (true branch) \n PRUNE(((n$1 > 1) != 0), true); [line 32]\n REMOVE_TEMPS(n$1); [line 32]\n " shape="invhouse"] +24 [label="24: Prune (true branch) \n PRUNE(((n$0 > 1) != 0), true); [line 32]\n REMOVE_TEMPS(n$0); [line 32]\n " shape="invhouse"] 24 -> 20 ; -23 [label="23: BinaryOperatorStmt: GT \n n$1=_fun_getValue() [line 32]\n " shape="box"] +23 [label="23: BinaryOperatorStmt: GT \n n$0=_fun_getValue() [line 32]\n " shape="box"] 23 -> 24 ; diff --git a/infer/tests/codetoanalyze/c/frontend/initialization/struct_initlistexpr.dot b/infer/tests/codetoanalyze/c/frontend/initialization/struct_initlistexpr.dot index afea2d7dc..c0394cd3a 100644 --- a/infer/tests/codetoanalyze/c/frontend/initialization/struct_initlistexpr.dot +++ b/infer/tests/codetoanalyze/c/frontend/initialization/struct_initlistexpr.dot @@ -3,7 +3,7 @@ digraph iCFG { 14 -> 13 ; -13 [label="13: Return Stmt \n n$1=*&e.ssn:int [line 42]\n *&return:int =n$1 [line 42]\n REMOVE_TEMPS(n$1); [line 42]\n NULLIFY(&e,false); [line 42]\n APPLY_ABSTRACTION; [line 42]\n " shape="box"] +13 [label="13: Return Stmt \n n$0=*&e.ssn:int [line 42]\n *&return:int =n$0 [line 42]\n REMOVE_TEMPS(n$0); [line 42]\n NULLIFY(&e,false); [line 42]\n APPLY_ABSTRACTION; [line 42]\n " shape="box"] 13 -> 12 ; diff --git a/infer/tests/codetoanalyze/c/frontend/switchstmt/switch.dot b/infer/tests/codetoanalyze/c/frontend/switchstmt/switch.dot index 1d24947cd..34ac948b7 100644 --- a/infer/tests/codetoanalyze/c/frontend/switchstmt/switch.dot +++ b/infer/tests/codetoanalyze/c/frontend/switchstmt/switch.dot @@ -3,19 +3,19 @@ digraph iCFG { 195 -> 186 ; -194 [label="194: Prune (false branch) \n PRUNE(((n$42 == 0) == 0), false); [line 225]\n APPLY_ABSTRACTION; [line 225]\n " shape="invhouse"] +194 [label="194: Prune (false branch) \n PRUNE(((n$2 == 0) == 0), false); [line 225]\n APPLY_ABSTRACTION; [line 225]\n " shape="invhouse"] 194 -> 184 ; -193 [label="193: Prune (true branch) \n PRUNE(((n$42 == 0) != 0), true); [line 225]\n " shape="invhouse"] +193 [label="193: Prune (true branch) \n PRUNE(((n$2 == 0) != 0), true); [line 225]\n " shape="invhouse"] 193 -> 192 ; -192 [label="192: Call _fun_printf \n n$43=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 226]\n REMOVE_TEMPS(n$43); [line 226]\n APPLY_ABSTRACTION; [line 226]\n " shape="box"] +192 [label="192: Call _fun_printf \n n$3=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 226]\n REMOVE_TEMPS(n$3); [line 226]\n APPLY_ABSTRACTION; [line 226]\n " shape="box"] 192 -> 184 ; -191 [label="191: Switch_stmt \n n$41=*&SIL_temp_conditional___185:int [line 223]\n NULLIFY(&SIL_temp_conditional___185,true); [line 223]\n *&value:int =n$41 [line 223]\n n$42=*&value:int [line 223]\n NULLIFY(&value,false); [line 223]\n " shape="box"] +191 [label="191: Switch_stmt \n n$1=*&SIL_temp_conditional___185:int [line 223]\n NULLIFY(&SIL_temp_conditional___185,true); [line 223]\n *&value:int =n$1 [line 223]\n n$2=*&value:int [line 223]\n NULLIFY(&value,false); [line 223]\n " shape="box"] 191 -> 193 ; @@ -28,15 +28,15 @@ digraph iCFG { 189 -> 185 ; -188 [label="188: Prune (false branch) \n PRUNE(((n$40 == 0) == 0), false); [line 223]\n REMOVE_TEMPS(n$40); [line 223]\n " shape="invhouse"] +188 [label="188: Prune (false branch) \n PRUNE(((n$0 == 0) == 0), false); [line 223]\n REMOVE_TEMPS(n$0); [line 223]\n " shape="invhouse"] 188 -> 190 ; -187 [label="187: Prune (true branch) \n PRUNE(((n$40 == 0) != 0), true); [line 223]\n REMOVE_TEMPS(n$40); [line 223]\n " shape="invhouse"] +187 [label="187: Prune (true branch) \n PRUNE(((n$0 == 0) != 0), true); [line 223]\n REMOVE_TEMPS(n$0); [line 223]\n " shape="invhouse"] 187 -> 189 ; -186 [label="186: BinaryOperatorStmt: EQ \n n$40=*&value:int [line 223]\n NULLIFY(&value,false); [line 223]\n " shape="box"] +186 [label="186: BinaryOperatorStmt: EQ \n n$0=*&value:int [line 223]\n NULLIFY(&value,false); [line 223]\n " shape="box"] 186 -> 187 ; @@ -45,7 +45,7 @@ digraph iCFG { 185 -> 191 ; -184 [label="184: Return Stmt \n *&return:int =0 [line 228]\n REMOVE_TEMPS(n$41,n$42); [line 228]\n APPLY_ABSTRACTION; [line 228]\n " shape="box"] +184 [label="184: Return Stmt \n *&return:int =0 [line 228]\n REMOVE_TEMPS(n$1,n$2); [line 228]\n APPLY_ABSTRACTION; [line 228]\n " shape="box"] 184 -> 183 ; @@ -60,11 +60,11 @@ digraph iCFG { 181 -> 180 ; -180 [label="180: Switch_stmt \n *&value:int =7 [line 214]\n n$39=*&value:int [line 214]\n NULLIFY(&value,false); [line 214]\n " shape="box"] +180 [label="180: Switch_stmt \n *&value:int =7 [line 214]\n n$0=*&value:int [line 214]\n NULLIFY(&value,false); [line 214]\n " shape="box"] 180 -> 179 ; -179 [label="179: Return Stmt \n *&return:int =0 [line 217]\n REMOVE_TEMPS(n$39); [line 217]\n APPLY_ABSTRACTION; [line 217]\n " shape="box"] +179 [label="179: Return Stmt \n *&return:int =0 [line 217]\n REMOVE_TEMPS(n$0); [line 217]\n APPLY_ABSTRACTION; [line 217]\n " shape="box"] 179 -> 178 ; @@ -79,11 +79,11 @@ digraph iCFG { 176 -> 175 ; -175 [label="175: Switch_stmt \n n$38=*&value:int [line 205]\n NULLIFY(&value,false); [line 205]\n " shape="box"] +175 [label="175: Switch_stmt \n n$0=*&value:int [line 205]\n NULLIFY(&value,false); [line 205]\n " shape="box"] 175 -> 174 ; -174 [label="174: Return Stmt \n *&return:int =0 [line 208]\n REMOVE_TEMPS(n$38); [line 208]\n APPLY_ABSTRACTION; [line 208]\n " shape="box"] +174 [label="174: Return Stmt \n *&return:int =0 [line 208]\n REMOVE_TEMPS(n$0); [line 208]\n APPLY_ABSTRACTION; [line 208]\n " shape="box"] 174 -> 173 ; @@ -98,16 +98,16 @@ digraph iCFG { 171 -> 146 ; -170 [label="170: Prune (false branch) \n PRUNE(((n$35 == 0) == 0), false); [line 183]\n " shape="invhouse"] +170 [label="170: Prune (false branch) \n PRUNE(((n$2 == 0) == 0), false); [line 183]\n " shape="invhouse"] 170 -> 165 ; 170 -> 166 ; -169 [label="169: Prune (true branch) \n PRUNE(((n$35 == 0) != 0), true); [line 183]\n " shape="invhouse"] +169 [label="169: Prune (true branch) \n PRUNE(((n$2 == 0) != 0), true); [line 183]\n " shape="invhouse"] 169 -> 168 ; -168 [label="168: Call _fun_printf \n NULLIFY(&value,false); [line 184]\n n$37=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 184]\n REMOVE_TEMPS(n$37); [line 184]\n " shape="box"] +168 [label="168: Call _fun_printf \n NULLIFY(&value,false); [line 184]\n n$4=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 184]\n REMOVE_TEMPS(n$4); [line 184]\n " shape="box"] 168 -> 167 ; @@ -115,12 +115,12 @@ digraph iCFG { 167 -> 144 ; -166 [label="166: Prune (false branch) \n PRUNE(((n$35 == 1) == 0), false); [line 186]\n " shape="invhouse"] +166 [label="166: Prune (false branch) \n PRUNE(((n$2 == 1) == 0), false); [line 186]\n " shape="invhouse"] 166 -> 160 ; 166 -> 161 ; -165 [label="165: Prune (true branch) \n PRUNE(((n$35 == 1) != 0), true); [line 186]\n " shape="invhouse"] +165 [label="165: Prune (true branch) \n PRUNE(((n$2 == 1) != 0), true); [line 186]\n " shape="invhouse"] 165 -> 164 ; @@ -128,7 +128,7 @@ digraph iCFG { 164 -> 163 ; -163 [label="163: UnaryOperator \n n$36=*&something:int [line 189]\n *&something:int =(n$36 + 1) [line 189]\n REMOVE_TEMPS(n$36); [line 189]\n NULLIFY(&something,false); [line 189]\n APPLY_ABSTRACTION; [line 189]\n " shape="box"] +163 [label="163: UnaryOperator \n n$3=*&something:int [line 189]\n *&something:int =(n$3 + 1) [line 189]\n REMOVE_TEMPS(n$3); [line 189]\n NULLIFY(&something,false); [line 189]\n APPLY_ABSTRACTION; [line 189]\n " shape="box"] 163 -> 146 ; @@ -136,24 +136,24 @@ digraph iCFG { 162 -> 150 ; -161 [label="161: Prune (false branch) \n PRUNE(((n$35 == 2) == 0), false); [line 194]\n " shape="invhouse"] +161 [label="161: Prune (false branch) \n PRUNE(((n$2 == 2) == 0), false); [line 194]\n " shape="invhouse"] 161 -> 158 ; 161 -> 159 ; -160 [label="160: Prune (true branch) \n PRUNE(((n$35 == 2) != 0), true); [line 194]\n APPLY_ABSTRACTION; [line 194]\n " shape="invhouse"] +160 [label="160: Prune (true branch) \n PRUNE(((n$2 == 2) != 0), true); [line 194]\n APPLY_ABSTRACTION; [line 194]\n " shape="invhouse"] 160 -> 150 ; -159 [label="159: Prune (false branch) \n PRUNE(((n$35 == 3) == 0), false); [line 195]\n APPLY_ABSTRACTION; [line 195]\n " shape="invhouse"] +159 [label="159: Prune (false branch) \n PRUNE(((n$2 == 3) == 0), false); [line 195]\n APPLY_ABSTRACTION; [line 195]\n " shape="invhouse"] 159 -> 150 ; -158 [label="158: Prune (true branch) \n PRUNE(((n$35 == 3) != 0), true); [line 195]\n APPLY_ABSTRACTION; [line 195]\n " shape="invhouse"] +158 [label="158: Prune (true branch) \n PRUNE(((n$2 == 3) != 0), true); [line 195]\n APPLY_ABSTRACTION; [line 195]\n " shape="invhouse"] 158 -> 150 ; -157 [label="157: Switch_stmt \n n$35=*&SIL_temp_conditional___151:int [line 181]\n NULLIFY(&SIL_temp_conditional___151,true); [line 181]\n " shape="box"] +157 [label="157: Switch_stmt \n n$2=*&SIL_temp_conditional___151:int [line 181]\n NULLIFY(&SIL_temp_conditional___151,true); [line 181]\n " shape="box"] 157 -> 169 ; @@ -166,15 +166,15 @@ digraph iCFG { 155 -> 151 ; -154 [label="154: Prune (false branch) \n PRUNE(((n$34 == 0) == 0), false); [line 181]\n REMOVE_TEMPS(n$34); [line 181]\n " shape="invhouse"] +154 [label="154: Prune (false branch) \n PRUNE(((n$1 == 0) == 0), false); [line 181]\n REMOVE_TEMPS(n$1); [line 181]\n " shape="invhouse"] 154 -> 156 ; -153 [label="153: Prune (true branch) \n PRUNE(((n$34 == 0) != 0), true); [line 181]\n REMOVE_TEMPS(n$34); [line 181]\n " shape="invhouse"] +153 [label="153: Prune (true branch) \n PRUNE(((n$1 == 0) != 0), true); [line 181]\n REMOVE_TEMPS(n$1); [line 181]\n " shape="invhouse"] 153 -> 155 ; -152 [label="152: BinaryOperatorStmt: EQ \n n$34=_fun_getValue() [line 181]\n " shape="box"] +152 [label="152: BinaryOperatorStmt: EQ \n n$1=_fun_getValue() [line 181]\n " shape="box"] 152 -> 153 ; @@ -183,19 +183,19 @@ digraph iCFG { 151 -> 157 ; -150 [label="150: DeclStmt \n *&a:int =0 [line 197]\n REMOVE_TEMPS(n$35); [line 197]\n NULLIFY(&a,false); [line 197]\n APPLY_ABSTRACTION; [line 197]\n " shape="box"] +150 [label="150: DeclStmt \n *&a:int =0 [line 197]\n REMOVE_TEMPS(n$2); [line 197]\n NULLIFY(&a,false); [line 197]\n APPLY_ABSTRACTION; [line 197]\n " shape="box"] 150 -> 146 ; -149 [label="149: Prune (false branch) \n PRUNE(((n$33 < 10) == 0), false); [line 179]\n REMOVE_TEMPS(n$33); [line 179]\n " shape="invhouse"] +149 [label="149: Prune (false branch) \n PRUNE(((n$0 < 10) == 0), false); [line 179]\n REMOVE_TEMPS(n$0); [line 179]\n " shape="invhouse"] 149 -> 145 ; -148 [label="148: Prune (true branch) \n PRUNE(((n$33 < 10) != 0), true); [line 179]\n REMOVE_TEMPS(n$33); [line 179]\n " shape="invhouse"] +148 [label="148: Prune (true branch) \n PRUNE(((n$0 < 10) != 0), true); [line 179]\n REMOVE_TEMPS(n$0); [line 179]\n " shape="invhouse"] 148 -> 152 ; -147 [label="147: BinaryOperatorStmt: LT \n n$33=*&value:int [line 179]\n " shape="box"] +147 [label="147: BinaryOperatorStmt: LT \n n$0=*&value:int [line 179]\n " shape="box"] 147 -> 148 ; @@ -219,25 +219,25 @@ digraph iCFG { 142 -> 129 ; -141 [label="141: Prune (false branch) \n PRUNE(((n$30 == 0) == 0), false); [line 161]\n " shape="invhouse"] +141 [label="141: Prune (false branch) \n PRUNE(((n$0 == 0) == 0), false); [line 161]\n " shape="invhouse"] 141 -> 137 ; 141 -> 138 ; -140 [label="140: Prune (true branch) \n PRUNE(((n$30 == 0) != 0), true); [line 161]\n " shape="invhouse"] +140 [label="140: Prune (true branch) \n PRUNE(((n$0 == 0) != 0), true); [line 161]\n " shape="invhouse"] 140 -> 139 ; -139 [label="139: Call _fun_printf \n n$32=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 162]\n REMOVE_TEMPS(n$32); [line 162]\n APPLY_ABSTRACTION; [line 162]\n " shape="box"] +139 [label="139: Call _fun_printf \n n$2=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 162]\n REMOVE_TEMPS(n$2); [line 162]\n APPLY_ABSTRACTION; [line 162]\n " shape="box"] 139 -> 128 ; -138 [label="138: Prune (false branch) \n PRUNE(((n$30 == 1) == 0), false); [line 164]\n " shape="invhouse"] +138 [label="138: Prune (false branch) \n PRUNE(((n$0 == 1) == 0), false); [line 164]\n " shape="invhouse"] 138 -> 132 ; 138 -> 133 ; -137 [label="137: Prune (true branch) \n PRUNE(((n$30 == 1) != 0), true); [line 164]\n " shape="invhouse"] +137 [label="137: Prune (true branch) \n PRUNE(((n$0 == 1) != 0), true); [line 164]\n " shape="invhouse"] 137 -> 136 ; @@ -245,7 +245,7 @@ digraph iCFG { 136 -> 135 ; -135 [label="135: UnaryOperator \n n$31=*&something:int [line 166]\n *&something:int =(n$31 + 1) [line 166]\n REMOVE_TEMPS(n$31); [line 166]\n NULLIFY(&something,false); [line 166]\n APPLY_ABSTRACTION; [line 166]\n " shape="box"] +135 [label="135: UnaryOperator \n n$1=*&something:int [line 166]\n *&something:int =(n$1 + 1) [line 166]\n REMOVE_TEMPS(n$1); [line 166]\n NULLIFY(&something,false); [line 166]\n APPLY_ABSTRACTION; [line 166]\n " shape="box"] 135 -> 128 ; @@ -253,29 +253,29 @@ digraph iCFG { 134 -> 128 ; -133 [label="133: Prune (false branch) \n PRUNE(((n$30 == 2) == 0), false); [line 170]\n " shape="invhouse"] +133 [label="133: Prune (false branch) \n PRUNE(((n$0 == 2) == 0), false); [line 170]\n " shape="invhouse"] 133 -> 130 ; 133 -> 131 ; -132 [label="132: Prune (true branch) \n PRUNE(((n$30 == 2) != 0), true); [line 170]\n APPLY_ABSTRACTION; [line 170]\n " shape="invhouse"] +132 [label="132: Prune (true branch) \n PRUNE(((n$0 == 2) != 0), true); [line 170]\n APPLY_ABSTRACTION; [line 170]\n " shape="invhouse"] 132 -> 128 ; -131 [label="131: Prune (false branch) \n PRUNE(((n$30 == 3) == 0), false); [line 171]\n APPLY_ABSTRACTION; [line 171]\n " shape="invhouse"] +131 [label="131: Prune (false branch) \n PRUNE(((n$0 == 3) == 0), false); [line 171]\n APPLY_ABSTRACTION; [line 171]\n " shape="invhouse"] 131 -> 128 ; -130 [label="130: Prune (true branch) \n PRUNE(((n$30 == 3) != 0), true); [line 171]\n APPLY_ABSTRACTION; [line 171]\n " shape="invhouse"] +130 [label="130: Prune (true branch) \n PRUNE(((n$0 == 3) != 0), true); [line 171]\n APPLY_ABSTRACTION; [line 171]\n " shape="invhouse"] 130 -> 128 ; -129 [label="129: Switch_stmt \n n$30=_fun_getValue() [line 159]\n " shape="box"] +129 [label="129: Switch_stmt \n n$0=_fun_getValue() [line 159]\n " shape="box"] 129 -> 140 ; 129 -> 141 ; -128 [label="128: Return Stmt \n *&return:int =0 [line 173]\n REMOVE_TEMPS(n$30); [line 173]\n APPLY_ABSTRACTION; [line 173]\n " shape="box"] +128 [label="128: Return Stmt \n *&return:int =0 [line 173]\n REMOVE_TEMPS(n$0); [line 173]\n APPLY_ABSTRACTION; [line 173]\n " shape="box"] 128 -> 127 ; @@ -301,25 +301,25 @@ digraph iCFG { 122 -> 104 ; -121 [label="121: Prune (false branch) \n PRUNE(((n$27 == 0) == 0), false); [line 135]\n " shape="invhouse"] +121 [label="121: Prune (false branch) \n PRUNE(((n$1 == 0) == 0), false); [line 135]\n " shape="invhouse"] 121 -> 117 ; 121 -> 118 ; -120 [label="120: Prune (true branch) \n PRUNE(((n$27 == 0) != 0), true); [line 135]\n " shape="invhouse"] +120 [label="120: Prune (true branch) \n PRUNE(((n$1 == 0) != 0), true); [line 135]\n " shape="invhouse"] 120 -> 119 ; -119 [label="119: Call _fun_printf \n n$29=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 136]\n REMOVE_TEMPS(n$29); [line 136]\n APPLY_ABSTRACTION; [line 136]\n " shape="box"] +119 [label="119: Call _fun_printf \n n$3=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 136]\n REMOVE_TEMPS(n$3); [line 136]\n APPLY_ABSTRACTION; [line 136]\n " shape="box"] 119 -> 102 ; -118 [label="118: Prune (false branch) \n PRUNE(((n$27 == 1) == 0), false); [line 138]\n " shape="invhouse"] +118 [label="118: Prune (false branch) \n PRUNE(((n$1 == 1) == 0), false); [line 138]\n " shape="invhouse"] 118 -> 112 ; 118 -> 113 ; -117 [label="117: Prune (true branch) \n PRUNE(((n$27 == 1) != 0), true); [line 138]\n " shape="invhouse"] +117 [label="117: Prune (true branch) \n PRUNE(((n$1 == 1) != 0), true); [line 138]\n " shape="invhouse"] 117 -> 116 ; @@ -327,7 +327,7 @@ digraph iCFG { 116 -> 115 ; -115 [label="115: UnaryOperator \n n$28=*&something:int [line 140]\n *&something:int =(n$28 + 1) [line 140]\n REMOVE_TEMPS(n$28); [line 140]\n NULLIFY(&something,false); [line 140]\n APPLY_ABSTRACTION; [line 140]\n " shape="box"] +115 [label="115: UnaryOperator \n n$2=*&something:int [line 140]\n *&something:int =(n$2 + 1) [line 140]\n REMOVE_TEMPS(n$2); [line 140]\n NULLIFY(&something,false); [line 140]\n APPLY_ABSTRACTION; [line 140]\n " shape="box"] 115 -> 102 ; @@ -335,24 +335,24 @@ digraph iCFG { 114 -> 102 ; -113 [label="113: Prune (false branch) \n PRUNE(((n$27 == 2) == 0), false); [line 144]\n " shape="invhouse"] +113 [label="113: Prune (false branch) \n PRUNE(((n$1 == 2) == 0), false); [line 144]\n " shape="invhouse"] 113 -> 110 ; 113 -> 111 ; -112 [label="112: Prune (true branch) \n PRUNE(((n$27 == 2) != 0), true); [line 144]\n APPLY_ABSTRACTION; [line 144]\n " shape="invhouse"] +112 [label="112: Prune (true branch) \n PRUNE(((n$1 == 2) != 0), true); [line 144]\n APPLY_ABSTRACTION; [line 144]\n " shape="invhouse"] 112 -> 102 ; -111 [label="111: Prune (false branch) \n PRUNE(((n$27 == 3) == 0), false); [line 145]\n APPLY_ABSTRACTION; [line 145]\n " shape="invhouse"] +111 [label="111: Prune (false branch) \n PRUNE(((n$1 == 3) == 0), false); [line 145]\n APPLY_ABSTRACTION; [line 145]\n " shape="invhouse"] 111 -> 102 ; -110 [label="110: Prune (true branch) \n PRUNE(((n$27 == 3) != 0), true); [line 145]\n APPLY_ABSTRACTION; [line 145]\n " shape="invhouse"] +110 [label="110: Prune (true branch) \n PRUNE(((n$1 == 3) != 0), true); [line 145]\n APPLY_ABSTRACTION; [line 145]\n " shape="invhouse"] 110 -> 102 ; -109 [label="109: Switch_stmt \n n$27=*&SIL_temp_conditional___103:int [line 133]\n NULLIFY(&SIL_temp_conditional___103,true); [line 133]\n " shape="box"] +109 [label="109: Switch_stmt \n n$1=*&SIL_temp_conditional___103:int [line 133]\n NULLIFY(&SIL_temp_conditional___103,true); [line 133]\n " shape="box"] 109 -> 120 ; @@ -365,15 +365,15 @@ digraph iCFG { 107 -> 103 ; -106 [label="106: Prune (false branch) \n PRUNE(((n$26 > 0) == 0), false); [line 133]\n REMOVE_TEMPS(n$26); [line 133]\n " shape="invhouse"] +106 [label="106: Prune (false branch) \n PRUNE(((n$0 > 0) == 0), false); [line 133]\n REMOVE_TEMPS(n$0); [line 133]\n " shape="invhouse"] 106 -> 108 ; -105 [label="105: Prune (true branch) \n PRUNE(((n$26 > 0) != 0), true); [line 133]\n REMOVE_TEMPS(n$26); [line 133]\n " shape="invhouse"] +105 [label="105: Prune (true branch) \n PRUNE(((n$0 > 0) != 0), true); [line 133]\n REMOVE_TEMPS(n$0); [line 133]\n " shape="invhouse"] 105 -> 107 ; -104 [label="104: BinaryOperatorStmt: GT \n n$26=*&value:int [line 133]\n NULLIFY(&value,false); [line 133]\n " shape="box"] +104 [label="104: BinaryOperatorStmt: GT \n n$0=*&value:int [line 133]\n NULLIFY(&value,false); [line 133]\n " shape="box"] 104 -> 105 ; @@ -382,7 +382,7 @@ digraph iCFG { 103 -> 109 ; -102 [label="102: Return Stmt \n *&return:int =0 [line 147]\n REMOVE_TEMPS(n$27); [line 147]\n APPLY_ABSTRACTION; [line 147]\n " shape="box"] +102 [label="102: Return Stmt \n *&return:int =0 [line 147]\n REMOVE_TEMPS(n$1); [line 147]\n APPLY_ABSTRACTION; [line 147]\n " shape="box"] 102 -> 101 ; @@ -401,45 +401,45 @@ digraph iCFG { 98 -> 97 ; -97 [label="97: Call _fun_printf \n n$25=_fun_printf(\"(out)HELLO WORLD!\":char *) [line 118]\n REMOVE_TEMPS(n$25); [line 118]\n " shape="box"] +97 [label="97: Call _fun_printf \n n$4=_fun_printf(\"(out)HELLO WORLD!\":char *) [line 118]\n REMOVE_TEMPS(n$4); [line 118]\n " shape="box"] 97 -> 96 ; -96 [label="96: BinaryOperatorStmt: Assign \n n$24=*&value:int [line 119]\n *&x:int =(n$24 + 1) [line 119]\n REMOVE_TEMPS(n$24); [line 119]\n NULLIFY(&x,false); [line 119]\n APPLY_ABSTRACTION; [line 119]\n " shape="box"] +96 [label="96: BinaryOperatorStmt: Assign \n n$3=*&value:int [line 119]\n *&x:int =(n$3 + 1) [line 119]\n REMOVE_TEMPS(n$3); [line 119]\n NULLIFY(&x,false); [line 119]\n APPLY_ABSTRACTION; [line 119]\n " shape="box"] 96 -> 88 ; -95 [label="95: Prune (false branch) \n PRUNE(((n$22 == 0) == 0), false); [line 121]\n APPLY_ABSTRACTION; [line 121]\n " shape="invhouse"] +95 [label="95: Prune (false branch) \n PRUNE(((n$1 == 0) == 0), false); [line 121]\n APPLY_ABSTRACTION; [line 121]\n " shape="invhouse"] 95 -> 88 ; -94 [label="94: Prune (true branch) \n PRUNE(((n$22 == 0) != 0), true); [line 121]\n " shape="invhouse"] +94 [label="94: Prune (true branch) \n PRUNE(((n$1 == 0) != 0), true); [line 121]\n " shape="invhouse"] 94 -> 93 ; -93 [label="93: Call _fun_printf \n n$23=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 122]\n REMOVE_TEMPS(n$23); [line 122]\n APPLY_ABSTRACTION; [line 122]\n " shape="box"] +93 [label="93: Call _fun_printf \n n$2=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 122]\n REMOVE_TEMPS(n$2); [line 122]\n APPLY_ABSTRACTION; [line 122]\n " shape="box"] 93 -> 88 ; -92 [label="92: Switch_stmt \n n$22=*&value:int [line 116]\n " shape="box"] +92 [label="92: Switch_stmt \n n$1=*&value:int [line 116]\n " shape="box"] 92 -> 94 ; 92 -> 95 ; -91 [label="91: Prune (false branch) \n PRUNE(((n$21 < 10) == 0), false); [line 115]\n REMOVE_TEMPS(n$21); [line 115]\n " shape="invhouse"] +91 [label="91: Prune (false branch) \n PRUNE(((n$0 < 10) == 0), false); [line 115]\n REMOVE_TEMPS(n$0); [line 115]\n " shape="invhouse"] 91 -> 87 ; -90 [label="90: Prune (true branch) \n PRUNE(((n$21 < 10) != 0), true); [line 115]\n REMOVE_TEMPS(n$21); [line 115]\n " shape="invhouse"] +90 [label="90: Prune (true branch) \n PRUNE(((n$0 < 10) != 0), true); [line 115]\n REMOVE_TEMPS(n$0); [line 115]\n " shape="invhouse"] 90 -> 92 ; -89 [label="89: BinaryOperatorStmt: LT \n n$21=*&value:int [line 115]\n " shape="box"] +89 [label="89: BinaryOperatorStmt: LT \n n$0=*&value:int [line 115]\n " shape="box"] 89 -> 90 ; 89 -> 91 ; -88 [label="88: + \n REMOVE_TEMPS(n$22); [line 115]\n " ] +88 [label="88: + \n REMOVE_TEMPS(n$1); [line 115]\n " ] 88 -> 89 ; @@ -462,24 +462,24 @@ digraph iCFG { 83 -> 82 ; -82 [label="82: Call _fun_printf \n n$20=_fun_printf(\"(out)HELLO WORLD!\":char *) [line 91]\n REMOVE_TEMPS(n$20); [line 91]\n " shape="box"] +82 [label="82: Call _fun_printf \n n$4=_fun_printf(\"(out)HELLO WORLD!\":char *) [line 91]\n REMOVE_TEMPS(n$4); [line 91]\n " shape="box"] 82 -> 81 ; -81 [label="81: BinaryOperatorStmt: Assign \n n$19=*&value:int [line 92]\n *&x:int =(n$19 + 1) [line 92]\n REMOVE_TEMPS(n$19); [line 92]\n NULLIFY(&value,false); [line 92]\n NULLIFY(&x,false); [line 92]\n APPLY_ABSTRACTION; [line 92]\n " shape="box"] +81 [label="81: BinaryOperatorStmt: Assign \n n$3=*&value:int [line 92]\n *&x:int =(n$3 + 1) [line 92]\n REMOVE_TEMPS(n$3); [line 92]\n NULLIFY(&value,false); [line 92]\n NULLIFY(&x,false); [line 92]\n APPLY_ABSTRACTION; [line 92]\n " shape="box"] 81 -> 78 ; -80 [label="80: Prune (false branch) \n PRUNE(((n$16 == 0) == 0), false); [line 93]\n " shape="invhouse"] +80 [label="80: Prune (false branch) \n PRUNE(((n$0 == 0) == 0), false); [line 93]\n " shape="invhouse"] 80 -> 75 ; 80 -> 76 ; -79 [label="79: Prune (true branch) \n PRUNE(((n$16 == 0) != 0), true); [line 93]\n APPLY_ABSTRACTION; [line 93]\n " shape="invhouse"] +79 [label="79: Prune (true branch) \n PRUNE(((n$0 == 0) != 0), true); [line 93]\n APPLY_ABSTRACTION; [line 93]\n " shape="invhouse"] 79 -> 78 ; -78 [label="78: Call _fun_printf \n n$18=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 94]\n REMOVE_TEMPS(n$18); [line 94]\n APPLY_ABSTRACTION; [line 94]\n " shape="box"] +78 [label="78: Call _fun_printf \n n$2=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 94]\n REMOVE_TEMPS(n$2); [line 94]\n APPLY_ABSTRACTION; [line 94]\n " shape="box"] 78 -> 65 ; @@ -487,12 +487,12 @@ digraph iCFG { 77 -> 74 ; -76 [label="76: Prune (false branch) \n PRUNE(((n$16 == 1) == 0), false); [line 99]\n " shape="invhouse"] +76 [label="76: Prune (false branch) \n PRUNE(((n$0 == 1) == 0), false); [line 99]\n " shape="invhouse"] 76 -> 70 ; 76 -> 71 ; -75 [label="75: Prune (true branch) \n PRUNE(((n$16 == 1) != 0), true); [line 99]\n APPLY_ABSTRACTION; [line 99]\n " shape="invhouse"] +75 [label="75: Prune (true branch) \n PRUNE(((n$0 == 1) != 0), true); [line 99]\n APPLY_ABSTRACTION; [line 99]\n " shape="invhouse"] 75 -> 74 ; @@ -500,7 +500,7 @@ digraph iCFG { 74 -> 73 ; -73 [label="73: UnaryOperator \n n$17=*&something:int [line 101]\n *&something:int =(n$17 + 1) [line 101]\n REMOVE_TEMPS(n$17); [line 101]\n NULLIFY(&something,false); [line 101]\n " shape="box"] +73 [label="73: UnaryOperator \n n$1=*&something:int [line 101]\n *&something:int =(n$1 + 1) [line 101]\n REMOVE_TEMPS(n$1); [line 101]\n NULLIFY(&something,false); [line 101]\n " shape="box"] 73 -> 72 ; @@ -508,20 +508,20 @@ digraph iCFG { 72 -> 65 ; -71 [label="71: Prune (false branch) \n PRUNE(((n$16 == 2) == 0), false); [line 105]\n " shape="invhouse"] +71 [label="71: Prune (false branch) \n PRUNE(((n$0 == 2) == 0), false); [line 105]\n " shape="invhouse"] 71 -> 68 ; 71 -> 69 ; -70 [label="70: Prune (true branch) \n PRUNE(((n$16 == 2) != 0), true); [line 105]\n APPLY_ABSTRACTION; [line 105]\n " shape="invhouse"] +70 [label="70: Prune (true branch) \n PRUNE(((n$0 == 2) != 0), true); [line 105]\n APPLY_ABSTRACTION; [line 105]\n " shape="invhouse"] 70 -> 65 ; -69 [label="69: Prune (false branch) \n PRUNE(((n$16 == 3) == 0), false); [line 106]\n " shape="invhouse"] +69 [label="69: Prune (false branch) \n PRUNE(((n$0 == 3) == 0), false); [line 106]\n " shape="invhouse"] 69 -> 67 ; -68 [label="68: Prune (true branch) \n PRUNE(((n$16 == 3) != 0), true); [line 106]\n APPLY_ABSTRACTION; [line 106]\n " shape="invhouse"] +68 [label="68: Prune (true branch) \n PRUNE(((n$0 == 3) != 0), true); [line 106]\n APPLY_ABSTRACTION; [line 106]\n " shape="invhouse"] 68 -> 65 ; @@ -529,12 +529,12 @@ digraph iCFG { 67 -> 74 ; -66 [label="66: Switch_stmt \n n$16=*&value:int [line 88]\n NULLIFY(&value,false); [line 88]\n " shape="box"] +66 [label="66: Switch_stmt \n n$0=*&value:int [line 88]\n NULLIFY(&value,false); [line 88]\n " shape="box"] 66 -> 79 ; 66 -> 80 ; -65 [label="65: Return Stmt \n *&return:int =0 [line 108]\n REMOVE_TEMPS(n$16); [line 108]\n APPLY_ABSTRACTION; [line 108]\n " shape="box"] +65 [label="65: Return Stmt \n *&return:int =0 [line 108]\n REMOVE_TEMPS(n$0); [line 108]\n APPLY_ABSTRACTION; [line 108]\n " shape="box"] 65 -> 64 ; @@ -549,25 +549,25 @@ digraph iCFG { 62 -> 49 ; -61 [label="61: Prune (false branch) \n PRUNE(((n$13 == 0) == 0), false); [line 69]\n " shape="invhouse"] +61 [label="61: Prune (false branch) \n PRUNE(((n$0 == 0) == 0), false); [line 69]\n " shape="invhouse"] 61 -> 57 ; 61 -> 58 ; -60 [label="60: Prune (true branch) \n PRUNE(((n$13 == 0) != 0), true); [line 69]\n " shape="invhouse"] +60 [label="60: Prune (true branch) \n PRUNE(((n$0 == 0) != 0), true); [line 69]\n " shape="invhouse"] 60 -> 59 ; -59 [label="59: Call _fun_printf \n n$15=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 70]\n REMOVE_TEMPS(n$15); [line 70]\n APPLY_ABSTRACTION; [line 70]\n " shape="box"] +59 [label="59: Call _fun_printf \n n$2=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 70]\n REMOVE_TEMPS(n$2); [line 70]\n APPLY_ABSTRACTION; [line 70]\n " shape="box"] 59 -> 48 ; -58 [label="58: Prune (false branch) \n PRUNE(((n$13 == 1) == 0), false); [line 72]\n " shape="invhouse"] +58 [label="58: Prune (false branch) \n PRUNE(((n$0 == 1) == 0), false); [line 72]\n " shape="invhouse"] 58 -> 52 ; 58 -> 53 ; -57 [label="57: Prune (true branch) \n PRUNE(((n$13 == 1) != 0), true); [line 72]\n " shape="invhouse"] +57 [label="57: Prune (true branch) \n PRUNE(((n$0 == 1) != 0), true); [line 72]\n " shape="invhouse"] 57 -> 56 ; @@ -575,7 +575,7 @@ digraph iCFG { 56 -> 55 ; -55 [label="55: UnaryOperator \n n$14=*&something:int [line 74]\n *&something:int =(n$14 + 1) [line 74]\n REMOVE_TEMPS(n$14); [line 74]\n NULLIFY(&something,false); [line 74]\n APPLY_ABSTRACTION; [line 74]\n " shape="box"] +55 [label="55: UnaryOperator \n n$1=*&something:int [line 74]\n *&something:int =(n$1 + 1) [line 74]\n REMOVE_TEMPS(n$1); [line 74]\n NULLIFY(&something,false); [line 74]\n APPLY_ABSTRACTION; [line 74]\n " shape="box"] 55 -> 48 ; @@ -583,29 +583,29 @@ digraph iCFG { 54 -> 48 ; -53 [label="53: Prune (false branch) \n PRUNE(((n$13 == 2) == 0), false); [line 78]\n " shape="invhouse"] +53 [label="53: Prune (false branch) \n PRUNE(((n$0 == 2) == 0), false); [line 78]\n " shape="invhouse"] 53 -> 50 ; 53 -> 51 ; -52 [label="52: Prune (true branch) \n PRUNE(((n$13 == 2) != 0), true); [line 78]\n APPLY_ABSTRACTION; [line 78]\n " shape="invhouse"] +52 [label="52: Prune (true branch) \n PRUNE(((n$0 == 2) != 0), true); [line 78]\n APPLY_ABSTRACTION; [line 78]\n " shape="invhouse"] 52 -> 48 ; -51 [label="51: Prune (false branch) \n PRUNE(((n$13 == 3) == 0), false); [line 79]\n APPLY_ABSTRACTION; [line 79]\n " shape="invhouse"] +51 [label="51: Prune (false branch) \n PRUNE(((n$0 == 3) == 0), false); [line 79]\n APPLY_ABSTRACTION; [line 79]\n " shape="invhouse"] 51 -> 48 ; -50 [label="50: Prune (true branch) \n PRUNE(((n$13 == 3) != 0), true); [line 79]\n APPLY_ABSTRACTION; [line 79]\n " shape="invhouse"] +50 [label="50: Prune (true branch) \n PRUNE(((n$0 == 3) != 0), true); [line 79]\n APPLY_ABSTRACTION; [line 79]\n " shape="invhouse"] 50 -> 48 ; -49 [label="49: Switch_stmt \n n$13=*&value:int [line 67]\n NULLIFY(&value,false); [line 67]\n " shape="box"] +49 [label="49: Switch_stmt \n n$0=*&value:int [line 67]\n NULLIFY(&value,false); [line 67]\n " shape="box"] 49 -> 60 ; 49 -> 61 ; -48 [label="48: Return Stmt \n *&return:int =0 [line 81]\n REMOVE_TEMPS(n$13); [line 81]\n APPLY_ABSTRACTION; [line 81]\n " shape="box"] +48 [label="48: Return Stmt \n *&return:int =0 [line 81]\n REMOVE_TEMPS(n$0); [line 81]\n APPLY_ABSTRACTION; [line 81]\n " shape="box"] 48 -> 47 ; @@ -624,24 +624,24 @@ digraph iCFG { 44 -> 43 ; -43 [label="43: Call _fun_printf \n n$12=_fun_printf(\"(out)HELLO WORLD!\":char *) [line 43]\n REMOVE_TEMPS(n$12); [line 43]\n " shape="box"] +43 [label="43: Call _fun_printf \n n$4=_fun_printf(\"(out)HELLO WORLD!\":char *) [line 43]\n REMOVE_TEMPS(n$4); [line 43]\n " shape="box"] 43 -> 42 ; -42 [label="42: BinaryOperatorStmt: Assign \n n$11=*&value:int [line 44]\n *&x:int =(n$11 + 1) [line 44]\n REMOVE_TEMPS(n$11); [line 44]\n NULLIFY(&value,false); [line 44]\n NULLIFY(&x,false); [line 44]\n APPLY_ABSTRACTION; [line 44]\n " shape="box"] +42 [label="42: BinaryOperatorStmt: Assign \n n$3=*&value:int [line 44]\n *&x:int =(n$3 + 1) [line 44]\n REMOVE_TEMPS(n$3); [line 44]\n NULLIFY(&value,false); [line 44]\n NULLIFY(&x,false); [line 44]\n APPLY_ABSTRACTION; [line 44]\n " shape="box"] 42 -> 39 ; -41 [label="41: Prune (false branch) \n PRUNE(((n$8 == 0) == 0), false); [line 45]\n " shape="invhouse"] +41 [label="41: Prune (false branch) \n PRUNE(((n$0 == 0) == 0), false); [line 45]\n " shape="invhouse"] 41 -> 36 ; 41 -> 37 ; -40 [label="40: Prune (true branch) \n PRUNE(((n$8 == 0) != 0), true); [line 45]\n APPLY_ABSTRACTION; [line 45]\n " shape="invhouse"] +40 [label="40: Prune (true branch) \n PRUNE(((n$0 == 0) != 0), true); [line 45]\n APPLY_ABSTRACTION; [line 45]\n " shape="invhouse"] 40 -> 39 ; -39 [label="39: Call _fun_printf \n n$10=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 46]\n REMOVE_TEMPS(n$10); [line 46]\n APPLY_ABSTRACTION; [line 46]\n " shape="box"] +39 [label="39: Call _fun_printf \n n$2=_fun_printf(\"(0)HELLO WORLD!\":char *) [line 46]\n REMOVE_TEMPS(n$2); [line 46]\n APPLY_ABSTRACTION; [line 46]\n " shape="box"] 39 -> 26 ; @@ -649,12 +649,12 @@ digraph iCFG { 38 -> 35 ; -37 [label="37: Prune (false branch) \n PRUNE(((n$8 == 1) == 0), false); [line 51]\n " shape="invhouse"] +37 [label="37: Prune (false branch) \n PRUNE(((n$0 == 1) == 0), false); [line 51]\n " shape="invhouse"] 37 -> 31 ; 37 -> 32 ; -36 [label="36: Prune (true branch) \n PRUNE(((n$8 == 1) != 0), true); [line 51]\n APPLY_ABSTRACTION; [line 51]\n " shape="invhouse"] +36 [label="36: Prune (true branch) \n PRUNE(((n$0 == 1) != 0), true); [line 51]\n APPLY_ABSTRACTION; [line 51]\n " shape="invhouse"] 36 -> 35 ; @@ -662,7 +662,7 @@ digraph iCFG { 35 -> 34 ; -34 [label="34: UnaryOperator \n n$9=*&something:int [line 53]\n *&something:int =(n$9 + 1) [line 53]\n REMOVE_TEMPS(n$9); [line 53]\n NULLIFY(&something,false); [line 53]\n " shape="box"] +34 [label="34: UnaryOperator \n n$1=*&something:int [line 53]\n *&something:int =(n$1 + 1) [line 53]\n REMOVE_TEMPS(n$1); [line 53]\n NULLIFY(&something,false); [line 53]\n " shape="box"] 34 -> 33 ; @@ -670,20 +670,20 @@ digraph iCFG { 33 -> 26 ; -32 [label="32: Prune (false branch) \n PRUNE(((n$8 == 2) == 0), false); [line 57]\n " shape="invhouse"] +32 [label="32: Prune (false branch) \n PRUNE(((n$0 == 2) == 0), false); [line 57]\n " shape="invhouse"] 32 -> 29 ; 32 -> 30 ; -31 [label="31: Prune (true branch) \n PRUNE(((n$8 == 2) != 0), true); [line 57]\n APPLY_ABSTRACTION; [line 57]\n " shape="invhouse"] +31 [label="31: Prune (true branch) \n PRUNE(((n$0 == 2) != 0), true); [line 57]\n APPLY_ABSTRACTION; [line 57]\n " shape="invhouse"] 31 -> 26 ; -30 [label="30: Prune (false branch) \n PRUNE(((n$8 == 3) == 0), false); [line 58]\n " shape="invhouse"] +30 [label="30: Prune (false branch) \n PRUNE(((n$0 == 3) == 0), false); [line 58]\n " shape="invhouse"] 30 -> 28 ; -29 [label="29: Prune (true branch) \n PRUNE(((n$8 == 3) != 0), true); [line 58]\n APPLY_ABSTRACTION; [line 58]\n " shape="invhouse"] +29 [label="29: Prune (true branch) \n PRUNE(((n$0 == 3) != 0), true); [line 58]\n APPLY_ABSTRACTION; [line 58]\n " shape="invhouse"] 29 -> 26 ; @@ -691,12 +691,12 @@ digraph iCFG { 28 -> 35 ; -27 [label="27: Switch_stmt \n n$8=*&value:int [line 40]\n NULLIFY(&value,false); [line 40]\n " shape="box"] +27 [label="27: Switch_stmt \n n$0=*&value:int [line 40]\n NULLIFY(&value,false); [line 40]\n " shape="box"] 27 -> 40 ; 27 -> 41 ; -26 [label="26: Return Stmt \n *&return:int =0 [line 60]\n REMOVE_TEMPS(n$8); [line 60]\n APPLY_ABSTRACTION; [line 60]\n " shape="box"] +26 [label="26: Return Stmt \n *&return:int =0 [line 60]\n REMOVE_TEMPS(n$0); [line 60]\n APPLY_ABSTRACTION; [line 60]\n " shape="box"] 26 -> 25 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/types/functions.dot b/infer/tests/codetoanalyze/cpp/frontend/types/functions.dot index 1eca0d0f6..c69bb0987 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/types/functions.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/types/functions.dot @@ -1,21 +1,21 @@ digraph iCFG { -13 [label="13: Call _fun_fun_default \n n$8=_fun_fun_default(1:int ,2:int ) [line 21]\n REMOVE_TEMPS(n$8); [line 21]\n " shape="box"] +13 [label="13: Call _fun_fun_default \n n$4=_fun_fun_default(1:int ,2:int ) [line 21]\n REMOVE_TEMPS(n$4); [line 21]\n " shape="box"] 13 -> 12 ; -12 [label="12: Call _fun_fun_default \n n$7=_fun_fun_default(1:int ,5:int ) [line 22]\n REMOVE_TEMPS(n$7); [line 22]\n " shape="box"] +12 [label="12: Call _fun_fun_default \n n$3=_fun_fun_default(1:int ,5:int ) [line 22]\n REMOVE_TEMPS(n$3); [line 22]\n " shape="box"] 12 -> 11 ; -11 [label="11: Call _fun_fun_default \n n$6=_fun_fun_default(3:int ,5:int ) [line 23]\n REMOVE_TEMPS(n$6); [line 23]\n " shape="box"] +11 [label="11: Call _fun_fun_default \n n$2=_fun_fun_default(3:int ,5:int ) [line 23]\n REMOVE_TEMPS(n$2); [line 23]\n " shape="box"] 11 -> 10 ; -10 [label="10: Call _fun_fun_default_decl \n n$5=_fun_fun_default_decl(6:int ,5:int ) [line 25]\n REMOVE_TEMPS(n$5); [line 25]\n " shape="box"] +10 [label="10: Call _fun_fun_default_decl \n n$1=_fun_fun_default_decl(6:int ,5:int ) [line 25]\n REMOVE_TEMPS(n$1); [line 25]\n " shape="box"] 10 -> 9 ; -9 [label="9: Call _fun_fun_default_decl \n n$4=_fun_fun_default_decl(6:int ,6:int ) [line 26]\n REMOVE_TEMPS(n$4); [line 26]\n APPLY_ABSTRACTION; [line 26]\n " shape="box"] +9 [label="9: Call _fun_fun_default_decl \n n$0=_fun_fun_default_decl(6:int ,6:int ) [line 26]\n REMOVE_TEMPS(n$0); [line 26]\n APPLY_ABSTRACTION; [line 26]\n " shape="box"] 9 -> 8 ; @@ -26,7 +26,7 @@ digraph iCFG { 7 -> 13 ; -6 [label="6: Return Stmt \n n$2=*&a:int [line 17]\n n$3=*&b:int [line 17]\n *&return:int =(n$2 + n$3) [line 17]\n REMOVE_TEMPS(n$2,n$3); [line 17]\n NULLIFY(&a,false); [line 17]\n NULLIFY(&b,false); [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] +6 [label="6: Return Stmt \n n$0=*&a:int [line 17]\n n$1=*&b:int [line 17]\n *&return:int =(n$0 + n$1) [line 17]\n REMOVE_TEMPS(n$0,n$1); [line 17]\n NULLIFY(&a,false); [line 17]\n NULLIFY(&b,false); [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] 6 -> 5 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/types/methods.dot b/infer/tests/codetoanalyze/cpp/frontend/types/methods.dot index da185b0c8..907c36aef 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/types/methods.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/types/methods.dot @@ -1,9 +1,9 @@ digraph iCFG { -29 [label="29: Call _fun_A_fun_default \n n$16=*&a_ptr:struct A * [line 59]\n n$17=_fun_A_fun_default(n$16:struct A ,1:int ,2:int ,20:int ) [line 59]\n REMOVE_TEMPS(n$16,n$17); [line 59]\n " shape="box"] +29 [label="29: Call _fun_A_fun_default \n n$2=*&a_ptr:struct A * [line 59]\n n$3=_fun_A_fun_default(n$2:struct A ,1:int ,2:int ,20:int ) [line 59]\n REMOVE_TEMPS(n$2,n$3); [line 59]\n " shape="box"] 29 -> 28 ; -28 [label="28: Call _fun_A_fun_default \n n$14=*&a_ptr:struct A * [line 60]\n n$15=_fun_A_fun_default(n$14:struct A ,1:int ,10:int ,20:int ) [line 60]\n REMOVE_TEMPS(n$14,n$15); [line 60]\n NULLIFY(&a_ptr,false); [line 60]\n APPLY_ABSTRACTION; [line 60]\n " shape="box"] +28 [label="28: Call _fun_A_fun_default \n n$0=*&a_ptr:struct A * [line 60]\n n$1=_fun_A_fun_default(n$0:struct A ,1:int ,10:int ,20:int ) [line 60]\n REMOVE_TEMPS(n$0,n$1); [line 60]\n NULLIFY(&a_ptr,false); [line 60]\n APPLY_ABSTRACTION; [line 60]\n " shape="box"] 28 -> 27 ; @@ -14,11 +14,11 @@ digraph iCFG { 26 -> 29 ; -25 [label="25: Call _fun_A_fun \n n$12=*&a_ptr:struct A * [line 53]\n n$13=_fun_A_fun(n$12:struct A ,10:int ,20:int ) [line 53]\n REMOVE_TEMPS(n$12,n$13); [line 53]\n " shape="box"] +25 [label="25: Call _fun_A_fun \n n$2=*&a_ptr:struct A * [line 53]\n n$3=_fun_A_fun(n$2:struct A ,10:int ,20:int ) [line 53]\n REMOVE_TEMPS(n$2,n$3); [line 53]\n " shape="box"] 25 -> 24 ; -24 [label="24: Call _fun_A_fun_default \n n$10=*&a_ptr:struct A * [line 54]\n n$11=_fun_A_fun_default(n$10:struct A ,1:int ,2:int ,3:int ) [line 54]\n REMOVE_TEMPS(n$10,n$11); [line 54]\n NULLIFY(&a_ptr,false); [line 54]\n APPLY_ABSTRACTION; [line 54]\n " shape="box"] +24 [label="24: Call _fun_A_fun_default \n n$0=*&a_ptr:struct A * [line 54]\n n$1=_fun_A_fun_default(n$0:struct A ,1:int ,2:int ,3:int ) [line 54]\n REMOVE_TEMPS(n$0,n$1); [line 54]\n NULLIFY(&a_ptr,false); [line 54]\n APPLY_ABSTRACTION; [line 54]\n " shape="box"] 24 -> 23 ; @@ -36,7 +36,7 @@ digraph iCFG { 20 -> 21 ; -19 [label="19: Return Stmt \n n$8=*&a:int [line 38]\n n$9=*&b:int [line 38]\n *&return:int =(n$8 + n$9) [line 38]\n REMOVE_TEMPS(n$8,n$9); [line 38]\n NULLIFY(&a,false); [line 38]\n NULLIFY(&b,false); [line 38]\n APPLY_ABSTRACTION; [line 38]\n " shape="box"] +19 [label="19: Return Stmt \n n$0=*&a:int [line 38]\n n$1=*&b:int [line 38]\n *&return:int =(n$0 + n$1) [line 38]\n REMOVE_TEMPS(n$0,n$1); [line 38]\n NULLIFY(&a,false); [line 38]\n NULLIFY(&b,false); [line 38]\n APPLY_ABSTRACTION; [line 38]\n " shape="box"] 19 -> 18 ; @@ -47,11 +47,11 @@ digraph iCFG { 17 -> 19 ; -16 [label="16: DeclStmt \n n$6=*&a:int [line 31]\n n$7=*&b:int [line 31]\n *&c:int =((n$6 + n$7) + 1) [line 31]\n REMOVE_TEMPS(n$6,n$7); [line 31]\n NULLIFY(&a,false); [line 31]\n NULLIFY(&b,false); [line 31]\n " shape="box"] +16 [label="16: DeclStmt \n n$2=*&a:int [line 31]\n n$3=*&b:int [line 31]\n *&c:int =((n$2 + n$3) + 1) [line 31]\n REMOVE_TEMPS(n$2,n$3); [line 31]\n NULLIFY(&a,false); [line 31]\n NULLIFY(&b,false); [line 31]\n " shape="box"] 16 -> 15 ; -15 [label="15: Return Stmt \n n$4=*&c:int [line 34]\n n$5=*&c:int [line 34]\n *&return:int =(n$4 * n$5) [line 34]\n REMOVE_TEMPS(n$4,n$5); [line 34]\n NULLIFY(&c,false); [line 34]\n APPLY_ABSTRACTION; [line 34]\n " shape="box"] +15 [label="15: Return Stmt \n n$0=*&c:int [line 34]\n n$1=*&c:int [line 34]\n *&return:int =(n$0 * n$1) [line 34]\n REMOVE_TEMPS(n$0,n$1); [line 34]\n NULLIFY(&c,false); [line 34]\n APPLY_ABSTRACTION; [line 34]\n " shape="box"] 15 -> 14 ; @@ -69,7 +69,7 @@ digraph iCFG { 11 -> 12 ; -10 [label="10: Return Stmt \n n$1=*&a:int [line 20]\n n$2=*&b:int [line 20]\n n$3=*&c:int [line 20]\n *&return:int =((n$1 + n$2) + n$3) [line 20]\n REMOVE_TEMPS(n$1,n$2,n$3); [line 20]\n NULLIFY(&a,false); [line 20]\n NULLIFY(&b,false); [line 20]\n NULLIFY(&c,false); [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="box"] +10 [label="10: Return Stmt \n n$0=*&a:int [line 20]\n n$1=*&b:int [line 20]\n n$2=*&c:int [line 20]\n *&return:int =((n$0 + n$1) + n$2) [line 20]\n REMOVE_TEMPS(n$0,n$1,n$2); [line 20]\n NULLIFY(&a,false); [line 20]\n NULLIFY(&b,false); [line 20]\n NULLIFY(&c,false); [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="box"] 10 -> 9 ; diff --git a/infer/tests/codetoanalyze/objc/errors/field_superclass/SuperExample.dot b/infer/tests/codetoanalyze/objc/errors/field_superclass/SuperExample.dot index 76790b399..30499c52d 100644 --- a/infer/tests/codetoanalyze/objc/errors/field_superclass/SuperExample.dot +++ b/infer/tests/codetoanalyze/objc/errors/field_superclass/SuperExample.dot @@ -1,9 +1,9 @@ digraph iCFG { -12 [label="12: DeclStmt \n n$6=_fun___objc_alloc_no_fail(sizeof(class A ):unsigned long ) [line 45]\n n$7=_fun_A_init(n$6:class A *) virtual [line 45]\n *&a:struct objc_object *=n$7 [line 46]\n REMOVE_TEMPS(n$6,n$7); [line 46]\n NULLIFY(&a,false); [line 46]\n " shape="box"] +12 [label="12: DeclStmt \n n$2=_fun___objc_alloc_no_fail(sizeof(class A ):unsigned long ) [line 45]\n n$3=_fun_A_init(n$2:class A *) virtual [line 45]\n *&a:struct objc_object *=n$3 [line 46]\n REMOVE_TEMPS(n$2,n$3); [line 46]\n NULLIFY(&a,false); [line 46]\n " shape="box"] 12 -> 11 ; -11 [label="11: Release the autorelease pool \n n$4=_fun___objc_release_autorelease_pool() [line 44]\n REMOVE_TEMPS(n$4); [line 44]\n APPLY_ABSTRACTION; [line 44]\n " shape="box"] +11 [label="11: Release the autorelease pool \n n$0=_fun___objc_release_autorelease_pool() [line 44]\n REMOVE_TEMPS(n$0); [line 44]\n APPLY_ABSTRACTION; [line 44]\n " shape="box"] 11 -> 10 ; diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/AutoreleaseExample.dot b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/AutoreleaseExample.dot index d5907aaa0..4ae8cf7c2 100644 --- a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/AutoreleaseExample.dot +++ b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/AutoreleaseExample.dot @@ -1,17 +1,17 @@ digraph iCFG { -41 [label="41: DeclStmt \n n$30=_fun___objc_alloc_no_fail(sizeof(class NSAutoreleasePool ):unsigned long ) [line 60]\n n$28=_fun_NSAutoreleasePool_init(n$30:class NSAutoreleasePool *) [line 60]\n *&pool:class NSAutoreleasePool *=n$28 [line 60]\n REMOVE_TEMPS(n$28,n$30); [line 60]\n " shape="box"] +41 [label="41: DeclStmt \n n$7=_fun___objc_alloc_no_fail(sizeof(class NSAutoreleasePool ):unsigned long ) [line 60]\n n$5=_fun_NSAutoreleasePool_init(n$7:class NSAutoreleasePool *) [line 60]\n *&pool:class NSAutoreleasePool *=n$5 [line 60]\n REMOVE_TEMPS(n$5,n$7); [line 60]\n " shape="box"] 41 -> 40 ; -40 [label="40: DeclStmt \n n$27=_fun___objc_alloc_no_fail(sizeof(class NSString ):unsigned long ) [line 61]\n n$25=_fun___set_autorelease_attribute(n$27:class NSString *) [line 61]\n *&string:class NSString *=n$25 [line 61]\n REMOVE_TEMPS(n$25,n$27); [line 61]\n " shape="box"] +40 [label="40: DeclStmt \n n$4=_fun___objc_alloc_no_fail(sizeof(class NSString ):unsigned long ) [line 61]\n n$2=_fun___set_autorelease_attribute(n$4:class NSString *) [line 61]\n *&string:class NSString *=n$2 [line 61]\n REMOVE_TEMPS(n$2,n$4); [line 61]\n " shape="box"] 40 -> 39 ; -39 [label="39: Message Call: release \n n$24=*&pool:class NSAutoreleasePool * [line 63]\n _fun___objc_release_autorelease_pool(n$24:class NSAutoreleasePool *) [line 63]\n REMOVE_TEMPS(n$24); [line 63]\n NULLIFY(&pool,false); [line 63]\n " shape="box"] +39 [label="39: Message Call: release \n n$1=*&pool:class NSAutoreleasePool * [line 63]\n _fun___objc_release_autorelease_pool(n$1:class NSAutoreleasePool *) [line 63]\n REMOVE_TEMPS(n$1); [line 63]\n NULLIFY(&pool,false); [line 63]\n " shape="box"] 39 -> 38 ; -38 [label="38: DeclStmt \n n$23=*&string:class NSString * [line 64]\n *&c:class NSString *=n$23 [line 64]\n REMOVE_TEMPS(n$23); [line 64]\n NULLIFY(&c,false); [line 64]\n NULLIFY(&string,false); [line 64]\n APPLY_ABSTRACTION; [line 64]\n " shape="box"] +38 [label="38: DeclStmt \n n$0=*&string:class NSString * [line 64]\n *&c:class NSString *=n$0 [line 64]\n REMOVE_TEMPS(n$0); [line 64]\n NULLIFY(&c,false); [line 64]\n NULLIFY(&string,false); [line 64]\n APPLY_ABSTRACTION; [line 64]\n " shape="box"] 38 -> 37 ; @@ -34,19 +34,19 @@ digraph iCFG { 33 -> 32 ; -32 [label="32: BinaryOperatorStmt: Assign \n n$22=_fun_createA() [line 52]\n *&s1:class A *=n$22 [line 52]\n REMOVE_TEMPS(n$22); [line 52]\n " shape="box"] +32 [label="32: BinaryOperatorStmt: Assign \n n$3=_fun_createA() [line 52]\n *&s1:class A *=n$3 [line 52]\n REMOVE_TEMPS(n$3); [line 52]\n " shape="box"] 32 -> 31 ; -31 [label="31: BinaryOperatorStmt: Assign \n n$21=_fun_createA() [line 53]\n *&s2:class A *=n$21 [line 53]\n REMOVE_TEMPS(n$21); [line 53]\n " shape="box"] +31 [label="31: BinaryOperatorStmt: Assign \n n$2=_fun_createA() [line 53]\n *&s2:class A *=n$2 [line 53]\n REMOVE_TEMPS(n$2); [line 53]\n " shape="box"] 31 -> 30 ; -30 [label="30: BinaryOperatorStmt: Assign \n n$20=_fun_createA() [line 54]\n *&s3:class A *=n$20 [line 54]\n REMOVE_TEMPS(n$20); [line 54]\n " shape="box"] +30 [label="30: BinaryOperatorStmt: Assign \n n$1=_fun_createA() [line 54]\n *&s3:class A *=n$1 [line 54]\n REMOVE_TEMPS(n$1); [line 54]\n " shape="box"] 30 -> 29 ; -29 [label="29: Release the autorelease pool \n n$19=_fun___objc_release_autorelease_pool(&s1:class A *,&s3:class A *,&s2:class A *) [line 51]\n REMOVE_TEMPS(n$19); [line 51]\n " shape="box"] +29 [label="29: Release the autorelease pool \n n$0=_fun___objc_release_autorelease_pool(&s1:class A *,&s3:class A *,&s2:class A *) [line 51]\n REMOVE_TEMPS(n$0); [line 51]\n " shape="box"] 29 -> 28 ; @@ -73,23 +73,23 @@ digraph iCFG { 23 -> 22 ; -22 [label="22: BinaryOperatorStmt: Assign \n n$18=_fun_createA() [line 39]\n *&s1:class A *=n$18 [line 39]\n REMOVE_TEMPS(n$18); [line 39]\n " shape="box"] +22 [label="22: BinaryOperatorStmt: Assign \n n$5=_fun_createA() [line 39]\n *&s1:class A *=n$5 [line 39]\n REMOVE_TEMPS(n$5); [line 39]\n " shape="box"] 22 -> 21 ; -21 [label="21: Message Call: retain \n n$17=*&s1:class A * [line 40]\n n$16=_fun___objc_retain(n$17:class A *) [line 40]\n REMOVE_TEMPS(n$16,n$17); [line 40]\n " shape="box"] +21 [label="21: Message Call: retain \n n$4=*&s1:class A * [line 40]\n n$3=_fun___objc_retain(n$4:class A *) [line 40]\n REMOVE_TEMPS(n$3,n$4); [line 40]\n " shape="box"] 21 -> 20 ; -20 [label="20: BinaryOperatorStmt: Assign \n n$15=_fun_createA() [line 41]\n *&s2:class A *=n$15 [line 41]\n REMOVE_TEMPS(n$15); [line 41]\n " shape="box"] +20 [label="20: BinaryOperatorStmt: Assign \n n$2=_fun_createA() [line 41]\n *&s2:class A *=n$2 [line 41]\n REMOVE_TEMPS(n$2); [line 41]\n " shape="box"] 20 -> 19 ; -19 [label="19: BinaryOperatorStmt: Assign \n n$14=_fun_createA() [line 42]\n *&s3:class A *=n$14 [line 42]\n REMOVE_TEMPS(n$14); [line 42]\n " shape="box"] +19 [label="19: BinaryOperatorStmt: Assign \n n$1=_fun_createA() [line 42]\n *&s3:class A *=n$1 [line 42]\n REMOVE_TEMPS(n$1); [line 42]\n " shape="box"] 19 -> 18 ; -18 [label="18: Release the autorelease pool \n n$13=_fun___objc_release_autorelease_pool(&s1:class A *,&s2:class A *,&s3:class A *) [line 38]\n REMOVE_TEMPS(n$13); [line 38]\n " shape="box"] +18 [label="18: Release the autorelease pool \n n$0=_fun___objc_release_autorelease_pool(&s1:class A *,&s2:class A *,&s3:class A *) [line 38]\n REMOVE_TEMPS(n$0); [line 38]\n " shape="box"] 18 -> 17 ; @@ -104,11 +104,11 @@ digraph iCFG { 15 -> 25 ; -14 [label="14: DeclStmt \n n$12=_fun___objc_alloc_no_fail(sizeof(class A ):unsigned long ) [line 30]\n n$10=_fun_A_init(n$12:class A *) virtual [line 30]\n *&s1:class A *=n$10 [line 30]\n REMOVE_TEMPS(n$10,n$12); [line 30]\n " shape="box"] +14 [label="14: DeclStmt \n n$4=_fun___objc_alloc_no_fail(sizeof(class A ):unsigned long ) [line 30]\n n$2=_fun_A_init(n$4:class A *) virtual [line 30]\n *&s1:class A *=n$2 [line 30]\n REMOVE_TEMPS(n$2,n$4); [line 30]\n " shape="box"] 14 -> 13 ; -13 [label="13: Return Stmt \n n$9=*&s1:class A * [line 31]\n n$8=_fun___set_autorelease_attribute(n$9:class A *) [line 31]\n *&return:class A *=n$8 [line 31]\n REMOVE_TEMPS(n$8,n$9); [line 31]\n NULLIFY(&s1,false); [line 31]\n APPLY_ABSTRACTION; [line 31]\n " shape="box"] +13 [label="13: Return Stmt \n n$1=*&s1:class A * [line 31]\n n$0=_fun___set_autorelease_attribute(n$1:class A *) [line 31]\n *&return:class A *=n$0 [line 31]\n REMOVE_TEMPS(n$0,n$1); [line 31]\n NULLIFY(&s1,false); [line 31]\n APPLY_ABSTRACTION; [line 31]\n " shape="box"] 13 -> 12 ; diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainReleaseExample2.dot b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainReleaseExample2.dot index 93ef4c969..decb20624 100644 --- a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainReleaseExample2.dot +++ b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/RetainReleaseExample2.dot @@ -1,13 +1,13 @@ digraph iCFG { -32 [label="32: Call _fun___objc_release \n n$23=*&a:class A * [line 70]\n _fun___objc_release(n$23:class A *) [line 70]\n REMOVE_TEMPS(n$23); [line 70]\n NULLIFY(&a,false); [line 70]\n APPLY_ABSTRACTION; [line 70]\n " shape="box"] +32 [label="32: Call _fun___objc_release \n n$1=*&a:class A * [line 70]\n _fun___objc_release(n$1:class A *) [line 70]\n REMOVE_TEMPS(n$1); [line 70]\n NULLIFY(&a,false); [line 70]\n APPLY_ABSTRACTION; [line 70]\n " shape="box"] 32 -> 29 ; -31 [label="31: Prune (false branch) \n n$22=*&a:class A * [line 69]\n PRUNE((n$22 == 0), false); [line 69]\n REMOVE_TEMPS(n$22); [line 69]\n APPLY_ABSTRACTION; [line 69]\n " shape="invhouse"] +31 [label="31: Prune (false branch) \n n$0=*&a:class A * [line 69]\n PRUNE((n$0 == 0), false); [line 69]\n REMOVE_TEMPS(n$0); [line 69]\n APPLY_ABSTRACTION; [line 69]\n " shape="invhouse"] 31 -> 29 ; -30 [label="30: Prune (true branch) \n n$22=*&a:class A * [line 69]\n PRUNE((n$22 != 0), true); [line 69]\n REMOVE_TEMPS(n$22); [line 69]\n " shape="invhouse"] +30 [label="30: Prune (true branch) \n n$0=*&a:class A * [line 69]\n PRUNE((n$0 != 0), true); [line 69]\n REMOVE_TEMPS(n$0); [line 69]\n " shape="invhouse"] 30 -> 32 ; @@ -23,15 +23,15 @@ digraph iCFG { 27 -> 30 ; 27 -> 31 ; -26 [label="26: DeclStmt \n n$21=_fun___objc_alloc_no_fail(sizeof(class A ):unsigned long ) [line 62]\n n$19=_fun_A_init(n$21:class A *) virtual [line 62]\n *&a:class A *=n$19 [line 62]\n REMOVE_TEMPS(n$19,n$21); [line 62]\n " shape="box"] +26 [label="26: DeclStmt \n n$5=_fun___objc_alloc_no_fail(sizeof(class A ):unsigned long ) [line 62]\n n$3=_fun_A_init(n$5:class A *) virtual [line 62]\n *&a:class A *=n$3 [line 62]\n REMOVE_TEMPS(n$3,n$5); [line 62]\n " shape="box"] 26 -> 25 ; -25 [label="25: Message Call: retain \n n$18=*&a:class A * [line 63]\n n$17=_fun___objc_retain(n$18:class A *) [line 63]\n REMOVE_TEMPS(n$17,n$18); [line 63]\n " shape="box"] +25 [label="25: Message Call: retain \n n$2=*&a:class A * [line 63]\n n$1=_fun___objc_retain(n$2:class A *) [line 63]\n REMOVE_TEMPS(n$1,n$2); [line 63]\n " shape="box"] 25 -> 24 ; -24 [label="24: Message Call: release \n n$16=*&a:class A * [line 64]\n _fun___objc_release(n$16:class A *) [line 64]\n REMOVE_TEMPS(n$16); [line 64]\n NULLIFY(&a,false); [line 64]\n APPLY_ABSTRACTION; [line 64]\n " shape="box"] +24 [label="24: Message Call: release \n n$0=*&a:class A * [line 64]\n _fun___objc_release(n$0:class A *) [line 64]\n REMOVE_TEMPS(n$0); [line 64]\n NULLIFY(&a,false); [line 64]\n APPLY_ABSTRACTION; [line 64]\n " shape="box"] 24 -> 23 ; @@ -42,11 +42,11 @@ digraph iCFG { 22 -> 26 ; -21 [label="21: DeclStmt \n n$15=_fun___objc_alloc_no_fail(sizeof(class A ):unsigned long ) [line 55]\n n$13=_fun_A_init(n$15:class A *) virtual [line 55]\n *&a:class A *=n$13 [line 55]\n REMOVE_TEMPS(n$13,n$15); [line 55]\n " shape="box"] +21 [label="21: DeclStmt \n n$3=_fun___objc_alloc_no_fail(sizeof(class A ):unsigned long ) [line 55]\n n$1=_fun_A_init(n$3:class A *) virtual [line 55]\n *&a:class A *=n$1 [line 55]\n REMOVE_TEMPS(n$1,n$3); [line 55]\n " shape="box"] 21 -> 20 ; -20 [label="20: Message Call: release \n n$12=*&a:class A * [line 56]\n _fun___objc_release(n$12:class A *) [line 56]\n REMOVE_TEMPS(n$12); [line 56]\n NULLIFY(&a,false); [line 56]\n APPLY_ABSTRACTION; [line 56]\n " shape="box"] +20 [label="20: Message Call: release \n n$0=*&a:class A * [line 56]\n _fun___objc_release(n$0:class A *) [line 56]\n REMOVE_TEMPS(n$0); [line 56]\n NULLIFY(&a,false); [line 56]\n APPLY_ABSTRACTION; [line 56]\n " shape="box"] 20 -> 19 ; @@ -57,11 +57,11 @@ digraph iCFG { 18 -> 21 ; -17 [label="17: DeclStmt \n n$11=_fun_test() [line 49]\n *&b:class A *=n$11 [line 49]\n REMOVE_TEMPS(n$11); [line 49]\n " shape="box"] +17 [label="17: DeclStmt \n n$1=_fun_test() [line 49]\n *&b:class A *=n$1 [line 49]\n REMOVE_TEMPS(n$1); [line 49]\n " shape="box"] 17 -> 16 ; -16 [label="16: Message Call: release \n n$10=*&b:class A * [line 50]\n _fun___objc_release(n$10:class A *) [line 50]\n REMOVE_TEMPS(n$10); [line 50]\n NULLIFY(&b,false); [line 50]\n APPLY_ABSTRACTION; [line 50]\n " shape="box"] +16 [label="16: Message Call: release \n n$0=*&b:class A * [line 50]\n _fun___objc_release(n$0:class A *) [line 50]\n REMOVE_TEMPS(n$0); [line 50]\n NULLIFY(&b,false); [line 50]\n APPLY_ABSTRACTION; [line 50]\n " shape="box"] 16 -> 15 ; @@ -72,7 +72,7 @@ digraph iCFG { 14 -> 17 ; -13 [label="13: DeclStmt \n n$9=_fun_test() [line 43]\n *&b:class A *=n$9 [line 43]\n REMOVE_TEMPS(n$9); [line 43]\n NULLIFY(&b,false); [line 43]\n APPLY_ABSTRACTION; [line 43]\n " shape="box"] +13 [label="13: DeclStmt \n n$0=_fun_test() [line 43]\n *&b:class A *=n$0 [line 43]\n REMOVE_TEMPS(n$0); [line 43]\n NULLIFY(&b,false); [line 43]\n APPLY_ABSTRACTION; [line 43]\n " shape="box"] 13 -> 12 ; @@ -83,11 +83,11 @@ digraph iCFG { 11 -> 13 ; -10 [label="10: DeclStmt \n n$8=_fun_test() [line 36]\n *&b:class A *=n$8 [line 36]\n REMOVE_TEMPS(n$8); [line 36]\n " shape="box"] +10 [label="10: DeclStmt \n n$1=_fun_test() [line 36]\n *&b:class A *=n$1 [line 36]\n REMOVE_TEMPS(n$1); [line 36]\n " shape="box"] 10 -> 9 ; -9 [label="9: BinaryOperatorStmt: Assign \n n$7=*&b:class A * [line 37]\n *&#GB$g:class A *=n$7 [line 37]\n REMOVE_TEMPS(n$7); [line 37]\n NULLIFY(&b,false); [line 37]\n APPLY_ABSTRACTION; [line 37]\n " shape="box"] +9 [label="9: BinaryOperatorStmt: Assign \n n$0=*&b:class A * [line 37]\n *&#GB$g:class A *=n$0 [line 37]\n REMOVE_TEMPS(n$0); [line 37]\n NULLIFY(&b,false); [line 37]\n APPLY_ABSTRACTION; [line 37]\n " shape="box"] 9 -> 8 ; diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/TollBridgeExample.dot b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/TollBridgeExample.dot index 8b34439e3..4438f5365 100644 --- a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/TollBridgeExample.dot +++ b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/TollBridgeExample.dot @@ -1,5 +1,5 @@ digraph iCFG { -19 [label="19: Return Stmt \n n$10=_fun___builtin___CFStringMakeConstantString(\"Icon\":char *) [line 43]\n n$11=_fun_CTFontCreateWithName(n$10:struct __CFString *,17.000000:double ,0:CGAffineTransform *) [line 43]\n n$12=_fun___objc_cast(n$11:void *,sizeof(void ):unsigned long ) [line 43]\n *&return:struct __CTFont *=n$12 [line 43]\n REMOVE_TEMPS(n$10,n$11,n$12); [line 43]\n APPLY_ABSTRACTION; [line 43]\n " shape="box"] +19 [label="19: Return Stmt \n n$0=_fun___builtin___CFStringMakeConstantString(\"Icon\":char *) [line 43]\n n$1=_fun_CTFontCreateWithName(n$0:struct __CFString *,17.000000:double ,0:CGAffineTransform *) [line 43]\n n$2=_fun___objc_cast(n$1:void *,sizeof(void ):unsigned long ) [line 43]\n *&return:struct __CTFont *=n$2 [line 43]\n REMOVE_TEMPS(n$0,n$1,n$2); [line 43]\n APPLY_ABSTRACTION; [line 43]\n " shape="box"] 19 -> 18 ; diff --git a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/arc_methods.dot b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/arc_methods.dot index 6a0ccfb68..5366b345f 100644 --- a/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/arc_methods.dot +++ b/infer/tests/codetoanalyze/objc/errors/memory_leaks_benchmark/arc_methods.dot @@ -1,17 +1,17 @@ digraph iCFG { -15 [label="15: DeclStmt \n n$12=_fun_A_newA() [line 42]\n *&a1:class A *=n$12 [line 42]\n REMOVE_TEMPS(n$12); [line 42]\n " shape="box"] +15 [label="15: DeclStmt \n n$3=_fun_A_newA() [line 42]\n *&a1:class A *=n$3 [line 42]\n REMOVE_TEMPS(n$3); [line 42]\n " shape="box"] 15 -> 14 ; -14 [label="14: DeclStmt \n n$11=*&a1:class A * [line 43]\n _fun___objc_retain(n$11:class A *) [line 43]\n *&aa:class A *=n$11 [line 43]\n REMOVE_TEMPS(n$11); [line 43]\n NULLIFY(&a1,false); [line 43]\n NULLIFY(&aa,false); [line 43]\n " shape="box"] +14 [label="14: DeclStmt \n n$2=*&a1:class A * [line 43]\n _fun___objc_retain(n$2:class A *) [line 43]\n *&aa:class A *=n$2 [line 43]\n REMOVE_TEMPS(n$2); [line 43]\n NULLIFY(&a1,false); [line 43]\n NULLIFY(&aa,false); [line 43]\n " shape="box"] 14 -> 13 ; -13 [label="13: DeclStmt \n n$10=_fun_A_someA() [line 44]\n _fun___objc_retain(n$10:class A *) [line 44]\n *&a2:class A *=n$10 [line 44]\n REMOVE_TEMPS(n$10); [line 44]\n " shape="box"] +13 [label="13: DeclStmt \n n$1=_fun_A_someA() [line 44]\n _fun___objc_retain(n$1:class A *) [line 44]\n *&a2:class A *=n$1 [line 44]\n REMOVE_TEMPS(n$1); [line 44]\n " shape="box"] 13 -> 12 ; -12 [label="12: DeclStmt \n n$9=*&a2:class A * [line 45]\n _fun___objc_retain(n$9:class A *) [line 45]\n *&ab:class A *=n$9 [line 45]\n REMOVE_TEMPS(n$9); [line 45]\n NULLIFY(&a2,false); [line 45]\n NULLIFY(&ab,false); [line 45]\n " shape="box"] +12 [label="12: DeclStmt \n n$0=*&a2:class A * [line 45]\n _fun___objc_retain(n$0:class A *) [line 45]\n *&ab:class A *=n$0 [line 45]\n REMOVE_TEMPS(n$0); [line 45]\n NULLIFY(&a2,false); [line 45]\n NULLIFY(&ab,false); [line 45]\n " shape="box"] 12 -> 11 ; diff --git a/infer/tests/codetoanalyze/objc/errors/npe/Nonnull_attribute_example.dot b/infer/tests/codetoanalyze/objc/errors/npe/Nonnull_attribute_example.dot index a127c6447..ba08e3d0e 100644 --- a/infer/tests/codetoanalyze/objc/errors/npe/Nonnull_attribute_example.dot +++ b/infer/tests/codetoanalyze/objc/errors/npe/Nonnull_attribute_example.dot @@ -1,9 +1,9 @@ digraph iCFG { -20 [label="20: Call _fun___infer_assume \n n$20=*&callback:_fn_ (*) [line 46]\n n$21=_fun___infer_assume((n$20 != 0):_fn_ (*)) [line 46]\n REMOVE_TEMPS(n$20,n$21); [line 46]\n " shape="box"] +20 [label="20: Call _fun___infer_assume \n n$1=*&callback:_fn_ (*) [line 46]\n n$2=_fun___infer_assume((n$1 != 0):_fn_ (*)) [line 46]\n REMOVE_TEMPS(n$1,n$2); [line 46]\n " shape="box"] 20 -> 19 ; -19 [label="19: Call n$19 \n n$19=*&callback:_fn_ (*) [line 47]\n n$19(0:class NSError *,0:id *) [line 47]\n REMOVE_TEMPS(n$19); [line 47]\n NULLIFY(&callback,false); [line 47]\n APPLY_ABSTRACTION; [line 47]\n " shape="box"] +19 [label="19: Call n$0 \n n$0=*&callback:_fn_ (*) [line 47]\n n$0(0:class NSError *,0:id *) [line 47]\n REMOVE_TEMPS(n$0); [line 47]\n NULLIFY(&callback,false); [line 47]\n APPLY_ABSTRACTION; [line 47]\n " shape="box"] 19 -> 18 ; @@ -14,11 +14,11 @@ digraph iCFG { 17 -> 20 ; -16 [label="16: Call _fun___infer_assume \n n$17=*&name:class NSString * [line -1]\n n$18=_fun___infer_assume((n$17 != 0):class NSString *) [line -1]\n REMOVE_TEMPS(n$17,n$18); [line -1]\n " shape="box"] +16 [label="16: Call _fun___infer_assume \n n$13=*&name:class NSString * [line -1]\n n$14=_fun___infer_assume((n$13 != 0):class NSString *) [line -1]\n REMOVE_TEMPS(n$13,n$14); [line -1]\n " shape="box"] 16 -> 15 ; -15 [label="15: BinaryOperatorStmt: Assign \n n$14=*&self:class C * [line 31]\n n$16=*&name:class NSString * [line 31]\n n$15=_fun_NSString_copy(n$16:class NSString *) virtual [line 31]\n *n$14._name:class NSString *=n$15 [line 31]\n REMOVE_TEMPS(n$14,n$15,n$16); [line 31]\n NULLIFY(&name,false); [line 31]\n NULLIFY(&self,false); [line 31]\n APPLY_ABSTRACTION; [line 31]\n " shape="box"] +15 [label="15: BinaryOperatorStmt: Assign \n n$10=*&self:class C * [line 31]\n n$12=*&name:class NSString * [line 31]\n n$11=_fun_NSString_copy(n$12:class NSString *) virtual [line 31]\n *n$10._name:class NSString *=n$11 [line 31]\n REMOVE_TEMPS(n$10,n$11,n$12); [line 31]\n NULLIFY(&name,false); [line 31]\n NULLIFY(&self,false); [line 31]\n APPLY_ABSTRACTION; [line 31]\n " shape="box"] 15 -> 14 ; @@ -29,7 +29,7 @@ digraph iCFG { 13 -> 16 ; -12 [label="12: Return Stmt \n n$11=*&self:class C * [line 31]\n n$12=*n$11._name:class NSString * [line 31]\n *&return:class NSString *=n$12 [line 31]\n n$13=_fun___set_autorelease_attribute(n$12:class NSString *) [line 31]\n REMOVE_TEMPS(n$11,n$12,n$13); [line 31]\n NULLIFY(&self,false); [line 31]\n APPLY_ABSTRACTION; [line 31]\n " shape="box"] +12 [label="12: Return Stmt \n n$7=*&self:class C * [line 31]\n n$8=*n$7._name:class NSString * [line 31]\n *&return:class NSString *=n$8 [line 31]\n n$9=_fun___set_autorelease_attribute(n$8:class NSString *) [line 31]\n REMOVE_TEMPS(n$7,n$8,n$9); [line 31]\n NULLIFY(&self,false); [line 31]\n APPLY_ABSTRACTION; [line 31]\n " shape="box"] 12 -> 11 ; @@ -40,19 +40,19 @@ digraph iCFG { 10 -> 12 ; -9 [label="9: Call _fun___infer_assume \n n$9=*&a:class A * [line -1]\n n$10=_fun___infer_assume((n$9 != 0):class A *) [line -1]\n REMOVE_TEMPS(n$9,n$10); [line -1]\n " shape="box"] +9 [label="9: Call _fun___infer_assume \n n$5=*&a:class A * [line -1]\n n$6=_fun___infer_assume((n$5 != 0):class A *) [line -1]\n REMOVE_TEMPS(n$5,n$6); [line -1]\n " shape="box"] 9 -> 8 ; -8 [label="8: DeclStmt \n n$8=*&a:class A * [line 39]\n n$7=_fun_A_getA(n$8:class A *) virtual [line 39]\n _fun___objc_retain(n$7:class A *) [line 39]\n *&a1:class A *=n$7 [line 39]\n REMOVE_TEMPS(n$7,n$8); [line 39]\n NULLIFY(&a,false); [line 39]\n " shape="box"] +8 [label="8: DeclStmt \n n$4=*&a:class A * [line 39]\n n$3=_fun_A_getA(n$4:class A *) virtual [line 39]\n _fun___objc_retain(n$3:class A *) [line 39]\n *&a1:class A *=n$3 [line 39]\n REMOVE_TEMPS(n$3,n$4); [line 39]\n NULLIFY(&a,false); [line 39]\n " shape="box"] 8 -> 7 ; -7 [label="7: DeclStmt \n n$5=*&a1:class A * [line 40]\n n$6=*n$5.x:int [line 40]\n *&y:int =n$6 [line 40]\n REMOVE_TEMPS(n$5,n$6); [line 40]\n NULLIFY(&a1,false); [line 40]\n NULLIFY(&y,false); [line 40]\n " shape="box"] +7 [label="7: DeclStmt \n n$1=*&a1:class A * [line 40]\n n$2=*n$1.x:int [line 40]\n *&y:int =n$2 [line 40]\n REMOVE_TEMPS(n$1,n$2); [line 40]\n NULLIFY(&a1,false); [line 40]\n NULLIFY(&y,false); [line 40]\n " shape="box"] 7 -> 6 ; -6 [label="6: Return Stmt \n n$4=*&self:class C * [line 41]\n *&return:struct objc_object *=n$4 [line 41]\n REMOVE_TEMPS(n$4); [line 41]\n NULLIFY(&self,false); [line 41]\n APPLY_ABSTRACTION; [line 41]\n " shape="box"] +6 [label="6: Return Stmt \n n$0=*&self:class C * [line 41]\n *&return:struct objc_object *=n$0 [line 41]\n REMOVE_TEMPS(n$0); [line 41]\n NULLIFY(&self,false); [line 41]\n APPLY_ABSTRACTION; [line 41]\n " shape="box"] 6 -> 5 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/assertions/NSAssert_example.dot b/infer/tests/codetoanalyze/objc/frontend/assertions/NSAssert_example.dot index dc4e8c318..47a6440e9 100644 --- a/infer/tests/codetoanalyze/objc/frontend/assertions/NSAssert_example.dot +++ b/infer/tests/codetoanalyze/objc/frontend/assertions/NSAssert_example.dot @@ -3,11 +3,11 @@ digraph iCFG { 81 -> 65 ; -80 [label="80: Prune (false branch) \n n$41=*&SIL_temp_conditional___74:int [line 38]\n NULLIFY(&SIL_temp_conditional___74,true); [line 38]\n PRUNE((n$41 == 0), false); [line 38]\n REMOVE_TEMPS(n$41); [line 38]\n " shape="invhouse"] +80 [label="80: Prune (false branch) \n n$5=*&SIL_temp_conditional___74:int [line 38]\n NULLIFY(&SIL_temp_conditional___74,true); [line 38]\n PRUNE((n$5 == 0), false); [line 38]\n REMOVE_TEMPS(n$5); [line 38]\n " shape="invhouse"] 80 -> 73 ; -79 [label="79: Prune (true branch) \n n$41=*&SIL_temp_conditional___74:int [line 38]\n NULLIFY(&SIL_temp_conditional___74,true); [line 38]\n PRUNE((n$41 != 0), true); [line 38]\n REMOVE_TEMPS(n$41); [line 38]\n NULLIFY(&target,false); [line 38]\n " shape="invhouse"] +79 [label="79: Prune (true branch) \n n$5=*&SIL_temp_conditional___74:int [line 38]\n NULLIFY(&SIL_temp_conditional___74,true); [line 38]\n PRUNE((n$5 != 0), true); [line 38]\n REMOVE_TEMPS(n$5); [line 38]\n NULLIFY(&target,false); [line 38]\n " shape="invhouse"] 79 -> 81 ; @@ -19,11 +19,11 @@ digraph iCFG { 77 -> 74 ; -76 [label="76: Prune (false branch) \n n$40=*&target:class A * [line 38]\n PRUNE((n$40 == 0), false); [line 38]\n REMOVE_TEMPS(n$40); [line 38]\n " shape="invhouse"] +76 [label="76: Prune (false branch) \n n$4=*&target:class A * [line 38]\n PRUNE((n$4 == 0), false); [line 38]\n REMOVE_TEMPS(n$4); [line 38]\n " shape="invhouse"] 76 -> 78 ; -75 [label="75: Prune (true branch) \n n$40=*&target:class A * [line 38]\n PRUNE((n$40 != 0), true); [line 38]\n REMOVE_TEMPS(n$40); [line 38]\n " shape="invhouse"] +75 [label="75: Prune (true branch) \n n$4=*&target:class A * [line 38]\n PRUNE((n$4 != 0), true); [line 38]\n REMOVE_TEMPS(n$4); [line 38]\n " shape="invhouse"] 75 -> 77 ; @@ -50,7 +50,7 @@ digraph iCFG { 70 -> 75 ; 70 -> 76 ; -69 [label="69: Return Stmt \n n$38=*&self:class A * [line 13]\n n$39=*n$38._x:int [line 13]\n *&return:int =n$39 [line 13]\n REMOVE_TEMPS(n$38,n$39); [line 13]\n NULLIFY(&self,false); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] +69 [label="69: Return Stmt \n n$2=*&self:class A * [line 13]\n n$3=*n$2._x:int [line 13]\n *&return:int =n$3 [line 13]\n REMOVE_TEMPS(n$2,n$3); [line 13]\n NULLIFY(&self,false); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"] 69 -> 68 ; @@ -61,7 +61,7 @@ digraph iCFG { 67 -> 69 ; -66 [label="66: Return Stmt \n n$37=*&target:class A * [line 37]\n n$36=_fun_A_x(n$37:class A *) virtual [line 37]\n *&return:int =n$36 [line 37]\n REMOVE_TEMPS(n$36,n$37); [line 37]\n NULLIFY(&target,false); [line 37]\n APPLY_ABSTRACTION; [line 37]\n " shape="box"] +66 [label="66: Return Stmt \n n$1=*&target:class A * [line 37]\n n$0=_fun_A_x(n$1:class A *) virtual [line 37]\n *&return:int =n$0 [line 37]\n REMOVE_TEMPS(n$0,n$1); [line 37]\n NULLIFY(&target,false); [line 37]\n APPLY_ABSTRACTION; [line 37]\n " shape="box"] 66 -> 65 ; @@ -76,11 +76,11 @@ digraph iCFG { 63 -> 46 ; -62 [label="62: Prune (false branch) \n n$31=*&SIL_temp_conditional___55:int [line 33]\n NULLIFY(&SIL_temp_conditional___55,true); [line 33]\n PRUNE((n$31 == 0), false); [line 33]\n REMOVE_TEMPS(n$31); [line 33]\n " shape="invhouse"] +62 [label="62: Prune (false branch) \n n$5=*&SIL_temp_conditional___55:int [line 33]\n NULLIFY(&SIL_temp_conditional___55,true); [line 33]\n PRUNE((n$5 == 0), false); [line 33]\n REMOVE_TEMPS(n$5); [line 33]\n " shape="invhouse"] 62 -> 54 ; -61 [label="61: Prune (true branch) \n n$31=*&SIL_temp_conditional___55:int [line 33]\n NULLIFY(&SIL_temp_conditional___55,true); [line 33]\n PRUNE((n$31 != 0), true); [line 33]\n REMOVE_TEMPS(n$31); [line 33]\n NULLIFY(&target,false); [line 33]\n " shape="invhouse"] +61 [label="61: Prune (true branch) \n n$5=*&SIL_temp_conditional___55:int [line 33]\n NULLIFY(&SIL_temp_conditional___55,true); [line 33]\n PRUNE((n$5 != 0), true); [line 33]\n REMOVE_TEMPS(n$5); [line 33]\n NULLIFY(&target,false); [line 33]\n " shape="invhouse"] 61 -> 63 ; @@ -92,15 +92,15 @@ digraph iCFG { 59 -> 55 ; -58 [label="58: Prune (false branch) \n PRUNE(((n$30 != (void *)0) == 0), false); [line 31]\n REMOVE_TEMPS(n$30); [line 31]\n " shape="invhouse"] +58 [label="58: Prune (false branch) \n PRUNE(((n$4 != (void *)0) == 0), false); [line 31]\n REMOVE_TEMPS(n$4); [line 31]\n " shape="invhouse"] 58 -> 60 ; -57 [label="57: Prune (true branch) \n PRUNE(((n$30 != (void *)0) != 0), true); [line 31]\n REMOVE_TEMPS(n$30); [line 31]\n " shape="invhouse"] +57 [label="57: Prune (true branch) \n PRUNE(((n$4 != (void *)0) != 0), true); [line 31]\n REMOVE_TEMPS(n$4); [line 31]\n " shape="invhouse"] 57 -> 59 ; -56 [label="56: BinaryOperatorStmt: NE \n n$30=*&target:class A * [line 31]\n " shape="box"] +56 [label="56: BinaryOperatorStmt: NE \n n$4=*&target:class A * [line 31]\n " shape="box"] 56 -> 57 ; @@ -127,7 +127,7 @@ digraph iCFG { 51 -> 56 ; -47 [label="47: Return Stmt \n n$27=*&target:class A * [line 32]\n n$26=_fun_A_x(n$27:class A *) virtual [line 32]\n *&return:int =n$26 [line 32]\n REMOVE_TEMPS(n$26,n$27); [line 32]\n NULLIFY(&target,false); [line 32]\n APPLY_ABSTRACTION; [line 32]\n " shape="box"] +47 [label="47: Return Stmt \n n$1=*&target:class A * [line 32]\n n$0=_fun_A_x(n$1:class A *) virtual [line 32]\n *&return:int =n$0 [line 32]\n REMOVE_TEMPS(n$0,n$1); [line 32]\n NULLIFY(&target,false); [line 32]\n APPLY_ABSTRACTION; [line 32]\n " shape="box"] 47 -> 46 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/block/block.dot b/infer/tests/codetoanalyze/objc/frontend/block/block.dot index 364dc4cb1..30a00b239 100644 --- a/infer/tests/codetoanalyze/objc/frontend/block/block.dot +++ b/infer/tests/codetoanalyze/objc/frontend/block/block.dot @@ -1,5 +1,5 @@ digraph iCFG { -25 [label="25: Return Stmt \n n$27=_fun_main1(4:int ) [line 51]\n *&return:int =n$27 [line 51]\n REMOVE_TEMPS(n$27); [line 51]\n APPLY_ABSTRACTION; [line 51]\n " shape="box"] +25 [label="25: Return Stmt \n n$0=_fun_main1(4:int ) [line 51]\n *&return:int =n$0 [line 51]\n REMOVE_TEMPS(n$0); [line 51]\n APPLY_ABSTRACTION; [line 51]\n " shape="box"] 25 -> 24 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/block/dispatch.dot b/infer/tests/codetoanalyze/objc/frontend/block/dispatch.dot index fcd53a658..d81e73299 100644 --- a/infer/tests/codetoanalyze/objc/frontend/block/dispatch.dot +++ b/infer/tests/codetoanalyze/objc/frontend/block/dispatch.dot @@ -1,13 +1,13 @@ digraph iCFG { -30 [label="30: DeclStmt \n n$20=_fun_A_sharedInstance() [line 50]\n *&b:class A *=n$20 [line 50]\n REMOVE_TEMPS(n$20); [line 50]\n " shape="box"] +30 [label="30: DeclStmt \n n$3=_fun_A_sharedInstance() [line 50]\n *&b:class A *=n$3 [line 50]\n REMOVE_TEMPS(n$3); [line 50]\n " shape="box"] 30 -> 29 ; -29 [label="29: Message Call: setX: \n n$17=*&b:class A * [line 51]\n _fun_A_setX:(n$17:class A *,17:int ) virtual [line 51]\n REMOVE_TEMPS(n$17); [line 51]\n NULLIFY(&b,false); [line 51]\n " shape="box"] +29 [label="29: Message Call: setX: \n n$0=*&b:class A * [line 51]\n _fun_A_setX:(n$0:class A *,17:int ) virtual [line 51]\n REMOVE_TEMPS(n$0); [line 51]\n NULLIFY(&b,false); [line 51]\n " shape="box"] 29 -> 25 ; -28 [label="28: BinaryOperatorStmt: Assign \n n$18=*&self:class A * [line 14]\n n$19=*&x:int [line 14]\n *n$18._x:int =n$19 [line 14]\n REMOVE_TEMPS(n$18,n$19); [line 14]\n NULLIFY(&self,false); [line 14]\n NULLIFY(&x,false); [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] +28 [label="28: BinaryOperatorStmt: Assign \n n$1=*&self:class A * [line 14]\n n$2=*&x:int [line 14]\n *n$1._x:int =n$2 [line 14]\n REMOVE_TEMPS(n$1,n$2); [line 14]\n NULLIFY(&self,false); [line 14]\n NULLIFY(&x,false); [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] 28 -> 27 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/block/retain_cycle.dot b/infer/tests/codetoanalyze/objc/frontend/block/retain_cycle.dot index e4133c115..f38eef540 100644 --- a/infer/tests/codetoanalyze/objc/frontend/block/retain_cycle.dot +++ b/infer/tests/codetoanalyze/objc/frontend/block/retain_cycle.dot @@ -1,9 +1,9 @@ digraph iCFG { -19 [label="19: DeclStmt \n n$18=_fun___objc_alloc_no_fail(sizeof(class A ):unsigned long ) [line 68]\n *&a:class A *=n$18 [line 68]\n REMOVE_TEMPS(n$18); [line 68]\n " shape="box"] +19 [label="19: DeclStmt \n n$3=_fun___objc_alloc_no_fail(sizeof(class A ):unsigned long ) [line 68]\n *&a:class A *=n$3 [line 68]\n REMOVE_TEMPS(n$3); [line 68]\n " shape="box"] 19 -> 18 ; -18 [label="18: BinaryOperatorStmt: Assign \n n$15=*&a:class A * [line 70]\n n$16=_fun_foo(n$15:class A *) [line 70]\n *&a:class A *=n$16 [line 70]\n REMOVE_TEMPS(n$15,n$16); [line 70]\n NULLIFY(&a,false); [line 70]\n " shape="box"] +18 [label="18: BinaryOperatorStmt: Assign \n n$0=*&a:class A * [line 70]\n n$1=_fun_foo(n$0:class A *) [line 70]\n *&a:class A *=n$1 [line 70]\n REMOVE_TEMPS(n$0,n$1); [line 70]\n NULLIFY(&a,false); [line 70]\n " shape="box"] 18 -> 17 ; @@ -18,11 +18,11 @@ digraph iCFG { 15 -> 19 ; -14 [label="14: Message Call: capture \n n$14=*&a:class A * [line 60]\n _fun_A_capture(n$14:class A *) virtual [line 60]\n REMOVE_TEMPS(n$14); [line 60]\n " shape="box"] +14 [label="14: Message Call: capture \n n$1=*&a:class A * [line 60]\n _fun_A_capture(n$1:class A *) virtual [line 60]\n REMOVE_TEMPS(n$1); [line 60]\n " shape="box"] 14 -> 13 ; -13 [label="13: Return Stmt \n n$13=*&a:class A * [line 62]\n *&return:class A *=n$13 [line 62]\n REMOVE_TEMPS(n$13); [line 62]\n NULLIFY(&a,false); [line 62]\n APPLY_ABSTRACTION; [line 62]\n " shape="box"] +13 [label="13: Return Stmt \n n$0=*&a:class A * [line 62]\n *&return:class A *=n$0 [line 62]\n REMOVE_TEMPS(n$0); [line 62]\n NULLIFY(&a,false); [line 62]\n APPLY_ABSTRACTION; [line 62]\n " shape="box"] 13 -> 12 ; @@ -33,15 +33,15 @@ digraph iCFG { 11 -> 14 ; -10 [label="10: BinaryOperatorStmt: Assign \n n$10=*&self:class A * [line 50]\n n$12=_fun___objc_alloc_no_fail(sizeof(class B ):unsigned long ) [line 50]\n *n$10._b:class B *=n$12 [line 50]\n REMOVE_TEMPS(n$10,n$12); [line 50]\n " shape="box"] +10 [label="10: BinaryOperatorStmt: Assign \n n$8=*&self:class A * [line 50]\n n$10=_fun___objc_alloc_no_fail(sizeof(class B ):unsigned long ) [line 50]\n *n$8._b:class B *=n$10 [line 50]\n REMOVE_TEMPS(n$8,n$10); [line 50]\n " shape="box"] 10 -> 9 ; -9 [label="9: Message Call: sHandler: \n n$2=*&self:class A * [line 51]\n n$3=*n$2._b:class B * [line 51]\n DECLARE_LOCALS(&__objc_anonymous_block_A_capture______1); [line 51]\n n$7=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_A_capture______1 ):unsigned long ) [line 51]\n *&__objc_anonymous_block_A_capture______1:class __objc_anonymous_block_A_capture______1 =n$7 [line 51]\n n$8=*&self:class A * [line 51]\n *n$7.self:class A *=n$8 [line 51]\n n$4=*&self:class A * [line 51]\n n$9=*&__objc_anonymous_block_A_capture______1:_fn_ (*) [line 51]\n _fun_B_sHandler:(n$3:class B *,n$9:_fn_ (*),n$4:_fn_ (*)) virtual [line 51]\n REMOVE_TEMPS(n$2,n$3,n$7,n$8,n$4,n$9); [line 51]\n NULLIFY(&__objc_anonymous_block_A_capture______1,true); [line 51]\n NULLIFY(&self,false); [line 51]\n APPLY_ABSTRACTION; [line 51]\n " shape="box"] +9 [label="9: Message Call: sHandler: \n n$0=*&self:class A * [line 51]\n n$1=*n$0._b:class B * [line 51]\n DECLARE_LOCALS(&__objc_anonymous_block_A_capture______1); [line 51]\n n$5=_fun___objc_alloc_no_fail(sizeof(class __objc_anonymous_block_A_capture______1 ):unsigned long ) [line 51]\n *&__objc_anonymous_block_A_capture______1:class __objc_anonymous_block_A_capture______1 =n$5 [line 51]\n n$6=*&self:class A * [line 51]\n *n$5.self:class A *=n$6 [line 51]\n n$2=*&self:class A * [line 51]\n n$7=*&__objc_anonymous_block_A_capture______1:_fn_ (*) [line 51]\n _fun_B_sHandler:(n$1:class B *,n$7:_fn_ (*),n$2:_fn_ (*)) virtual [line 51]\n REMOVE_TEMPS(n$0,n$1,n$5,n$6,n$2,n$7); [line 51]\n NULLIFY(&__objc_anonymous_block_A_capture______1,true); [line 51]\n NULLIFY(&self,false); [line 51]\n APPLY_ABSTRACTION; [line 51]\n " shape="box"] 9 -> 5 ; -8 [label="8: BinaryOperatorStmt: Assign \n n$5=*&self:class A * [line 52]\n n$6=*&d:class D * [line 52]\n *n$5._data:class D *=n$6 [line 52]\n REMOVE_TEMPS(n$5,n$6); [line 52]\n NULLIFY(&d,false); [line 52]\n APPLY_ABSTRACTION; [line 52]\n " shape="box"] +8 [label="8: BinaryOperatorStmt: Assign \n n$3=*&self:class A * [line 52]\n n$4=*&d:class D * [line 52]\n *n$3._data:class D *=n$4 [line 52]\n REMOVE_TEMPS(n$3,n$4); [line 52]\n NULLIFY(&d,false); [line 52]\n APPLY_ABSTRACTION; [line 52]\n " shape="box"] 8 -> 7 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/boxing/dict_literal.dot b/infer/tests/codetoanalyze/objc/frontend/boxing/dict_literal.dot index d20ea390c..ba4a0b126 100644 --- a/infer/tests/codetoanalyze/objc/frontend/boxing/dict_literal.dot +++ b/infer/tests/codetoanalyze/objc/frontend/boxing/dict_literal.dot @@ -1,5 +1,5 @@ digraph iCFG { -6 [label="6: Return Stmt \n n$8=_fun_NSString_stringWithUTF8String:(\"Matt\":char *) [line 23]\n n$9=_fun_NSString_stringWithUTF8String:(\"firstName\":char *) [line 23]\n n$10=_fun_NSString_stringWithUTF8String:(\"Galloway\":char *) [line 23]\n n$11=_fun_NSString_stringWithUTF8String:(\"lastName\":char *) [line 23]\n n$12=_fun_NSNumber_numberWithInt:(28:int ) [line 23]\n n$13=_fun_NSString_stringWithUTF8String:(\"age\":char *) [line 23]\n n$7=_fun_NSDictionary_dictionaryWithObjectsAndKeys:(n$8:struct objc_object *,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 *,0:struct objc_object *) [line 23]\n *&return:class NSDictionary *=n$7 [line 23]\n REMOVE_TEMPS(n$7,n$8,n$9,n$10,n$11,n$12,n$13); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] +6 [label="6: Return Stmt \n n$1=_fun_NSString_stringWithUTF8String:(\"Matt\":char *) [line 23]\n n$2=_fun_NSString_stringWithUTF8String:(\"firstName\":char *) [line 23]\n n$3=_fun_NSString_stringWithUTF8String:(\"Galloway\":char *) [line 23]\n n$4=_fun_NSString_stringWithUTF8String:(\"lastName\":char *) [line 23]\n n$5=_fun_NSNumber_numberWithInt:(28:int ) [line 23]\n n$6=_fun_NSString_stringWithUTF8String:(\"age\":char *) [line 23]\n n$0=_fun_NSDictionary_dictionaryWithObjectsAndKeys:(n$1:struct objc_object *,n$2:struct objc_object *,n$3:struct objc_object *,n$4:struct objc_object *,n$5:struct objc_object *,n$6:struct objc_object *,0:struct objc_object *) [line 23]\n *&return:class NSDictionary *=n$0 [line 23]\n REMOVE_TEMPS(n$0,n$1,n$2,n$3,n$4,n$5,n$6); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"] 6 -> 5 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/boxing/string_literal.dot b/infer/tests/codetoanalyze/objc/frontend/boxing/string_literal.dot index 7dd9f7d17..de9466ace 100644 --- a/infer/tests/codetoanalyze/objc/frontend/boxing/string_literal.dot +++ b/infer/tests/codetoanalyze/objc/frontend/boxing/string_literal.dot @@ -1,5 +1,5 @@ digraph iCFG { -6 [label="6: Return Stmt \n n$1=_fun_NSString_stringWithUTF8String:(\"Hello World!\":char *) [line 19]\n *&return:class NSString *=n$1 [line 19]\n REMOVE_TEMPS(n$1); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] +6 [label="6: Return Stmt \n n$0=_fun_NSString_stringWithUTF8String:(\"Hello World!\":char *) [line 19]\n *&return:class NSString *=n$0 [line 19]\n REMOVE_TEMPS(n$0); [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"] 6 -> 5 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/property/PropertyAttributes.dot b/infer/tests/codetoanalyze/objc/frontend/property/PropertyAttributes.dot index e9d8c6dc8..3302eb983 100644 --- a/infer/tests/codetoanalyze/objc/frontend/property/PropertyAttributes.dot +++ b/infer/tests/codetoanalyze/objc/frontend/property/PropertyAttributes.dot @@ -1,13 +1,13 @@ digraph iCFG { -39 [label="39: DeclStmt \n n$39=_fun___objc_alloc_no_fail(sizeof(class A ):unsigned long ) [line 39]\n n$37=_fun_A_init(n$39:class A *) virtual [line 39]\n *&a:class A *=n$37 [line 39]\n REMOVE_TEMPS(n$37,n$39); [line 39]\n " shape="box"] +39 [label="39: DeclStmt \n n$7=_fun___objc_alloc_no_fail(sizeof(class A ):unsigned long ) [line 39]\n n$5=_fun_A_init(n$7:class A *) virtual [line 39]\n *&a:class A *=n$5 [line 39]\n REMOVE_TEMPS(n$5,n$7); [line 39]\n " shape="box"] 39 -> 38 ; -38 [label="38: Message Call: setLast_name: \n n$33=*&a:class A * [line 40]\n n$34=*&a2:class A * [line 40]\n _fun_A_setLast_name:(n$33:class A *,n$34:class A *) virtual [line 40]\n REMOVE_TEMPS(n$33,n$34); [line 40]\n NULLIFY(&a2,false); [line 40]\n " shape="box"] +38 [label="38: Message Call: setLast_name: \n n$1=*&a:class A * [line 40]\n n$2=*&a2:class A * [line 40]\n _fun_A_setLast_name:(n$1:class A *,n$2:class A *) virtual [line 40]\n REMOVE_TEMPS(n$1,n$2); [line 40]\n NULLIFY(&a2,false); [line 40]\n " shape="box"] 38 -> 34 ; -37 [label="37: BinaryOperatorStmt: Assign \n n$35=*&self:class A * [line 18]\n n$36=*&last_name:class A * [line 18]\n *n$35._last_name:class A *=n$36 [line 18]\n REMOVE_TEMPS(n$35,n$36); [line 18]\n NULLIFY(&last_name,false); [line 18]\n NULLIFY(&self,false); [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] +37 [label="37: BinaryOperatorStmt: Assign \n n$3=*&self:class A * [line 18]\n n$4=*&last_name:class A * [line 18]\n *n$3._last_name:class A *=n$4 [line 18]\n REMOVE_TEMPS(n$3,n$4); [line 18]\n NULLIFY(&last_name,false); [line 18]\n NULLIFY(&self,false); [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] 37 -> 36 ; @@ -18,7 +18,7 @@ digraph iCFG { 35 -> 37 ; -34 [label="34: Message Call: release \n n$32=*&a:class A * [line 41]\n _fun___objc_release(n$32:class A *) [line 41]\n REMOVE_TEMPS(n$32); [line 41]\n NULLIFY(&a,false); [line 41]\n " shape="box"] +34 [label="34: Message Call: release \n n$0=*&a:class A * [line 41]\n _fun___objc_release(n$0:class A *) [line 41]\n REMOVE_TEMPS(n$0); [line 41]\n NULLIFY(&a,false); [line 41]\n " shape="box"] 34 -> 33 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/types/void_call.dot b/infer/tests/codetoanalyze/objc/frontend/types/void_call.dot index 46edcecd2..26e0da04e 100644 --- a/infer/tests/codetoanalyze/objc/frontend/types/void_call.dot +++ b/infer/tests/codetoanalyze/objc/frontend/types/void_call.dot @@ -3,32 +3,32 @@ digraph iCFG { 24 -> 23 ; -23 [label="23: Call _fun_foo1 \n n$14=*&x:int [line 44]\n _fun_foo1(n$14:int ) [line 44]\n REMOVE_TEMPS(n$14); [line 44]\n " shape="box"] +23 [label="23: Call _fun_foo1 \n n$10=*&x:int [line 44]\n _fun_foo1(n$10:int ) [line 44]\n REMOVE_TEMPS(n$10); [line 44]\n " shape="box"] 23 -> 22 ; -22 [label="22: BinaryOperatorStmt: Assign \n n$12=*&x:int [line 46]\n n$13=_fun_bar1(n$12:int ) [line 46]\n *&x:int =n$13 [line 46]\n REMOVE_TEMPS(n$12,n$13); [line 46]\n " shape="box"] +22 [label="22: BinaryOperatorStmt: Assign \n n$8=*&x:int [line 46]\n n$9=_fun_bar1(n$8:int ) [line 46]\n *&x:int =n$9 [line 46]\n REMOVE_TEMPS(n$8,n$9); [line 46]\n " shape="box"] 22 -> 21 ; -21 [label="21: DeclStmt \n n$11=_fun___objc_alloc_no_fail(sizeof(class AClass ):unsigned long ) [line 48]\n *&o:class AClass *=n$11 [line 48]\n REMOVE_TEMPS(n$11); [line 48]\n " shape="box"] +21 [label="21: DeclStmt \n n$7=_fun___objc_alloc_no_fail(sizeof(class AClass ):unsigned long ) [line 48]\n *&o:class AClass *=n$7 [line 48]\n REMOVE_TEMPS(n$7); [line 48]\n " shape="box"] 21 -> 17 ; 21 -> 18 ; -20 [label="20: Message Call: foo: \n n$8=*&o:class AClass * [line 52]\n n$9=*&x:int [line 52]\n _fun_AClass_foo:(n$8:class AClass *,n$9:int ) virtual [line 52]\n REMOVE_TEMPS(n$8,n$9); [line 52]\n " shape="box"] +20 [label="20: Message Call: foo: \n n$4=*&o:class AClass * [line 52]\n n$5=*&x:int [line 52]\n _fun_AClass_foo:(n$4:class AClass *,n$5:int ) virtual [line 52]\n REMOVE_TEMPS(n$4,n$5); [line 52]\n " shape="box"] 20 -> 19 ; -19 [label="19: BinaryOperatorStmt: Assign \n n$6=*&o:class AClass * [line 53]\n n$7=*&x:int [line 53]\n n$5=_fun_AClass_bar:(n$6:class AClass *,n$7:int ) virtual [line 53]\n *&x:int =n$5 [line 53]\n REMOVE_TEMPS(n$5,n$6,n$7); [line 53]\n NULLIFY(&o,false); [line 53]\n NULLIFY(&x,false); [line 53]\n APPLY_ABSTRACTION; [line 53]\n " shape="box"] +19 [label="19: BinaryOperatorStmt: Assign \n n$2=*&o:class AClass * [line 53]\n n$3=*&x:int [line 53]\n n$1=_fun_AClass_bar:(n$2:class AClass *,n$3:int ) virtual [line 53]\n *&x:int =n$1 [line 53]\n REMOVE_TEMPS(n$1,n$2,n$3); [line 53]\n NULLIFY(&o,false); [line 53]\n NULLIFY(&x,false); [line 53]\n APPLY_ABSTRACTION; [line 53]\n " shape="box"] 19 -> 16 ; -18 [label="18: Prune (false branch) \n n$4=*&o:class AClass * [line 50]\n PRUNE((n$4 == 0), false); [line 50]\n REMOVE_TEMPS(n$4); [line 50]\n APPLY_ABSTRACTION; [line 50]\n " shape="invhouse"] +18 [label="18: Prune (false branch) \n n$0=*&o:class AClass * [line 50]\n PRUNE((n$0 == 0), false); [line 50]\n REMOVE_TEMPS(n$0); [line 50]\n APPLY_ABSTRACTION; [line 50]\n " shape="invhouse"] 18 -> 16 ; -17 [label="17: Prune (true branch) \n n$4=*&o:class AClass * [line 50]\n PRUNE((n$4 != 0), true); [line 50]\n REMOVE_TEMPS(n$4); [line 50]\n " shape="invhouse"] +17 [label="17: Prune (true branch) \n n$0=*&o:class AClass * [line 50]\n PRUNE((n$0 != 0), true); [line 50]\n REMOVE_TEMPS(n$0); [line 50]\n " shape="invhouse"] 17 -> 20 ; @@ -47,7 +47,7 @@ digraph iCFG { 13 -> 24 ; -12 [label="12: Return Stmt \n n$3=*&a:int [line 38]\n *&a:int =(n$3 + 1) [line 38]\n *&return:int =n$3 [line 38]\n REMOVE_TEMPS(n$3); [line 38]\n NULLIFY(&a,false); [line 38]\n APPLY_ABSTRACTION; [line 38]\n " shape="box"] +12 [label="12: Return Stmt \n n$0=*&a:int [line 38]\n *&a:int =(n$0 + 1) [line 38]\n *&return:int =n$0 [line 38]\n REMOVE_TEMPS(n$0); [line 38]\n NULLIFY(&a,false); [line 38]\n APPLY_ABSTRACTION; [line 38]\n " shape="box"] 12 -> 11 ; @@ -58,7 +58,7 @@ digraph iCFG { 10 -> 12 ; -9 [label="9: UnaryOperator \n n$2=*&a:int [line 33]\n *&a:int =(n$2 + 1) [line 33]\n REMOVE_TEMPS(n$2); [line 33]\n NULLIFY(&a,false); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] +9 [label="9: UnaryOperator \n n$0=*&a:int [line 33]\n *&a:int =(n$0 + 1) [line 33]\n REMOVE_TEMPS(n$0); [line 33]\n NULLIFY(&a,false); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] 9 -> 8 ; diff --git a/infer/tests/codetoanalyze/objc/frontend/vardecl/initlist.dot b/infer/tests/codetoanalyze/objc/frontend/vardecl/initlist.dot index 390e8d524..ca12d728a 100644 --- a/infer/tests/codetoanalyze/objc/frontend/vardecl/initlist.dot +++ b/infer/tests/codetoanalyze/objc/frontend/vardecl/initlist.dot @@ -1,13 +1,13 @@ digraph iCFG { -8 [label="8: DeclStmt \n n$8=_fun___objc_alloc_no_fail(sizeof(class C ):unsigned long ) [line 22]\n *&c1:class C *=n$8 [line 22]\n REMOVE_TEMPS(n$8); [line 22]\n " shape="box"] +8 [label="8: DeclStmt \n n$7=_fun___objc_alloc_no_fail(sizeof(class C ):unsigned long ) [line 22]\n *&c1:class C *=n$7 [line 22]\n REMOVE_TEMPS(n$7); [line 22]\n " shape="box"] 8 -> 7 ; -7 [label="7: DeclStmt \n n$6=_fun___objc_alloc_no_fail(sizeof(class C ):unsigned long ) [line 23]\n *&c2:class C *=n$6 [line 23]\n REMOVE_TEMPS(n$6); [line 23]\n " shape="box"] +7 [label="7: DeclStmt \n n$5=_fun___objc_alloc_no_fail(sizeof(class C ):unsigned long ) [line 23]\n *&c2:class C *=n$5 [line 23]\n REMOVE_TEMPS(n$5); [line 23]\n " shape="box"] 7 -> 6 ; -6 [label="6: InitListExp \n n$2=*&c1:class C * [line 24]\n n$1=_fun_C_init(n$2:class C *) virtual [line 24]\n n$3=*&c1:class C * [line 24]\n n$4=*&c2:class C * [line 24]\n *&a[0]:C *=n$1 [line 24]\n _fun___objc_retain(n$3:C *) [line 24]\n *&a[1]:C *=n$3 [line 24]\n _fun___objc_retain(n$4:C *) [line 24]\n *&a[2]:C *=n$4 [line 24]\n REMOVE_TEMPS(n$1,n$2,n$3,n$4); [line 24]\n NULLIFY(&c1,false); [line 24]\n NULLIFY(&c2,false); [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"] +6 [label="6: InitListExp \n n$1=*&c1:class C * [line 24]\n n$0=_fun_C_init(n$1:class C *) virtual [line 24]\n n$2=*&c1:class C * [line 24]\n n$3=*&c2:class C * [line 24]\n *&a[0]:C *=n$0 [line 24]\n _fun___objc_retain(n$2:C *) [line 24]\n *&a[1]:C *=n$2 [line 24]\n _fun___objc_retain(n$3:C *) [line 24]\n *&a[2]:C *=n$3 [line 24]\n REMOVE_TEMPS(n$0,n$1,n$2,n$3); [line 24]\n NULLIFY(&c1,false); [line 24]\n NULLIFY(&c2,false); [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"] 6 -> 5 ;