From d946a7bc335e0af428140788abf12917ee5247d7 Mon Sep 17 00:00:00 2001 From: Sam Blackshear Date: Mon, 18 Jul 2016 07:34:46 -0700 Subject: [PATCH] fix ugly printing of NONE idents Reviewed By: akotulski Differential Revision: D3572695 fbshipit-source-id: 7398006 --- infer/src/IR/Ident.re | 33 ++++++----- .../cpp/errors/npe/method_call.cpp.dot | 6 +- .../constructor_with_body.cpp.dot | 10 ++-- .../constructors/std_init_list.cpp.dot | 4 +- .../frontend/constructors/temp_object.cpp.dot | 2 +- .../destructors/call_destructor.cpp.dot | 2 +- .../include_header/include_templ.cpp.dot | 4 +- .../frontend/keywords/self_parameter.cpp.dot | 2 +- .../cpp/frontend/loops/foreach1.cpp.dot | 4 +- .../methods/conversion_operator.cpp.dot | 24 ++++---- .../methods/default_parameters.cpp.dot | 6 +- .../frontend/methods/dereference_this.cpp.dot | 4 +- .../frontend/methods/inline_method.cpp.dot | 4 +- .../cpp/frontend/methods/overloading.cpp.dot | 4 +- .../frontend/methods/return_struct.cpp.dot | 2 +- .../frontend/methods/virtual_methods.cpp.dot | 14 ++--- .../cpp/frontend/namespace/namespace.cpp.dot | 4 +- .../frontend/reference/member_access.cpp.dot | 4 +- .../member_access_from_return.cpp.dot | 4 +- .../reference/reference_field.cpp.dot | 12 ++-- .../reference/reference_struct_e2e.cpp.dot | 56 +++++++++---------- .../class_template_instantiate.cpp.dot | 14 ++--- .../cpp/frontend/templates/function.cpp.dot | 4 +- .../cpp/frontend/templates/method.cpp.dot | 24 ++++---- .../cpp/frontend/types/inheritance.cpp.dot | 12 ++-- .../frontend/types/operator_overload.cpp.dot | 2 +- .../types/struct_forward_declare.cpp.dot | 10 ++-- .../cpp/frontend/types/typeid_expr.cpp.dot | 10 ++-- 28 files changed, 140 insertions(+), 141 deletions(-) diff --git a/infer/src/IR/Ident.re b/infer/src/IR/Ident.re index b0c66611c..186d979f0 100644 --- a/infer/src/IR/Ident.re +++ b/infer/src/IR/Ident.re @@ -368,23 +368,22 @@ let create_path pathstring => /** {2 Pretty Printing} */ /** Convert an identifier to a string. */ -let to_string id => { - let base_name = name_to_string id.name; - let prefix = - if (id.kind === kfootprint) { - "@" - } else if (id.kind === knormal) { - "" - } else if ( - id.kind === knone - ) { - "NONE" - } else { - "_" - }; - let suffix = "$" ^ string_of_int id.stamp; - prefix ^ base_name ^ suffix -}; +let to_string id => + if (id.kind === knone) { + "_" + } else { + let base_name = name_to_string id.name; + let prefix = + if (id.kind === kfootprint) { + "@" + } else if (id.kind === knormal) { + "" + } else { + "_" + }; + let suffix = "$" ^ string_of_int id.stamp; + prefix ^ base_name ^ suffix + }; /** Pretty print a name. */ diff --git a/infer/tests/codetoanalyze/cpp/errors/npe/method_call.cpp.dot b/infer/tests/codetoanalyze/cpp/errors/npe/method_call.cpp.dot index 912121715..77fee5a5e 100644 --- a/infer/tests/codetoanalyze/cpp/errors/npe/method_call.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/errors/npe/method_call.cpp.dot @@ -11,7 +11,7 @@ digraph iCFG { 20 -> 22 ; -19 [label="19: Call _fun_XForward_call \n n$0=*&x:class XForward * [line 35]\n NONEn$1=*n$0:class XForward [line 35]\n n$2=_fun_XForward_call(n$0:class XForward *) [line 35]\n " shape="box"] +19 [label="19: Call _fun_XForward_call \n n$0=*&x:class XForward * [line 35]\n _=*n$0:class XForward [line 35]\n n$2=_fun_XForward_call(n$0:class XForward *) [line 35]\n " shape="box"] 19 -> 18 ; @@ -33,7 +33,7 @@ digraph iCFG { 14 -> 16 ; -13 [label="13: Call _fun_X_call \n n$0=_fun_getX() [line 22]\n NONEn$1=*n$0:class X [line 22]\n n$2=_fun_X_call(n$0:class X *) [line 22]\n " shape="box"] +13 [label="13: Call _fun_X_call \n n$0=_fun_getX() [line 22]\n _=*n$0:class X [line 22]\n n$2=_fun_X_call(n$0:class X *) [line 22]\n " shape="box"] 13 -> 12 ; @@ -59,7 +59,7 @@ digraph iCFG { 7 -> 6 ; -6 [label="6: Return Stmt \n n$0=*&x:class X * [line 17]\n NONEn$1=*n$0:class X [line 17]\n n$2=_fun_X_call(n$0:class X *) [line 17]\n *&return:int =n$2 [line 17]\n " shape="box"] +6 [label="6: Return Stmt \n n$0=*&x:class X * [line 17]\n _=*n$0:class X [line 17]\n n$2=_fun_X_call(n$0:class X *) [line 17]\n *&return:int =n$2 [line 17]\n " shape="box"] 6 -> 5 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/constructors/constructor_with_body.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/constructors/constructor_with_body.cpp.dot index a1035e3bc..6bf637b22 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/constructors/constructor_with_body.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/constructors/constructor_with_body.cpp.dot @@ -4,7 +4,7 @@ digraph iCFG { 26 -> 25 ; -25 [label="25: Call _fun_X_div \n NONEn$0=*&x:class X [line 40]\n n$1=_fun_X_div(&x:class X &) [line 40]\n " shape="box"] +25 [label="25: Call _fun_X_div \n _=*&x:class X [line 40]\n n$1=_fun_X_div(&x:class X &) [line 40]\n " shape="box"] 25 -> 24 ; @@ -19,7 +19,7 @@ digraph iCFG { 22 -> 21 ; -21 [label="21: Call _fun_X_div \n NONEn$0=*&x:class X [line 35]\n n$1=_fun_X_div(&x:class X &) [line 35]\n " shape="box"] +21 [label="21: Call _fun_X_div \n _=*&x:class X [line 35]\n n$1=_fun_X_div(&x:class X &) [line 35]\n " shape="box"] 21 -> 20 ; @@ -34,7 +34,7 @@ digraph iCFG { 18 -> 17 ; -17 [label="17: Call _fun_X_div \n NONEn$0=*&x:class X [line 30]\n n$1=_fun_X_div(&x:class X &) [line 30]\n " shape="box"] +17 [label="17: Call _fun_X_div \n _=*&x:class X [line 30]\n n$1=_fun_X_div(&x:class X &) [line 30]\n " shape="box"] 17 -> 16 ; @@ -49,7 +49,7 @@ digraph iCFG { 14 -> 13 ; -13 [label="13: Call _fun_X_init \n n$2=*&this:class X * [line 24]\n NONEn$3=*n$2:class X [line 24]\n _fun_X_init(n$2:class X *) [line 24]\n " shape="box"] +13 [label="13: Call _fun_X_init \n n$2=*&this:class X * [line 24]\n _=*n$2:class X [line 24]\n _fun_X_init(n$2:class X *) [line 24]\n " shape="box"] 13 -> 12 ; @@ -75,7 +75,7 @@ digraph iCFG { 7 -> 9 ; -6 [label="6: Call _fun_X_init \n n$0=*&this:class X * [line 15]\n NONEn$1=*n$0:class X [line 15]\n _fun_X_init(n$0:class X *) [line 15]\n " shape="box"] +6 [label="6: Call _fun_X_init \n n$0=*&this:class X * [line 15]\n _=*n$0:class X [line 15]\n _fun_X_init(n$0:class X *) [line 15]\n " shape="box"] 6 -> 5 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/constructors/std_init_list.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/constructors/std_init_list.cpp.dot index 905e21e9e..fceb741e3 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/constructors/std_init_list.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/constructors/std_init_list.cpp.dot @@ -19,7 +19,7 @@ digraph iCFG { 7 -> 5 ; -6 [label="6: BinaryOperatorStmt: NE \n n$4=*&i:int * [line 15]\n n$5=*&list:class std::initializer_list & [line 15]\n NONEn$6=*n$5:class std::initializer_list [line 15]\n n$7=_fun_std::initializer_list_end(n$5:class std::initializer_list &) [line 15]\n " shape="box"] +6 [label="6: BinaryOperatorStmt: NE \n n$4=*&i:int * [line 15]\n n$5=*&list:class std::initializer_list & [line 15]\n _=*n$5:class std::initializer_list [line 15]\n n$7=_fun_std::initializer_list_end(n$5:class std::initializer_list &) [line 15]\n " shape="box"] 6 -> 7 ; @@ -28,7 +28,7 @@ digraph iCFG { 5 -> 3 ; -4 [label="4: DeclStmt \n n$0=*&list:class std::initializer_list & [line 15]\n NONEn$1=*n$0:class std::initializer_list [line 15]\n n$2=_fun_std::initializer_list_begin(n$0:class std::initializer_list &) [line 15]\n *&i:int *=n$2 [line 15]\n " shape="box"] +4 [label="4: DeclStmt \n n$0=*&list:class std::initializer_list & [line 15]\n _=*n$0:class std::initializer_list [line 15]\n n$2=_fun_std::initializer_list_begin(n$0:class std::initializer_list &) [line 15]\n *&i:int *=n$2 [line 15]\n " shape="box"] 4 -> 3 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/constructors/temp_object.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/constructors/temp_object.cpp.dot index 96a8fd6d5..30d03e2dc 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/constructors/temp_object.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/constructors/temp_object.cpp.dot @@ -81,7 +81,7 @@ digraph iCFG { 22 -> 21 ; -21 [label="21: Return Stmt \n NONEn$0=*&x:class X [line 28]\n n$1=_fun_X_div(&x:class X &) [line 28]\n *&return:int =n$1 [line 28]\n " shape="box"] +21 [label="21: Return Stmt \n _=*&x:class X [line 28]\n n$1=_fun_X_div(&x:class X &) [line 28]\n *&return:int =n$1 [line 28]\n " shape="box"] 21 -> 20 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/destructors/call_destructor.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/destructors/call_destructor.cpp.dot index d55073a44..6248b61ea 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/destructors/call_destructor.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/destructors/call_destructor.cpp.dot @@ -1,6 +1,6 @@ /* @generated */ digraph iCFG { -3 [label="3: Call _fun_Person_~Person \n n$0=*&p:class Person * [line 15]\n NONEn$1=*n$0:class Person [line 15]\n _fun_Person_~Person(n$0:class Person *) [line 15]\n " shape="box"] +3 [label="3: Call _fun_Person_~Person \n n$0=*&p:class Person * [line 15]\n _=*n$0:class Person [line 15]\n _fun_Person_~Person(n$0:class Person *) [line 15]\n " shape="box"] 3 -> 2 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/include_header/include_templ.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/include_header/include_templ.cpp.dot index 4871a2b31..8c1c9a9f9 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/include_header/include_templ.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/include_header/include_templ.cpp.dot @@ -26,7 +26,7 @@ digraph iCFG { 30 -> 29 ; -29 [label="29: Call _fun_B_div0 \n NONEn$0=*&b:class B [line 20]\n n$1=_fun_B_div0(&b:class B &) [line 20]\n " shape="box"] +29 [label="29: Call _fun_B_div0 \n _=*&b:class B [line 20]\n n$1=_fun_B_div0(&b:class B &) [line 20]\n " shape="box"] 29 -> 28 ; @@ -41,7 +41,7 @@ digraph iCFG { 26 -> 25 ; -25 [label="25: Call _fun_B_div0 \n NONEn$0=*&b:class B [line 15]\n n$1=_fun_B_div0(&b:class B &) [line 15]\n " shape="box"] +25 [label="25: Call _fun_B_div0 \n _=*&b:class B [line 15]\n n$1=_fun_B_div0(&b:class B &) [line 15]\n " shape="box"] 25 -> 24 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/keywords/self_parameter.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/keywords/self_parameter.cpp.dot index 513a4d686..880fb9549 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/keywords/self_parameter.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/keywords/self_parameter.cpp.dot @@ -1,6 +1,6 @@ /* @generated */ digraph iCFG { -9 [label="9: Return Stmt \n n$0=*&a:class A * [line 17]\n NONEn$1=*n$0:class A [line 17]\n n$2=_fun_A_meth_with_self(n$0:class A *,1:int ,2:int ) [line 17]\n n$3=_fun_fun_with_self(10:int ) [line 17]\n *&return:int =(n$2 + n$3) [line 17]\n " shape="box"] +9 [label="9: Return Stmt \n n$0=*&a:class A * [line 17]\n _=*n$0:class A [line 17]\n n$2=_fun_A_meth_with_self(n$0:class A *,1:int ,2:int ) [line 17]\n n$3=_fun_fun_with_self(10:int ) [line 17]\n *&return:int =(n$2 + n$3) [line 17]\n " shape="box"] 9 -> 8 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/loops/foreach1.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/loops/foreach1.cpp.dot index 19f39e2c1..5a786142e 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/loops/foreach1.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/loops/foreach1.cpp.dot @@ -33,11 +33,11 @@ digraph iCFG { 36 -> 33 ; -35 [label="35: DeclStmt \n n$5=*&__range:class vec & [line 37]\n NONEn$6=*n$5:class vec [line 37]\n _fun_vec_begin(n$5:class vec &,&0$?%__sil_tmpSIL_materialize_temp__n$4:class iterator *) [line 37]\n _fun_iterator_iterator(&__begin:class iterator *,&0$?%__sil_tmpSIL_materialize_temp__n$4:class iterator &) [line 37]\n " shape="box"] +35 [label="35: DeclStmt \n n$5=*&__range:class vec & [line 37]\n _=*n$5:class vec [line 37]\n _fun_vec_begin(n$5:class vec &,&0$?%__sil_tmpSIL_materialize_temp__n$4:class iterator *) [line 37]\n _fun_iterator_iterator(&__begin:class iterator *,&0$?%__sil_tmpSIL_materialize_temp__n$4:class iterator &) [line 37]\n " shape="box"] 35 -> 34 ; -34 [label="34: DeclStmt \n n$1=*&__range:class vec & [line 37]\n NONEn$2=*n$1:class vec [line 37]\n _fun_vec_end(n$1:class vec &,&0$?%__sil_tmpSIL_materialize_temp__n$0:class iterator *) [line 37]\n _fun_iterator_iterator(&__end:class iterator *,&0$?%__sil_tmpSIL_materialize_temp__n$0:class iterator &) [line 37]\n " shape="box"] +34 [label="34: DeclStmt \n n$1=*&__range:class vec & [line 37]\n _=*n$1:class vec [line 37]\n _fun_vec_end(n$1:class vec &,&0$?%__sil_tmpSIL_materialize_temp__n$0:class iterator *) [line 37]\n _fun_iterator_iterator(&__end:class iterator *,&0$?%__sil_tmpSIL_materialize_temp__n$0:class iterator &) [line 37]\n " shape="box"] 34 -> 33 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/methods/conversion_operator.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/methods/conversion_operator.cpp.dot index 550ea7587..7010a68c9 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/methods/conversion_operator.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/methods/conversion_operator.cpp.dot @@ -4,7 +4,7 @@ digraph iCFG { 61 -> 56 ; -60 [label="60: DeclStmt \n NONEn$5=*&x:class X [line 64]\n n$6=_fun_X_operator int(&x:class X &) [line 64]\n *&v:int =n$6 [line 64]\n " shape="box"] +60 [label="60: DeclStmt \n _=*&x:class X [line 64]\n n$6=_fun_X_operator int(&x:class X &) [line 64]\n *&v:int =n$6 [line 64]\n " shape="box"] 60 -> 59 ; @@ -20,7 +20,7 @@ digraph iCFG { 57 -> 60 ; -56 [label="56: Call _fun_X_operator bool \n NONEn$2=*&x:class X [line 63]\n n$3=_fun_X_operator bool(&x:class X &) [line 63]\n " shape="box"] +56 [label="56: Call _fun_X_operator bool \n _=*&x:class X [line 63]\n n$3=_fun_X_operator bool(&x:class X &) [line 63]\n " shape="box"] 56 -> 57 ; @@ -29,7 +29,7 @@ digraph iCFG { 55 -> 54 ; -54 [label="54: Return Stmt \n NONEn$0=*&x:class X [line 67]\n n$1=_fun_X_operator int(&x:class X &) [line 67]\n *&return:int =n$1 [line 67]\n " shape="box"] +54 [label="54: Return Stmt \n _=*&x:class X [line 67]\n n$1=_fun_X_operator int(&x:class X &) [line 67]\n *&return:int =n$1 [line 67]\n " shape="box"] 54 -> 53 ; @@ -44,7 +44,7 @@ digraph iCFG { 51 -> 46 ; -50 [label="50: DeclStmt \n NONEn$5=*&x:class X [line 55]\n n$6=_fun_X_operator int(&x:class X &) [line 55]\n *&v:int =n$6 [line 55]\n " shape="box"] +50 [label="50: DeclStmt \n _=*&x:class X [line 55]\n n$6=_fun_X_operator int(&x:class X &) [line 55]\n *&v:int =n$6 [line 55]\n " shape="box"] 50 -> 49 ; @@ -60,7 +60,7 @@ digraph iCFG { 47 -> 50 ; -46 [label="46: Call _fun_X_operator bool \n NONEn$2=*&x:class X [line 54]\n n$3=_fun_X_operator bool(&x:class X &) [line 54]\n " shape="box"] +46 [label="46: Call _fun_X_operator bool \n _=*&x:class X [line 54]\n n$3=_fun_X_operator bool(&x:class X &) [line 54]\n " shape="box"] 46 -> 47 ; @@ -69,7 +69,7 @@ digraph iCFG { 45 -> 44 ; -44 [label="44: Return Stmt \n NONEn$0=*&x:class X [line 58]\n n$1=_fun_X_operator int(&x:class X &) [line 58]\n *&return:int =n$1 [line 58]\n " shape="box"] +44 [label="44: Return Stmt \n _=*&x:class X [line 58]\n n$1=_fun_X_operator int(&x:class X &) [line 58]\n *&return:int =n$1 [line 58]\n " shape="box"] 44 -> 43 ; @@ -92,7 +92,7 @@ digraph iCFG { 39 -> 34 ; -38 [label="38: DeclStmt \n NONEn$13=*&y:class Y [line 46]\n _fun_Y_operator X(&y:class Y &,&0$?%__sil_tmpSIL_materialize_temp__n$12:class X *) [line 46]\n _fun_X_X(&0$?%__sil_tmp__temp_construct_n$11:class X *,&0$?%__sil_tmpSIL_materialize_temp__n$12:class X &) [line 46]\n n$15=_fun_X_operator int(&0$?%__sil_tmp__temp_construct_n$11:class X &) [line 46]\n *&v:int =n$15 [line 46]\n " shape="box"] +38 [label="38: DeclStmt \n _=*&y:class Y [line 46]\n _fun_Y_operator X(&y:class Y &,&0$?%__sil_tmpSIL_materialize_temp__n$12:class X *) [line 46]\n _fun_X_X(&0$?%__sil_tmp__temp_construct_n$11:class X *,&0$?%__sil_tmpSIL_materialize_temp__n$12:class X &) [line 46]\n n$15=_fun_X_operator int(&0$?%__sil_tmp__temp_construct_n$11:class X &) [line 46]\n *&v:int =n$15 [line 46]\n " shape="box"] 38 -> 37 ; @@ -108,7 +108,7 @@ digraph iCFG { 35 -> 38 ; -34 [label="34: Call _fun_X_operator bool \n NONEn$7=*&y:class Y [line 45]\n _fun_Y_operator X(&y:class Y &,&0$?%__sil_tmpSIL_materialize_temp__n$6:class X *) [line 45]\n _fun_X_X(&0$?%__sil_tmp__temp_construct_n$5:class X *,&0$?%__sil_tmpSIL_materialize_temp__n$6:class X &) [line 45]\n n$9=_fun_X_operator bool(&0$?%__sil_tmp__temp_construct_n$5:class X &) [line 45]\n " shape="box"] +34 [label="34: Call _fun_X_operator bool \n _=*&y:class Y [line 45]\n _fun_Y_operator X(&y:class Y &,&0$?%__sil_tmpSIL_materialize_temp__n$6:class X *) [line 45]\n _fun_X_X(&0$?%__sil_tmp__temp_construct_n$5:class X *,&0$?%__sil_tmpSIL_materialize_temp__n$6:class X &) [line 45]\n n$9=_fun_X_operator bool(&0$?%__sil_tmp__temp_construct_n$5:class X &) [line 45]\n " shape="box"] 34 -> 35 ; @@ -117,7 +117,7 @@ digraph iCFG { 33 -> 32 ; -32 [label="32: Return Stmt \n NONEn$2=*&y:class Y [line 49]\n _fun_Y_operator X(&y:class Y &,&0$?%__sil_tmpSIL_materialize_temp__n$1:class X *) [line 49]\n _fun_X_X(&0$?%__sil_tmp__temp_construct_n$0:class X *,&0$?%__sil_tmpSIL_materialize_temp__n$1:class X &) [line 49]\n n$4=_fun_X_operator int(&0$?%__sil_tmp__temp_construct_n$0:class X &) [line 49]\n *&return:int =n$4 [line 49]\n " shape="box"] +32 [label="32: Return Stmt \n _=*&y:class Y [line 49]\n _fun_Y_operator X(&y:class Y &,&0$?%__sil_tmpSIL_materialize_temp__n$1:class X *) [line 49]\n _fun_X_X(&0$?%__sil_tmp__temp_construct_n$0:class X *,&0$?%__sil_tmpSIL_materialize_temp__n$1:class X &) [line 49]\n n$4=_fun_X_operator int(&0$?%__sil_tmp__temp_construct_n$0:class X &) [line 49]\n *&return:int =n$4 [line 49]\n " shape="box"] 32 -> 31 ; @@ -132,7 +132,7 @@ digraph iCFG { 29 -> 24 ; -28 [label="28: DeclStmt \n NONEn$5=*&x:class X [line 35]\n n$6=_fun_X_operator int(&x:class X &) [line 35]\n *&v:int =n$6 [line 35]\n " shape="box"] +28 [label="28: DeclStmt \n _=*&x:class X [line 35]\n n$6=_fun_X_operator int(&x:class X &) [line 35]\n *&v:int =n$6 [line 35]\n " shape="box"] 28 -> 27 ; @@ -148,7 +148,7 @@ digraph iCFG { 25 -> 28 ; -24 [label="24: Call _fun_X_operator bool \n NONEn$2=*&x:class X [line 34]\n n$3=_fun_X_operator bool(&x:class X &) [line 34]\n " shape="box"] +24 [label="24: Call _fun_X_operator bool \n _=*&x:class X [line 34]\n n$3=_fun_X_operator bool(&x:class X &) [line 34]\n " shape="box"] 24 -> 25 ; @@ -157,7 +157,7 @@ digraph iCFG { 23 -> 22 ; -22 [label="22: Return Stmt \n NONEn$0=*&x:class X [line 38]\n n$1=_fun_X_operator int(&x:class X &) [line 38]\n *&return:int =n$1 [line 38]\n " shape="box"] +22 [label="22: Return Stmt \n _=*&x:class X [line 38]\n n$1=_fun_X_operator int(&x:class X &) [line 38]\n *&return:int =n$1 [line 38]\n " shape="box"] 22 -> 21 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/methods/default_parameters.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/methods/default_parameters.cpp.dot index 7a905ffe1..98afdf27f 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/methods/default_parameters.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/methods/default_parameters.cpp.dot @@ -1,14 +1,14 @@ /* @generated */ digraph iCFG { -8 [label="8: Call _fun_A_fun_default \n n$6=*&a_ptr:class A * [line 18]\n NONEn$7=*n$6:class A [line 18]\n n$8=_fun_A_fun_default(n$6:class A *,1:int ,2:int ,3:int ) [line 18]\n " shape="box"] +8 [label="8: Call _fun_A_fun_default \n n$6=*&a_ptr:class A * [line 18]\n _=*n$6:class A [line 18]\n n$8=_fun_A_fun_default(n$6:class A *,1:int ,2:int ,3:int ) [line 18]\n " shape="box"] 8 -> 7 ; -7 [label="7: Call _fun_A_fun_default \n n$3=*&a_ptr:class A * [line 19]\n NONEn$4=*n$3:class A [line 19]\n n$5=_fun_A_fun_default(n$3:class A *,1:int ,2:int ,20:int ) [line 19]\n " shape="box"] +7 [label="7: Call _fun_A_fun_default \n n$3=*&a_ptr:class A * [line 19]\n _=*n$3:class A [line 19]\n n$5=_fun_A_fun_default(n$3:class A *,1:int ,2:int ,20:int ) [line 19]\n " shape="box"] 7 -> 6 ; -6 [label="6: Call _fun_A_fun_default \n n$0=*&a_ptr:class A * [line 20]\n NONEn$1=*n$0:class A [line 20]\n n$2=_fun_A_fun_default(n$0:class A *,1:int ,10:int ,20:int ) [line 20]\n " shape="box"] +6 [label="6: Call _fun_A_fun_default \n n$0=*&a_ptr:class A * [line 20]\n _=*n$0:class A [line 20]\n n$2=_fun_A_fun_default(n$0:class A *,1:int ,10:int ,20:int ) [line 20]\n " shape="box"] 6 -> 5 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/methods/dereference_this.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/methods/dereference_this.cpp.dot index ab25f3e29..ca93ada1d 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/methods/dereference_this.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/methods/dereference_this.cpp.dot @@ -1,6 +1,6 @@ /* @generated */ digraph iCFG { -10 [label="10: Call _fun_A_method \n n$0=*&a_ptr:class A * [line 25]\n NONEn$1=*n$0:class A [line 25]\n n$2=_fun_A_method(n$0:class A *) [line 25]\n " shape="box"] +10 [label="10: Call _fun_A_method \n n$0=*&a_ptr:class A * [line 25]\n _=*n$0:class A [line 25]\n n$2=_fun_A_method(n$0:class A *) [line 25]\n " shape="box"] 10 -> 9 ; @@ -11,7 +11,7 @@ digraph iCFG { 8 -> 10 ; -7 [label="7: Call _fun_A_init \n n$2=*&this:class A * [line 19]\n NONEn$3=*n$2:class A [line 19]\n _fun_A_init(n$2:class A *,10:int ) [line 19]\n " shape="box"] +7 [label="7: Call _fun_A_init \n n$2=*&this:class A * [line 19]\n _=*n$2:class A [line 19]\n _fun_A_init(n$2:class A *,10:int ) [line 19]\n " shape="box"] 7 -> 6 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/methods/inline_method.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/methods/inline_method.cpp.dot index 5b7de50ad..34facc556 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/methods/inline_method.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/methods/inline_method.cpp.dot @@ -1,10 +1,10 @@ /* @generated */ digraph iCFG { -11 [label="11: Call _fun_A_fun \n n$4=*&a_ptr:class A * [line 24]\n NONEn$5=*n$4:class A [line 24]\n n$6=_fun_A_fun(n$4:class A *) [line 24]\n " shape="box"] +11 [label="11: Call _fun_A_fun \n n$4=*&a_ptr:class A * [line 24]\n _=*n$4:class A [line 24]\n n$6=_fun_A_fun(n$4:class A *) [line 24]\n " shape="box"] 11 -> 10 ; -10 [label="10: Call _fun_A::AIn_fun \n n$0=*&a_ptr:class A * [line 25]\n n$1=*n$0.in:class A::AIn * [line 25]\n NONEn$2=*n$1:class A::AIn [line 25]\n n$3=_fun_A::AIn_fun(n$1:class A::AIn *) [line 25]\n " shape="box"] +10 [label="10: Call _fun_A::AIn_fun \n n$0=*&a_ptr:class A * [line 25]\n n$1=*n$0.in:class A::AIn * [line 25]\n _=*n$1:class A::AIn [line 25]\n n$3=_fun_A::AIn_fun(n$1:class A::AIn *) [line 25]\n " shape="box"] 10 -> 9 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/methods/overloading.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/methods/overloading.cpp.dot index 62aaa61a3..ebc17720c 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/methods/overloading.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/methods/overloading.cpp.dot @@ -1,10 +1,10 @@ /* @generated */ digraph iCFG { -10 [label="10: Call _fun_A_fun \n n$3=*&a_ptr:class A * [line 22]\n NONEn$4=*n$3:class A [line 22]\n n$5=_fun_A_fun(n$3:class A *,1:int ,2:int ) [line 22]\n " shape="box"] +10 [label="10: Call _fun_A_fun \n n$3=*&a_ptr:class A * [line 22]\n _=*n$3:class A [line 22]\n n$5=_fun_A_fun(n$3:class A *,1:int ,2:int ) [line 22]\n " shape="box"] 10 -> 9 ; -9 [label="9: Call _fun_A_fun \n n$0=*&a_ptr:class A * [line 23]\n NONEn$1=*n$0:class A [line 23]\n n$2=_fun_A_fun(n$0:class A *,1:int ,2:int ,3:int ) [line 23]\n " shape="box"] +9 [label="9: Call _fun_A_fun \n n$0=*&a_ptr:class A * [line 23]\n _=*n$0:class A [line 23]\n n$2=_fun_A_fun(n$0:class A *,1:int ,2:int ,3:int ) [line 23]\n " shape="box"] 9 -> 8 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/methods/return_struct.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/methods/return_struct.cpp.dot index ce4b5535a..f1e470efa 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/methods/return_struct.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/methods/return_struct.cpp.dot @@ -1,6 +1,6 @@ /* @generated */ digraph iCFG { -13 [label="13: DeclStmt \n n$2=*&a:class A * [line 22]\n NONEn$3=*n$2:class A [line 22]\n _fun_A_get(n$2:class A *,1:int ,&0$?%__sil_tmpSIL_materialize_temp__n$1:class X *) [line 22]\n _fun_X_X(&x:class X *,&0$?%__sil_tmpSIL_materialize_temp__n$1:class X &) [line 22]\n " shape="box"] +13 [label="13: DeclStmt \n n$2=*&a:class A * [line 22]\n _=*n$2:class A [line 22]\n _fun_A_get(n$2:class A *,1:int ,&0$?%__sil_tmpSIL_materialize_temp__n$1:class X *) [line 22]\n _fun_X_X(&x:class X *,&0$?%__sil_tmpSIL_materialize_temp__n$1:class X &) [line 22]\n " shape="box"] 13 -> 12 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/methods/virtual_methods.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/methods/virtual_methods.cpp.dot index 19c63d882..6b898b1ad 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/methods/virtual_methods.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/methods/virtual_methods.cpp.dot @@ -27,11 +27,11 @@ digraph iCFG { 47 -> 46 ; -46 [label="46: Call _fun_Polygon_set_values \n n$3=*&ppoly2:class Polygon * [line 63]\n NONEn$4=*n$3:class Polygon [line 63]\n _fun_Polygon_set_values(n$3:class Polygon *,4:int ,5:int ) [line 63]\n " shape="box"] +46 [label="46: Call _fun_Polygon_set_values \n n$3=*&ppoly2:class Polygon * [line 63]\n _=*n$3:class Polygon [line 63]\n _fun_Polygon_set_values(n$3:class Polygon *,4:int ,5:int ) [line 63]\n " shape="box"] 46 -> 45 ; -45 [label="45: Return Stmt \n n$0=*&ppoly2:class Polygon * [line 64]\n NONEn$1=*n$0:class Polygon [line 64]\n n$2=_fun_Polygon_area(n$0:class Polygon *) [line 64]\n *&return:int =(1 / n$2) [line 64]\n " shape="box"] +45 [label="45: Return Stmt \n n$0=*&ppoly2:class Polygon * [line 64]\n _=*n$0:class Polygon [line 64]\n n$2=_fun_Polygon_area(n$0:class Polygon *) [line 64]\n *&return:int =(1 / n$2) [line 64]\n " shape="box"] 45 -> 44 ; @@ -50,7 +50,7 @@ digraph iCFG { 41 -> 40 ; -40 [label="40: Return Stmt \n n$0=*&ppoly3:class Polygon * [line 56]\n NONEn$1=*n$0:class Polygon [line 56]\n n$2=_fun_Polygon_area(n$0:class Polygon *) virtual [line 56]\n *&return:int =(1 / n$2) [line 56]\n " shape="box"] +40 [label="40: Return Stmt \n n$0=*&ppoly3:class Polygon * [line 56]\n _=*n$0:class Polygon [line 56]\n n$2=_fun_Polygon_area(n$0:class Polygon *) virtual [line 56]\n *&return:int =(1 / n$2) [line 56]\n " shape="box"] 40 -> 39 ; @@ -73,11 +73,11 @@ digraph iCFG { 35 -> 34 ; -34 [label="34: Call _fun_Polygon_set_values \n n$3=*&ppoly2:class Polygon * [line 49]\n NONEn$4=*n$3:class Polygon [line 49]\n _fun_Polygon_set_values(n$3:class Polygon *,4:int ,5:int ) [line 49]\n " shape="box"] +34 [label="34: Call _fun_Polygon_set_values \n n$3=*&ppoly2:class Polygon * [line 49]\n _=*n$3:class Polygon [line 49]\n _fun_Polygon_set_values(n$3:class Polygon *,4:int ,5:int ) [line 49]\n " shape="box"] 34 -> 33 ; -33 [label="33: Return Stmt \n n$0=*&ppoly2:class Polygon * [line 50]\n NONEn$1=*n$0:class Polygon [line 50]\n n$2=_fun_Polygon_area(n$0:class Polygon *) virtual [line 50]\n *&return:int =(1 / (n$2 - 10)) [line 50]\n " shape="box"] +33 [label="33: Return Stmt \n n$0=*&ppoly2:class Polygon * [line 50]\n _=*n$0:class Polygon [line 50]\n n$2=_fun_Polygon_area(n$0:class Polygon *) virtual [line 50]\n *&return:int =(1 / (n$2 - 10)) [line 50]\n " shape="box"] 33 -> 32 ; @@ -96,11 +96,11 @@ digraph iCFG { 29 -> 28 ; -28 [label="28: Call _fun_Polygon_set_values \n n$3=*&ppoly1:class Polygon * [line 41]\n NONEn$4=*n$3:class Polygon [line 41]\n _fun_Polygon_set_values(n$3:class Polygon *,4:int ,5:int ) [line 41]\n " shape="box"] +28 [label="28: Call _fun_Polygon_set_values \n n$3=*&ppoly1:class Polygon * [line 41]\n _=*n$3:class Polygon [line 41]\n _fun_Polygon_set_values(n$3:class Polygon *,4:int ,5:int ) [line 41]\n " shape="box"] 28 -> 27 ; -27 [label="27: Return Stmt \n n$0=*&ppoly1:class Polygon * [line 42]\n NONEn$1=*n$0:class Polygon [line 42]\n n$2=_fun_Polygon_area(n$0:class Polygon *) virtual [line 42]\n *&return:int =(1 / (n$2 - 20)) [line 42]\n " shape="box"] +27 [label="27: Return Stmt \n n$0=*&ppoly1:class Polygon * [line 42]\n _=*n$0:class Polygon [line 42]\n n$2=_fun_Polygon_area(n$0:class Polygon *) virtual [line 42]\n *&return:int =(1 / (n$2 - 20)) [line 42]\n " shape="box"] 27 -> 26 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/namespace/namespace.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/namespace/namespace.cpp.dot index 1a806890e..179b45367 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/namespace/namespace.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/namespace/namespace.cpp.dot @@ -8,7 +8,7 @@ digraph iCFG { 23 -> 22 ; -22 [label="22: Call _fun_bar::Rectangle_set_values \n NONEn$4=*&rect1:class bar::Rectangle [line 49]\n _fun_bar::Rectangle_set_values(&rect1:class bar::Rectangle &,3:int ,4:int ) [line 49]\n " shape="box"] +22 [label="22: Call _fun_bar::Rectangle_set_values \n _=*&rect1:class bar::Rectangle [line 49]\n _fun_bar::Rectangle_set_values(&rect1:class bar::Rectangle &,3:int ,4:int ) [line 49]\n " shape="box"] 22 -> 21 ; @@ -16,7 +16,7 @@ digraph iCFG { 21 -> 20 ; -20 [label="20: Call _fun_foo::Rectangle_set_values \n NONEn$3=*&rect2:class foo::Rectangle [line 52]\n _fun_foo::Rectangle_set_values(&rect2:class foo::Rectangle &,7:int ,10:int ) [line 52]\n " shape="box"] +20 [label="20: Call _fun_foo::Rectangle_set_values \n _=*&rect2:class foo::Rectangle [line 52]\n _fun_foo::Rectangle_set_values(&rect2:class foo::Rectangle &,7:int ,10:int ) [line 52]\n " shape="box"] 20 -> 19 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/reference/member_access.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/reference/member_access.cpp.dot index 3acfebf7a..6c54454e6 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/reference/member_access.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/reference/member_access.cpp.dot @@ -4,7 +4,7 @@ digraph iCFG { 11 -> 10 ; -10 [label="10: DeclStmt \n n$0=*&x:class X * [line 22]\n NONEn$1=*n$0:class X [line 22]\n n$2=_fun_X_call(n$0:class X *) [line 22]\n *&c:int =n$2 [line 22]\n " shape="box"] +10 [label="10: DeclStmt \n n$0=*&x:class X * [line 22]\n _=*n$0:class X [line 22]\n n$2=_fun_X_call(n$0:class X *) [line 22]\n *&c:int =n$2 [line 22]\n " shape="box"] 10 -> 9 ; @@ -19,7 +19,7 @@ digraph iCFG { 7 -> 6 ; -6 [label="6: DeclStmt \n n$0=*&x:class X & [line 17]\n NONEn$1=*n$0:class X [line 17]\n n$2=_fun_X_call(n$0:class X &) [line 17]\n *&c:int =n$2 [line 17]\n " shape="box"] +6 [label="6: DeclStmt \n n$0=*&x:class X & [line 17]\n _=*n$0:class X [line 17]\n n$2=_fun_X_call(n$0:class X &) [line 17]\n *&c:int =n$2 [line 17]\n " shape="box"] 6 -> 5 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/reference/member_access_from_return.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/reference/member_access_from_return.cpp.dot index 521de39f5..ec5ff2469 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/reference/member_access_from_return.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/reference/member_access_from_return.cpp.dot @@ -4,7 +4,7 @@ digraph iCFG { 19 -> 18 ; -18 [label="18: DeclStmt \n n$0=_fun_get_ptr() [line 26]\n NONEn$1=*n$0:class X [line 26]\n n$2=_fun_X_call(n$0:class X *) [line 26]\n *&c:int =n$2 [line 26]\n " shape="box"] +18 [label="18: DeclStmt \n n$0=_fun_get_ptr() [line 26]\n _=*n$0:class X [line 26]\n n$2=_fun_X_call(n$0:class X *) [line 26]\n *&c:int =n$2 [line 26]\n " shape="box"] 18 -> 17 ; @@ -19,7 +19,7 @@ digraph iCFG { 15 -> 14 ; -14 [label="14: DeclStmt \n n$0=_fun_get_ref() [line 21]\n NONEn$1=*n$0:class X [line 21]\n n$2=_fun_X_call(n$0:class X &) [line 21]\n *&c:int =n$2 [line 21]\n " shape="box"] +14 [label="14: DeclStmt \n n$0=_fun_get_ref() [line 21]\n _=*n$0:class X [line 21]\n n$2=_fun_X_call(n$0:class X &) [line 21]\n *&c:int =n$2 [line 21]\n " shape="box"] 14 -> 13 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/reference/reference_field.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/reference/reference_field.cpp.dot index 312c3a7ec..f87ddd4a8 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/reference/reference_field.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/reference/reference_field.cpp.dot @@ -16,7 +16,7 @@ digraph iCFG { 116 -> 115 ; -115 [label="115: Return Stmt \n NONEn$0=*&r:class Val [line 141]\n n$1=_fun_Val_getI(&r:class Val &) [line 141]\n *&return:int =(1 / n$1) [line 141]\n " shape="box"] +115 [label="115: Return Stmt \n _=*&r:class Val [line 141]\n n$1=_fun_Val_getI(&r:class Val &) [line 141]\n *&return:int =(1 / n$1) [line 141]\n " shape="box"] 115 -> 114 ; @@ -43,7 +43,7 @@ digraph iCFG { 109 -> 108 ; -108 [label="108: Return Stmt \n NONEn$0=*&r:class Val [line 133]\n n$1=_fun_Val_getF(&r:class Val &) [line 133]\n *&return:int =(1 / n$1) [line 133]\n " shape="box"] +108 [label="108: Return Stmt \n _=*&r:class Val [line 133]\n n$1=_fun_Val_getF(&r:class Val &) [line 133]\n *&return:int =(1 / n$1) [line 133]\n " shape="box"] 108 -> 107 ; @@ -124,7 +124,7 @@ digraph iCFG { 88 -> 87 ; -87 [label="87: Return Stmt \n NONEn$0=*&r:class Ptr [line 108]\n n$1=_fun_Ptr_getI(&r:class Ptr &) [line 108]\n *&return:int =(1 / n$1) [line 108]\n " shape="box"] +87 [label="87: Return Stmt \n _=*&r:class Ptr [line 108]\n n$1=_fun_Ptr_getI(&r:class Ptr &) [line 108]\n *&return:int =(1 / n$1) [line 108]\n " shape="box"] 87 -> 86 ; @@ -151,7 +151,7 @@ digraph iCFG { 81 -> 80 ; -80 [label="80: Return Stmt \n NONEn$0=*&r:class Ptr [line 100]\n n$1=_fun_Ptr_getF(&r:class Ptr &) [line 100]\n *&return:int =(1 / n$1) [line 100]\n " shape="box"] +80 [label="80: Return Stmt \n _=*&r:class Ptr [line 100]\n n$1=_fun_Ptr_getF(&r:class Ptr &) [line 100]\n *&return:int =(1 / n$1) [line 100]\n " shape="box"] 80 -> 79 ; @@ -232,7 +232,7 @@ digraph iCFG { 60 -> 59 ; -59 [label="59: Return Stmt \n NONEn$0=*&r:class Ref [line 75]\n n$1=_fun_Ref_getI(&r:class Ref &) [line 75]\n *&return:int =(1 / n$1) [line 75]\n " shape="box"] +59 [label="59: Return Stmt \n _=*&r:class Ref [line 75]\n n$1=_fun_Ref_getI(&r:class Ref &) [line 75]\n *&return:int =(1 / n$1) [line 75]\n " shape="box"] 59 -> 58 ; @@ -259,7 +259,7 @@ digraph iCFG { 53 -> 52 ; -52 [label="52: Return Stmt \n NONEn$0=*&r:class Ref [line 67]\n n$1=_fun_Ref_getF(&r:class Ref &) [line 67]\n *&return:int =(1 / n$1) [line 67]\n " shape="box"] +52 [label="52: Return Stmt \n _=*&r:class Ref [line 67]\n n$1=_fun_Ref_getF(&r:class Ref &) [line 67]\n *&return:int =(1 / n$1) [line 67]\n " shape="box"] 52 -> 51 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/reference/reference_struct_e2e.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/reference/reference_struct_e2e.cpp.dot index 8e894638e..1f7228201 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/reference/reference_struct_e2e.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/reference/reference_struct_e2e.cpp.dot @@ -1,6 +1,6 @@ /* @generated */ digraph iCFG { -123 [label="123: Call _fun_X_zero \n n$4=_fun_get_global_ref() [line 124]\n NONEn$5=*n$4:class X [line 124]\n _fun_X_zero(n$4:class X &) [line 124]\n " shape="box"] +123 [label="123: Call _fun_X_zero \n n$4=_fun_get_global_ref() [line 124]\n _=*n$4:class X [line 124]\n _fun_X_zero(n$4:class X &) [line 124]\n " shape="box"] 123 -> 122 ; @@ -8,7 +8,7 @@ digraph iCFG { 122 -> 121 ; -121 [label="121: Call _fun_X_div \n n$0=_fun_get_global_ref() [line 126]\n NONEn$1=*n$0:class X [line 126]\n n$2=_fun_X_div(n$0:class X &) [line 126]\n " shape="box"] +121 [label="121: Call _fun_X_div \n n$0=_fun_get_global_ref() [line 126]\n _=*n$0:class X [line 126]\n n$2=_fun_X_div(n$0:class X &) [line 126]\n " shape="box"] 121 -> 120 ; @@ -19,7 +19,7 @@ digraph iCFG { 119 -> 123 ; -118 [label="118: Call _fun_X_nonzero \n n$4=_fun_get_global_ref() [line 118]\n NONEn$5=*n$4:class X [line 118]\n _fun_X_nonzero(n$4:class X &) [line 118]\n " shape="box"] +118 [label="118: Call _fun_X_nonzero \n n$4=_fun_get_global_ref() [line 118]\n _=*n$4:class X [line 118]\n _fun_X_nonzero(n$4:class X &) [line 118]\n " shape="box"] 118 -> 117 ; @@ -27,7 +27,7 @@ digraph iCFG { 117 -> 116 ; -116 [label="116: Call _fun_X_div \n n$0=_fun_get_global_ref() [line 120]\n NONEn$1=*n$0:class X [line 120]\n n$2=_fun_X_div(n$0:class X &) [line 120]\n " shape="box"] +116 [label="116: Call _fun_X_div \n n$0=_fun_get_global_ref() [line 120]\n _=*n$0:class X [line 120]\n n$2=_fun_X_div(n$0:class X &) [line 120]\n " shape="box"] 116 -> 115 ; @@ -42,11 +42,11 @@ digraph iCFG { 113 -> 112 ; -112 [label="112: Call _fun_X_nonzero \n n$3=_fun_get_global_ref() [line 113]\n NONEn$4=*n$3:class X [line 113]\n _fun_X_nonzero(n$3:class X &) [line 113]\n " shape="box"] +112 [label="112: Call _fun_X_nonzero \n n$3=_fun_get_global_ref() [line 113]\n _=*n$3:class X [line 113]\n _fun_X_nonzero(n$3:class X &) [line 113]\n " shape="box"] 112 -> 111 ; -111 [label="111: Call _fun_X_div \n n$0=_fun_get_global_ref() [line 114]\n NONEn$1=*n$0:class X [line 114]\n n$2=_fun_X_div(n$0:class X &) [line 114]\n " shape="box"] +111 [label="111: Call _fun_X_div \n n$0=_fun_get_global_ref() [line 114]\n _=*n$0:class X [line 114]\n n$2=_fun_X_div(n$0:class X &) [line 114]\n " shape="box"] 111 -> 110 ; @@ -61,11 +61,11 @@ digraph iCFG { 108 -> 107 ; -107 [label="107: Call _fun_X_zero \n n$3=_fun_get_global_ref() [line 107]\n NONEn$4=*n$3:class X [line 107]\n _fun_X_zero(n$3:class X &) [line 107]\n " shape="box"] +107 [label="107: Call _fun_X_zero \n n$3=_fun_get_global_ref() [line 107]\n _=*n$3:class X [line 107]\n _fun_X_zero(n$3:class X &) [line 107]\n " shape="box"] 107 -> 106 ; -106 [label="106: Call _fun_X_div \n n$0=_fun_get_global_ref() [line 108]\n NONEn$1=*n$0:class X [line 108]\n n$2=_fun_X_div(n$0:class X &) [line 108]\n " shape="box"] +106 [label="106: Call _fun_X_div \n n$0=_fun_get_global_ref() [line 108]\n _=*n$0:class X [line 108]\n n$2=_fun_X_div(n$0:class X &) [line 108]\n " shape="box"] 106 -> 105 ; @@ -80,7 +80,7 @@ digraph iCFG { 103 -> 102 ; -102 [label="102: Return Stmt \n n$0=*&x:class X & [line 102]\n NONEn$1=*n$0:class X [line 102]\n n$2=_fun_X_div(n$0:class X &) [line 102]\n *&return:int =n$2 [line 102]\n " shape="box"] +102 [label="102: Return Stmt \n n$0=*&x:class X & [line 102]\n _=*n$0:class X [line 102]\n n$2=_fun_X_div(n$0:class X &) [line 102]\n *&return:int =n$2 [line 102]\n " shape="box"] 102 -> 101 ; @@ -95,7 +95,7 @@ digraph iCFG { 99 -> 98 ; -98 [label="98: Return Stmt \n n$0=*&x:class X & [line 97]\n NONEn$1=*n$0:class X [line 97]\n n$2=_fun_X_div(n$0:class X &) [line 97]\n *&return:int =n$2 [line 97]\n " shape="box"] +98 [label="98: Return Stmt \n n$0=*&x:class X & [line 97]\n _=*n$0:class X [line 97]\n n$2=_fun_X_div(n$0:class X &) [line 97]\n *&return:int =n$2 [line 97]\n " shape="box"] 98 -> 97 ; @@ -110,7 +110,7 @@ digraph iCFG { 95 -> 94 ; -94 [label="94: Return Stmt \n n$0=*&x:class X & [line 92]\n NONEn$1=*n$0:class X [line 92]\n n$2=_fun_X_div(n$0:class X &) [line 92]\n *&return:int =n$2 [line 92]\n " shape="box"] +94 [label="94: Return Stmt \n n$0=*&x:class X & [line 92]\n _=*n$0:class X [line 92]\n n$2=_fun_X_div(n$0:class X &) [line 92]\n *&return:int =n$2 [line 92]\n " shape="box"] 94 -> 93 ; @@ -125,7 +125,7 @@ digraph iCFG { 91 -> 90 ; -90 [label="90: Return Stmt \n n$0=*&x:class X & [line 87]\n NONEn$1=*n$0:class X [line 87]\n n$2=_fun_X_div(n$0:class X &) [line 87]\n *&return:int =n$2 [line 87]\n " shape="box"] +90 [label="90: Return Stmt \n n$0=*&x:class X & [line 87]\n _=*n$0:class X [line 87]\n n$2=_fun_X_div(n$0:class X &) [line 87]\n *&return:int =n$2 [line 87]\n " shape="box"] 90 -> 89 ; @@ -136,7 +136,7 @@ digraph iCFG { 88 -> 91 ; -87 [label="87: Call _fun_X_zero \n n$4=_fun_get_global_ptr() [line 80]\n NONEn$5=*n$4:class X [line 80]\n _fun_X_zero(n$4:class X *) [line 80]\n " shape="box"] +87 [label="87: Call _fun_X_zero \n n$4=_fun_get_global_ptr() [line 80]\n _=*n$4:class X [line 80]\n _fun_X_zero(n$4:class X *) [line 80]\n " shape="box"] 87 -> 86 ; @@ -144,7 +144,7 @@ digraph iCFG { 86 -> 85 ; -85 [label="85: Call _fun_X_div \n n$0=_fun_get_global_ptr() [line 82]\n NONEn$1=*n$0:class X [line 82]\n n$2=_fun_X_div(n$0:class X *) [line 82]\n " shape="box"] +85 [label="85: Call _fun_X_div \n n$0=_fun_get_global_ptr() [line 82]\n _=*n$0:class X [line 82]\n n$2=_fun_X_div(n$0:class X *) [line 82]\n " shape="box"] 85 -> 84 ; @@ -155,7 +155,7 @@ digraph iCFG { 83 -> 87 ; -82 [label="82: Call _fun_X_nonzero \n n$4=_fun_get_global_ptr() [line 74]\n NONEn$5=*n$4:class X [line 74]\n _fun_X_nonzero(n$4:class X *) [line 74]\n " shape="box"] +82 [label="82: Call _fun_X_nonzero \n n$4=_fun_get_global_ptr() [line 74]\n _=*n$4:class X [line 74]\n _fun_X_nonzero(n$4:class X *) [line 74]\n " shape="box"] 82 -> 81 ; @@ -163,7 +163,7 @@ digraph iCFG { 81 -> 80 ; -80 [label="80: Call _fun_X_div \n n$0=_fun_get_global_ptr() [line 76]\n NONEn$1=*n$0:class X [line 76]\n n$2=_fun_X_div(n$0:class X *) [line 76]\n " shape="box"] +80 [label="80: Call _fun_X_div \n n$0=_fun_get_global_ptr() [line 76]\n _=*n$0:class X [line 76]\n n$2=_fun_X_div(n$0:class X *) [line 76]\n " shape="box"] 80 -> 79 ; @@ -178,11 +178,11 @@ digraph iCFG { 77 -> 76 ; -76 [label="76: Call _fun_X_nonzero \n n$3=_fun_get_global_ptr() [line 69]\n NONEn$4=*n$3:class X [line 69]\n _fun_X_nonzero(n$3:class X *) [line 69]\n " shape="box"] +76 [label="76: Call _fun_X_nonzero \n n$3=_fun_get_global_ptr() [line 69]\n _=*n$3:class X [line 69]\n _fun_X_nonzero(n$3:class X *) [line 69]\n " shape="box"] 76 -> 75 ; -75 [label="75: Call _fun_X_div \n n$0=_fun_get_global_ptr() [line 70]\n NONEn$1=*n$0:class X [line 70]\n n$2=_fun_X_div(n$0:class X *) [line 70]\n " shape="box"] +75 [label="75: Call _fun_X_div \n n$0=_fun_get_global_ptr() [line 70]\n _=*n$0:class X [line 70]\n n$2=_fun_X_div(n$0:class X *) [line 70]\n " shape="box"] 75 -> 74 ; @@ -197,11 +197,11 @@ digraph iCFG { 72 -> 71 ; -71 [label="71: Call _fun_X_zero \n n$3=_fun_get_global_ptr() [line 63]\n NONEn$4=*n$3:class X [line 63]\n _fun_X_zero(n$3:class X *) [line 63]\n " shape="box"] +71 [label="71: Call _fun_X_zero \n n$3=_fun_get_global_ptr() [line 63]\n _=*n$3:class X [line 63]\n _fun_X_zero(n$3:class X *) [line 63]\n " shape="box"] 71 -> 70 ; -70 [label="70: Call _fun_X_div \n n$0=_fun_get_global_ptr() [line 64]\n NONEn$1=*n$0:class X [line 64]\n n$2=_fun_X_div(n$0:class X *) [line 64]\n " shape="box"] +70 [label="70: Call _fun_X_div \n n$0=_fun_get_global_ptr() [line 64]\n _=*n$0:class X [line 64]\n n$2=_fun_X_div(n$0:class X *) [line 64]\n " shape="box"] 70 -> 69 ; @@ -216,7 +216,7 @@ digraph iCFG { 67 -> 66 ; -66 [label="66: Return Stmt \n n$1=*&x:class X * [line 57]\n NONEn$2=*n$1:class X [line 57]\n n$3=_fun_X_div(n$1:class X *) [line 57]\n *&return:int =n$3 [line 57]\n " shape="box"] +66 [label="66: Return Stmt \n n$1=*&x:class X * [line 57]\n _=*n$1:class X [line 57]\n n$3=_fun_X_div(n$1:class X *) [line 57]\n *&return:int =n$3 [line 57]\n " shape="box"] 66 -> 61 ; @@ -248,7 +248,7 @@ digraph iCFG { 59 -> 58 ; -58 [label="58: Return Stmt \n n$1=*&x:class X * [line 50]\n NONEn$2=*n$1:class X [line 50]\n n$3=_fun_X_div(n$1:class X *) [line 50]\n *&return:int =n$3 [line 50]\n " shape="box"] +58 [label="58: Return Stmt \n n$1=*&x:class X * [line 50]\n _=*n$1:class X [line 50]\n n$3=_fun_X_div(n$1:class X *) [line 50]\n *&return:int =n$3 [line 50]\n " shape="box"] 58 -> 53 ; @@ -280,7 +280,7 @@ digraph iCFG { 51 -> 50 ; -50 [label="50: Return Stmt \n n$1=*&x:class X * [line 43]\n NONEn$2=*n$1:class X [line 43]\n n$3=_fun_X_div(n$1:class X *) [line 43]\n *&return:int =n$3 [line 43]\n " shape="box"] +50 [label="50: Return Stmt \n n$1=*&x:class X * [line 43]\n _=*n$1:class X [line 43]\n n$3=_fun_X_div(n$1:class X *) [line 43]\n *&return:int =n$3 [line 43]\n " shape="box"] 50 -> 45 ; @@ -312,7 +312,7 @@ digraph iCFG { 43 -> 42 ; -42 [label="42: Return Stmt \n n$1=*&x:class X * [line 36]\n NONEn$2=*n$1:class X [line 36]\n n$3=_fun_X_div(n$1:class X *) [line 36]\n *&return:int =n$3 [line 36]\n " shape="box"] +42 [label="42: Return Stmt \n n$1=*&x:class X * [line 36]\n _=*n$1:class X [line 36]\n n$3=_fun_X_div(n$1:class X *) [line 36]\n *&return:int =n$3 [line 36]\n " shape="box"] 42 -> 37 ; @@ -373,7 +373,7 @@ digraph iCFG { 27 -> 29 ; -26 [label="26: Call _fun_X_nonzero \n n$0=*&x:class X & [line 25]\n NONEn$1=*n$0:class X [line 25]\n _fun_X_nonzero(n$0:class X &) [line 25]\n " shape="box"] +26 [label="26: Call _fun_X_nonzero \n n$0=*&x:class X & [line 25]\n _=*n$0:class X [line 25]\n _fun_X_nonzero(n$0:class X &) [line 25]\n " shape="box"] 26 -> 25 ; @@ -384,7 +384,7 @@ digraph iCFG { 24 -> 26 ; -23 [label="23: Call _fun_X_zero \n n$0=*&x:class X & [line 23]\n NONEn$1=*n$0:class X [line 23]\n _fun_X_zero(n$0:class X &) [line 23]\n " shape="box"] +23 [label="23: Call _fun_X_zero \n n$0=*&x:class X & [line 23]\n _=*n$0:class X [line 23]\n _fun_X_zero(n$0:class X &) [line 23]\n " shape="box"] 23 -> 22 ; @@ -406,7 +406,7 @@ digraph iCFG { 18 -> 20 ; -17 [label="17: Call _fun_X_nonzero \n n$0=*&x:class X * [line 19]\n NONEn$1=*n$0:class X [line 19]\n _fun_X_nonzero(n$0:class X *) [line 19]\n " shape="box"] +17 [label="17: Call _fun_X_nonzero \n n$0=*&x:class X * [line 19]\n _=*n$0:class X [line 19]\n _fun_X_nonzero(n$0:class X *) [line 19]\n " shape="box"] 17 -> 16 ; @@ -417,7 +417,7 @@ digraph iCFG { 15 -> 17 ; -14 [label="14: Call _fun_X_zero \n n$0=*&x:class X * [line 17]\n NONEn$1=*n$0:class X [line 17]\n _fun_X_zero(n$0:class X *) [line 17]\n " shape="box"] +14 [label="14: Call _fun_X_zero \n n$0=*&x:class X * [line 17]\n _=*n$0:class X [line 17]\n _fun_X_zero(n$0:class X *) [line 17]\n " shape="box"] 14 -> 13 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/templates/class_template_instantiate.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/templates/class_template_instantiate.cpp.dot index 9b67c0671..9daca80cc 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/templates/class_template_instantiate.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/templates/class_template_instantiate.cpp.dot @@ -1,6 +1,6 @@ /* @generated */ digraph iCFG { -30 [label="30: Return Stmt \n n$0=*&s:class ExecStore & [line 41]\n NONEn$1=*n$0.f:class Choose2 [line 41]\n n$2=_fun_Choose2_extra(n$0.f:class Choose2 &,1:int ) [line 41]\n *&return:int =n$2 [line 41]\n " shape="box"] +30 [label="30: Return Stmt \n n$0=*&s:class ExecStore & [line 41]\n _=*n$0.f:class Choose2 [line 41]\n n$2=_fun_Choose2_extra(n$0.f:class Choose2 &,1:int ) [line 41]\n *&return:int =n$2 [line 41]\n " shape="box"] 30 -> 29 ; @@ -11,7 +11,7 @@ digraph iCFG { 28 -> 30 ; -27 [label="27: Return Stmt \n n$0=*&s:class ExecStore & [line 39]\n NONEn$1=*n$0.f:class Choose2 [line 39]\n n$2=_fun_Choose2_extra(n$0.f:class Choose2 &,0:int ) [line 39]\n *&return:int =n$2 [line 39]\n " shape="box"] +27 [label="27: Return Stmt \n n$0=*&s:class ExecStore & [line 39]\n _=*n$0.f:class Choose2 [line 39]\n n$2=_fun_Choose2_extra(n$0.f:class Choose2 &,0:int ) [line 39]\n *&return:int =n$2 [line 39]\n " shape="box"] 27 -> 26 ; @@ -22,7 +22,7 @@ digraph iCFG { 25 -> 27 ; -24 [label="24: Return Stmt \n n$0=*&s:class ExecStore & [line 36]\n NONEn$1=*n$0:class ExecStore [line 36]\n n$2=_fun_ExecStore_call_div(n$0:class ExecStore &,1:int ) [line 36]\n *&return:int =n$2 [line 36]\n " shape="box"] +24 [label="24: Return Stmt \n n$0=*&s:class ExecStore & [line 36]\n _=*n$0:class ExecStore [line 36]\n n$2=_fun_ExecStore_call_div(n$0:class ExecStore &,1:int ) [line 36]\n *&return:int =n$2 [line 36]\n " shape="box"] 24 -> 23 ; @@ -33,7 +33,7 @@ digraph iCFG { 22 -> 24 ; -21 [label="21: Return Stmt \n n$0=*&s:class ExecStore & [line 32]\n NONEn$1=*n$0:class ExecStore [line 32]\n n$2=_fun_ExecStore_call_div(n$0:class ExecStore &,1:int ) [line 32]\n *&return:int =n$2 [line 32]\n " shape="box"] +21 [label="21: Return Stmt \n n$0=*&s:class ExecStore & [line 32]\n _=*n$0:class ExecStore [line 32]\n n$2=_fun_ExecStore_call_div(n$0:class ExecStore &,1:int ) [line 32]\n *&return:int =n$2 [line 32]\n " shape="box"] 21 -> 20 ; @@ -44,7 +44,7 @@ digraph iCFG { 19 -> 21 ; -18 [label="18: Return Stmt \n n$0=*&s:class ExecStore & [line 30]\n NONEn$1=*n$0:class ExecStore [line 30]\n n$2=_fun_ExecStore_call_div(n$0:class ExecStore &,0:int ) [line 30]\n *&return:int =n$2 [line 30]\n " shape="box"] +18 [label="18: Return Stmt \n n$0=*&s:class ExecStore & [line 30]\n _=*n$0:class ExecStore [line 30]\n n$2=_fun_ExecStore_call_div(n$0:class ExecStore &,0:int ) [line 30]\n *&return:int =n$2 [line 30]\n " shape="box"] 18 -> 17 ; @@ -55,7 +55,7 @@ digraph iCFG { 16 -> 18 ; -15 [label="15: Return Stmt \n n$0=*&this:class ExecStore * [line 26]\n NONEn$1=*n$0.f:class Choose2 [line 26]\n n$2=*&a:int [line 26]\n n$3=_fun_Choose2_div(n$0.f:class Choose2 &,n$2:int ,0:int ) [line 26]\n *&return:int =n$3 [line 26]\n " shape="box"] +15 [label="15: Return Stmt \n n$0=*&this:class ExecStore * [line 26]\n _=*n$0.f:class Choose2 [line 26]\n n$2=*&a:int [line 26]\n n$3=_fun_Choose2_div(n$0.f:class Choose2 &,n$2:int ,0:int ) [line 26]\n *&return:int =n$3 [line 26]\n " shape="box"] 15 -> 14 ; @@ -66,7 +66,7 @@ digraph iCFG { 13 -> 15 ; -12 [label="12: Return Stmt \n n$0=*&this:class ExecStore * [line 26]\n NONEn$1=*n$0.f:class Choose1 [line 26]\n n$2=*&a:int [line 26]\n n$3=_fun_Choose1_div(n$0.f:class Choose1 &,n$2:int ,0:int ) [line 26]\n *&return:int =n$3 [line 26]\n " shape="box"] +12 [label="12: Return Stmt \n n$0=*&this:class ExecStore * [line 26]\n _=*n$0.f:class Choose1 [line 26]\n n$2=*&a:int [line 26]\n n$3=_fun_Choose1_div(n$0.f:class Choose1 &,n$2:int ,0:int ) [line 26]\n *&return:int =n$3 [line 26]\n " shape="box"] 12 -> 11 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/templates/function.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/templates/function.cpp.dot index 84ff32907..112729080 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/templates/function.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/templates/function.cpp.dot @@ -112,7 +112,7 @@ digraph iCFG { 20 -> 23 ; -19 [label="19: Return Stmt \n n$0=*&x:class X3 & [line 30]\n NONEn$1=*n$0:class X3 [line 30]\n n$2=_fun_X3_get(n$0:class X3 &) [line 30]\n *&return:int =n$2 [line 30]\n " shape="box"] +19 [label="19: Return Stmt \n n$0=*&x:class X3 & [line 30]\n _=*n$0:class X3 [line 30]\n n$2=_fun_X3_get(n$0:class X3 &) [line 30]\n *&return:int =n$2 [line 30]\n " shape="box"] 19 -> 18 ; @@ -123,7 +123,7 @@ digraph iCFG { 17 -> 19 ; -16 [label="16: Return Stmt \n n$0=*&x:class X1 & [line 24]\n NONEn$1=*n$0:class X1 [line 24]\n n$2=_fun_X1_getVal(n$0:class X1 &) [line 24]\n *&return:int =n$2 [line 24]\n " shape="box"] +16 [label="16: Return Stmt \n n$0=*&x:class X1 & [line 24]\n _=*n$0:class X1 [line 24]\n n$2=_fun_X1_getVal(n$0:class X1 &) [line 24]\n *&return:int =n$2 [line 24]\n " shape="box"] 16 -> 15 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/templates/method.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/templates/method.cpp.dot index e3684330a..3f7e45444 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/templates/method.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/templates/method.cpp.dot @@ -12,7 +12,7 @@ digraph iCFG { 73 -> 72 ; -72 [label="72: Return Stmt \n NONEn$0=*&g:class GetterTempl [line 74]\n n$1=_fun_GetterTempl_get(&g:class GetterTempl &,&x1_1:class X1 &,&x1_2:class X1 &) [line 74]\n *&return:int =(1 / n$1) [line 74]\n " shape="box"] +72 [label="72: Return Stmt \n _=*&g:class GetterTempl [line 74]\n n$1=_fun_GetterTempl_get(&g:class GetterTempl &,&x1_1:class X1 &,&x1_2:class X1 &) [line 74]\n *&return:int =(1 / n$1) [line 74]\n " shape="box"] 72 -> 71 ; @@ -35,7 +35,7 @@ digraph iCFG { 67 -> 66 ; -66 [label="66: Return Stmt \n NONEn$0=*&g:class GetterTempl [line 67]\n n$1=_fun_GetterTempl_get(&g:class GetterTempl &,&x2:class X2 &,&x1:class X1 &) [line 67]\n *&return:int =(1 / n$1) [line 67]\n " shape="box"] +66 [label="66: Return Stmt \n _=*&g:class GetterTempl [line 67]\n n$1=_fun_GetterTempl_get(&g:class GetterTempl &,&x2:class X2 &,&x1:class X1 &) [line 67]\n *&return:int =(1 / n$1) [line 67]\n " shape="box"] 66 -> 65 ; @@ -58,7 +58,7 @@ digraph iCFG { 61 -> 60 ; -60 [label="60: Return Stmt \n NONEn$0=*&g:class GetterTempl [line 60]\n n$1=_fun_GetterTempl_get(&g:class GetterTempl &,&x2_1:class X2 &,&x2_2:class X2 &) [line 60]\n *&return:int =(1 / n$1) [line 60]\n " shape="box"] +60 [label="60: Return Stmt \n _=*&g:class GetterTempl [line 60]\n n$1=_fun_GetterTempl_get(&g:class GetterTempl &,&x2_1:class X2 &,&x2_2:class X2 &) [line 60]\n *&return:int =(1 / n$1) [line 60]\n " shape="box"] 60 -> 59 ; @@ -81,7 +81,7 @@ digraph iCFG { 55 -> 54 ; -54 [label="54: Return Stmt \n NONEn$0=*&g:class GetterTempl [line 53]\n n$1=_fun_GetterTempl_get(&g:class GetterTempl &,&x3:class X3 &,&x2:class X2 &) [line 53]\n *&return:int =(1 / n$1) [line 53]\n " shape="box"] +54 [label="54: Return Stmt \n _=*&g:class GetterTempl [line 53]\n n$1=_fun_GetterTempl_get(&g:class GetterTempl &,&x3:class X3 &,&x2:class X2 &) [line 53]\n *&return:int =(1 / n$1) [line 53]\n " shape="box"] 54 -> 53 ; @@ -100,7 +100,7 @@ digraph iCFG { 50 -> 49 ; -49 [label="49: Return Stmt \n NONEn$0=*&g:class Getter [line 46]\n n$1=_fun_Getter_get(&g:class Getter &,&x1:class X1 &) [line 46]\n *&return:int =(1 / n$1) [line 46]\n " shape="box"] +49 [label="49: Return Stmt \n _=*&g:class Getter [line 46]\n n$1=_fun_Getter_get(&g:class Getter &,&x1:class X1 &) [line 46]\n *&return:int =(1 / n$1) [line 46]\n " shape="box"] 49 -> 48 ; @@ -119,7 +119,7 @@ digraph iCFG { 45 -> 44 ; -44 [label="44: Return Stmt \n NONEn$0=*&g:class Getter [line 40]\n n$1=_fun_Getter_get(&g:class Getter &,&x2:class X2 &) [line 40]\n *&return:int =(1 / n$1) [line 40]\n " shape="box"] +44 [label="44: Return Stmt \n _=*&g:class Getter [line 40]\n n$1=_fun_Getter_get(&g:class Getter &,&x2:class X2 &) [line 40]\n *&return:int =(1 / n$1) [line 40]\n " shape="box"] 44 -> 43 ; @@ -137,7 +137,7 @@ digraph iCFG { 40 -> 41 ; -39 [label="39: Return Stmt \n n$0=*&t:class X1 & [line 33]\n NONEn$1=*n$0:class X1 [line 33]\n n$2=_fun_X1_get(n$0:class X1 &) [line 33]\n n$3=*&s:class X1 & [line 33]\n NONEn$4=*n$3:class X1 [line 33]\n n$5=_fun_X1_get(n$3:class X1 &) [line 33]\n *&return:int =(n$2 + n$5) [line 33]\n " shape="box"] +39 [label="39: Return Stmt \n n$0=*&t:class X1 & [line 33]\n _=*n$0:class X1 [line 33]\n n$2=_fun_X1_get(n$0:class X1 &) [line 33]\n n$3=*&s:class X1 & [line 33]\n _=*n$3:class X1 [line 33]\n n$5=_fun_X1_get(n$3:class X1 &) [line 33]\n *&return:int =(n$2 + n$5) [line 33]\n " shape="box"] 39 -> 38 ; @@ -155,7 +155,7 @@ digraph iCFG { 35 -> 36 ; -34 [label="34: Return Stmt \n n$0=*&t:class X2 & [line 33]\n NONEn$1=*n$0:class X2 [line 33]\n n$2=_fun_X2_get(n$0:class X2 &) [line 33]\n n$3=*&s:class X1 & [line 33]\n NONEn$4=*n$3:class X1 [line 33]\n n$5=_fun_X1_get(n$3:class X1 &) [line 33]\n *&return:int =(n$2 + n$5) [line 33]\n " shape="box"] +34 [label="34: Return Stmt \n n$0=*&t:class X2 & [line 33]\n _=*n$0:class X2 [line 33]\n n$2=_fun_X2_get(n$0:class X2 &) [line 33]\n n$3=*&s:class X1 & [line 33]\n _=*n$3:class X1 [line 33]\n n$5=_fun_X1_get(n$3:class X1 &) [line 33]\n *&return:int =(n$2 + n$5) [line 33]\n " shape="box"] 34 -> 33 ; @@ -166,7 +166,7 @@ digraph iCFG { 32 -> 34 ; -31 [label="31: Return Stmt \n n$0=*&t:class X2 & [line 33]\n NONEn$1=*n$0:class X2 [line 33]\n n$2=_fun_X2_get(n$0:class X2 &) [line 33]\n n$3=*&s:class X2 & [line 33]\n NONEn$4=*n$3:class X2 [line 33]\n n$5=_fun_X2_get(n$3:class X2 &) [line 33]\n *&return:int =(n$2 + n$5) [line 33]\n " shape="box"] +31 [label="31: Return Stmt \n n$0=*&t:class X2 & [line 33]\n _=*n$0:class X2 [line 33]\n n$2=_fun_X2_get(n$0:class X2 &) [line 33]\n n$3=*&s:class X2 & [line 33]\n _=*n$3:class X2 [line 33]\n n$5=_fun_X2_get(n$3:class X2 &) [line 33]\n *&return:int =(n$2 + n$5) [line 33]\n " shape="box"] 31 -> 30 ; @@ -184,7 +184,7 @@ digraph iCFG { 27 -> 28 ; -26 [label="26: Return Stmt \n n$0=*&t:class X3 & [line 33]\n NONEn$1=*n$0:class X3 [line 33]\n n$2=_fun_X3_get(n$0:class X3 &) [line 33]\n n$3=*&s:class X2 & [line 33]\n NONEn$4=*n$3:class X2 [line 33]\n n$5=_fun_X2_get(n$3:class X2 &) [line 33]\n *&return:int =(n$2 + n$5) [line 33]\n " shape="box"] +26 [label="26: Return Stmt \n n$0=*&t:class X3 & [line 33]\n _=*n$0:class X3 [line 33]\n n$2=_fun_X3_get(n$0:class X3 &) [line 33]\n n$3=*&s:class X2 & [line 33]\n _=*n$3:class X2 [line 33]\n n$5=_fun_X2_get(n$3:class X2 &) [line 33]\n *&return:int =(n$2 + n$5) [line 33]\n " shape="box"] 26 -> 25 ; @@ -202,7 +202,7 @@ digraph iCFG { 22 -> 23 ; -21 [label="21: Return Stmt \n n$0=*&s:class X1 & [line 25]\n NONEn$1=*n$0:class X1 [line 25]\n n$2=_fun_X1_get(n$0:class X1 &) [line 25]\n *&return:int =n$2 [line 25]\n " shape="box"] +21 [label="21: Return Stmt \n n$0=*&s:class X1 & [line 25]\n _=*n$0:class X1 [line 25]\n n$2=_fun_X1_get(n$0:class X1 &) [line 25]\n *&return:int =n$2 [line 25]\n " shape="box"] 21 -> 20 ; @@ -213,7 +213,7 @@ digraph iCFG { 19 -> 21 ; -18 [label="18: Return Stmt \n n$0=*&s:class X2 & [line 25]\n NONEn$1=*n$0:class X2 [line 25]\n n$2=_fun_X2_get(n$0:class X2 &) [line 25]\n *&return:int =n$2 [line 25]\n " shape="box"] +18 [label="18: Return Stmt \n n$0=*&s:class X2 & [line 25]\n _=*n$0:class X2 [line 25]\n n$2=_fun_X2_get(n$0:class X2 &) [line 25]\n *&return:int =n$2 [line 25]\n " shape="box"] 18 -> 17 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/types/inheritance.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/types/inheritance.cpp.dot index a8fd38bdb..d2511e6cc 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/types/inheritance.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/types/inheritance.cpp.dot @@ -12,27 +12,27 @@ digraph iCFG { 23 -> 22 ; -22 [label="22: Call _fun_Base_fun \n n$15=*&b:class Base * [line 26]\n NONEn$16=*n$15:class Base [line 26]\n n$17=_fun_Base_fun(n$15:class Base *) [line 26]\n " shape="box"] +22 [label="22: Call _fun_Base_fun \n n$15=*&b:class Base * [line 26]\n _=*n$15:class Base [line 26]\n n$17=_fun_Base_fun(n$15:class Base *) [line 26]\n " shape="box"] 22 -> 21 ; -21 [label="21: Call _fun_Base_fun \n n$12=*&s1:class Base * [line 27]\n NONEn$13=*n$12:class Base [line 27]\n n$14=_fun_Base_fun(n$12:class Base *) [line 27]\n " shape="box"] +21 [label="21: Call _fun_Base_fun \n n$12=*&s1:class Base * [line 27]\n _=*n$12:class Base [line 27]\n n$14=_fun_Base_fun(n$12:class Base *) [line 27]\n " shape="box"] 21 -> 20 ; -20 [label="20: Call _fun_Base_fun \n n$9=*&s2:class Sub * [line 28]\n NONEn$10=*n$9:class Sub [line 28]\n n$11=_fun_Base_fun(n$9:class Sub *) [line 28]\n " shape="box"] +20 [label="20: Call _fun_Base_fun \n n$9=*&s2:class Sub * [line 28]\n _=*n$9:class Sub [line 28]\n n$11=_fun_Base_fun(n$9:class Sub *) [line 28]\n " shape="box"] 20 -> 19 ; -19 [label="19: Call _fun_Base_fun_redefine \n n$6=*&b:class Base * [line 30]\n NONEn$7=*n$6:class Base [line 30]\n n$8=_fun_Base_fun_redefine(n$6:class Base *) [line 30]\n " shape="box"] +19 [label="19: Call _fun_Base_fun_redefine \n n$6=*&b:class Base * [line 30]\n _=*n$6:class Base [line 30]\n n$8=_fun_Base_fun_redefine(n$6:class Base *) [line 30]\n " shape="box"] 19 -> 18 ; -18 [label="18: Call _fun_Base_fun_redefine \n n$3=*&s1:class Base * [line 31]\n NONEn$4=*n$3:class Base [line 31]\n n$5=_fun_Base_fun_redefine(n$3:class Base *) [line 31]\n " shape="box"] +18 [label="18: Call _fun_Base_fun_redefine \n n$3=*&s1:class Base * [line 31]\n _=*n$3:class Base [line 31]\n n$5=_fun_Base_fun_redefine(n$3:class Base *) [line 31]\n " shape="box"] 18 -> 17 ; -17 [label="17: Call _fun_Sub_fun_redefine \n n$0=*&s2:class Sub * [line 32]\n NONEn$1=*n$0:class Sub [line 32]\n n$2=_fun_Sub_fun_redefine(n$0:class Sub *) [line 32]\n " shape="box"] +17 [label="17: Call _fun_Sub_fun_redefine \n n$0=*&s2:class Sub * [line 32]\n _=*n$0:class Sub [line 32]\n n$2=_fun_Sub_fun_redefine(n$0:class Sub *) [line 32]\n " shape="box"] 17 -> 16 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/types/operator_overload.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/types/operator_overload.cpp.dot index 7477ff1c1..5c72ed77e 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/types/operator_overload.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/types/operator_overload.cpp.dot @@ -22,7 +22,7 @@ digraph iCFG { 22 -> 24 ; -21 [label="21: DeclStmt \n n$1=*&x:class X & [line 36]\n NONEn$2=*n$1:class X [line 36]\n n$3=_fun_X_operator[](n$1:class X &,0:int ) [line 36]\n *&v:int =n$3 [line 36]\n " shape="box"] +21 [label="21: DeclStmt \n n$1=*&x:class X & [line 36]\n _=*n$1:class X [line 36]\n n$3=_fun_X_operator[](n$1:class X &,0:int ) [line 36]\n *&v:int =n$3 [line 36]\n " shape="box"] 21 -> 20 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/types/struct_forward_declare.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/types/struct_forward_declare.cpp.dot index 5d06c2a44..19dc2b7f8 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/types/struct_forward_declare.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/types/struct_forward_declare.cpp.dot @@ -4,7 +4,7 @@ digraph iCFG { 41 -> 40 ; -40 [label="40: Return Stmt \n n$0=*&z:class Z * [line 66]\n NONEn$1=*n$0:class Z [line 66]\n n$2=_fun_Z_getF(n$0:class Z *) [line 66]\n *&return:int =(1 / n$2) [line 66]\n " shape="box"] +40 [label="40: Return Stmt \n n$0=*&z:class Z * [line 66]\n _=*n$0:class Z [line 66]\n n$2=_fun_Z_getF(n$0:class Z *) [line 66]\n *&return:int =(1 / n$2) [line 66]\n " shape="box"] 40 -> 39 ; @@ -23,7 +23,7 @@ digraph iCFG { 36 -> 35 ; -35 [label="35: Return Stmt \n NONEn$0=*&z:class Z [line 58]\n n$1=_fun_Z_getF(&z:class Z &) [line 58]\n *&return:int =(1 / n$1) [line 58]\n " shape="box"] +35 [label="35: Return Stmt \n _=*&z:class Z [line 58]\n n$1=_fun_Z_getF(&z:class Z &) [line 58]\n *&return:int =(1 / n$1) [line 58]\n " shape="box"] 35 -> 34 ; @@ -63,7 +63,7 @@ digraph iCFG { 26 -> 25 ; -25 [label="25: Return Stmt \n NONEn$0=*&x:class X [line 52]\n n$1=_fun_X_getF(&x:class X &) [line 52]\n *&return:int =(1 / n$1) [line 52]\n " shape="box"] +25 [label="25: Return Stmt \n _=*&x:class X [line 52]\n n$1=_fun_X_getF(&x:class X &) [line 52]\n *&return:int =(1 / n$1) [line 52]\n " shape="box"] 25 -> 24 ; @@ -78,7 +78,7 @@ digraph iCFG { 22 -> 21 ; -21 [label="21: Return Stmt \n n$0=*&x:class X * [line 42]\n NONEn$1=*n$0:class X [line 42]\n n$2=_fun_X_getF(n$0:class X *) [line 42]\n *&return:int =(1 / n$2) [line 42]\n " shape="box"] +21 [label="21: Return Stmt \n n$0=*&x:class X * [line 42]\n _=*n$0:class X [line 42]\n n$2=_fun_X_getF(n$0:class X *) [line 42]\n *&return:int =(1 / n$2) [line 42]\n " shape="box"] 21 -> 20 ; @@ -97,7 +97,7 @@ digraph iCFG { 17 -> 16 ; -16 [label="16: Return Stmt \n NONEn$0=*&x:class X [line 37]\n n$1=_fun_X_getF(&x:class X &) [line 37]\n *&return:int =(1 / n$1) [line 37]\n " shape="box"] +16 [label="16: Return Stmt \n _=*&x:class X [line 37]\n n$1=_fun_X_getF(&x:class X &) [line 37]\n *&return:int =(1 / n$1) [line 37]\n " shape="box"] 16 -> 15 ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/types/typeid_expr.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/types/typeid_expr.cpp.dot index 54fc0764f..fe5fea49c 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/types/typeid_expr.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/types/typeid_expr.cpp.dot @@ -20,7 +20,7 @@ digraph iCFG { 66 -> 68 ; -65 [label="65: BinaryOperatorStmt: EQ \n n$0=_fun_template_typeid(&person:class Person &) [line 64]\n n$1=_fun___cxx_typeid(sizeof(class std::type_info ):void ,n$1.__type_name:void ,&person:class Person ) [line 64]\n NONEn$2=*n$1:class std::type_info [line 64]\n n$3=_fun_std::type_info_name(n$1:class std::type_info &) [line 64]\n " shape="box"] +65 [label="65: BinaryOperatorStmt: EQ \n n$0=_fun_template_typeid(&person:class Person &) [line 64]\n n$1=_fun___cxx_typeid(sizeof(class std::type_info ):void ,n$1.__type_name:void ,&person:class Person ) [line 64]\n _=*n$1:class std::type_info [line 64]\n n$3=_fun_std::type_info_name(n$1:class std::type_info &) [line 64]\n " shape="box"] 65 -> 66 ; @@ -44,7 +44,7 @@ digraph iCFG { 60 -> 59 ; -59 [label="59: Return Stmt \n n$0=_fun___cxx_typeid(sizeof(class std::type_info ):void ,n$0.__type_name:void ) [line 59]\n NONEn$1=*n$0:class std::type_info [line 59]\n n$2=_fun_std::type_info_name(n$0:class std::type_info &) [line 59]\n *&return:char *=n$2 [line 59]\n " shape="box"] +59 [label="59: Return Stmt \n n$0=_fun___cxx_typeid(sizeof(class std::type_info ):void ,n$0.__type_name:void ) [line 59]\n _=*n$0:class std::type_info [line 59]\n n$2=_fun_std::type_info_name(n$0:class std::type_info &) [line 59]\n *&return:char *=n$2 [line 59]\n " shape="box"] 59 -> 58 ; @@ -75,7 +75,7 @@ digraph iCFG { 52 -> 54 ; -51 [label="51: BinaryOperatorStmt: EQ \n n$0=*&ptr:class Person * [line 50]\n n$1=_fun___cxx_typeid(sizeof(class std::type_info ):void ,n$1.__type_name:void ,n$0:class Person ) [line 50]\n NONEn$2=*n$1:class std::type_info [line 50]\n n$3=_fun_std::type_info_name(n$1:class std::type_info &) [line 50]\n n$4=_fun___cxx_typeid(sizeof(class std::type_info ):void ,n$4.__type_name:void ,&person:class Person ) [line 50]\n NONEn$5=*n$4:class std::type_info [line 50]\n n$6=_fun_std::type_info_name(n$4:class std::type_info &) [line 50]\n " shape="box"] +51 [label="51: BinaryOperatorStmt: EQ \n n$0=*&ptr:class Person * [line 50]\n n$1=_fun___cxx_typeid(sizeof(class std::type_info ):void ,n$1.__type_name:void ,n$0:class Person ) [line 50]\n _=*n$1:class std::type_info [line 50]\n n$3=_fun_std::type_info_name(n$1:class std::type_info &) [line 50]\n n$4=_fun___cxx_typeid(sizeof(class std::type_info ):void ,n$4.__type_name:void ,&person:class Person ) [line 50]\n _=*n$4:class std::type_info [line 50]\n n$6=_fun_std::type_info_name(n$4:class std::type_info &) [line 50]\n " shape="box"] 51 -> 52 ; @@ -147,11 +147,11 @@ digraph iCFG { 34 -> 33 ; -33 [label="33: DeclStmt \n n$5=_fun___cxx_typeid(sizeof(class std::type_info ):void ,n$5.__type_name:void ,&t:int ) [line 31]\n NONEn$6=*n$5:class std::type_info [line 31]\n n$7=_fun_std::type_info_name(n$5:class std::type_info &) [line 31]\n *&t_type_info:char *=n$7 [line 31]\n " shape="box"] +33 [label="33: DeclStmt \n n$5=_fun___cxx_typeid(sizeof(class std::type_info ):void ,n$5.__type_name:void ,&t:int ) [line 31]\n _=*n$5:class std::type_info [line 31]\n n$7=_fun_std::type_info_name(n$5:class std::type_info &) [line 31]\n *&t_type_info:char *=n$7 [line 31]\n " shape="box"] 33 -> 32 ; -32 [label="32: DeclStmt \n n$2=_fun___cxx_typeid(sizeof(class std::type_info ):void ,n$2.__type_name:void ,&person:class Person ) [line 32]\n NONEn$3=*n$2:class std::type_info [line 32]\n n$4=_fun_std::type_info_name(n$2:class std::type_info &) [line 32]\n *&person_type_info:char *=n$4 [line 32]\n " shape="box"] +32 [label="32: DeclStmt \n n$2=_fun___cxx_typeid(sizeof(class std::type_info ):void ,n$2.__type_name:void ,&person:class Person ) [line 32]\n _=*n$2:class std::type_info [line 32]\n n$4=_fun_std::type_info_name(n$2:class std::type_info &) [line 32]\n *&person_type_info:char *=n$4 [line 32]\n " shape="box"] 32 -> 27 ;