From 116ec5ae5599c69d408cef4bc4332a53a1067ee0 Mon Sep 17 00:00:00 2001 From: Jules Villard Date: Tue, 2 Oct 2018 01:54:11 -0700 Subject: [PATCH] [clang] changes to accomodate the new version of clang Summary: New clang in the plugin \o/ Changes that were needed: - (minor) Some extra AST nodes - defining a lambda and calling it in the same line (`[&x]() { x = 1; }()`) used to get translated as a call of the literal but now an intermediate variable gets created, which confuses uninit in one test. I added another test to showcase the limitation this is hitting: storing the lambda in a variable then calling it will not get caught by the checker. The controller you requested could not be found.: facebook-clang-plugins Reviewed By: jeremydubreil Differential Revision: D10128626 fbshipit-source-id: 8ffd19f3c --- facebook-clang-plugins | 2 +- infer/src/clang/cTrans.ml | 1 + .../clang_translation/src/main.cpp.dot | 2 +- .../src/main_default_root.cpp.dot | 2 +- .../src/main_default_symlink.cpp.dot | 2 +- .../clang_translation/src/main_symlink.cpp.dot | 2 +- .../tests/codetoanalyze/cpp/errors/issues.exp | 12 ++++++------ .../frontend/destructors/break_scope.cpp.dot | 14 +++++++------- .../destructors/continue_scope.cpp.dot | 14 +++++++------- .../cpp/frontend/loops/foreach1.cpp.dot | 14 +++++++------- .../codetoanalyze/cpp/quandaryBO/Makefile | 8 ++++---- .../conditional/binary_conditional.cpp.dot | 16 ++++++++-------- .../cpp/shared/lambda/lambda1.cpp.dot | 18 +++++++++--------- .../cpp/shared/methods/byvals.cpp.dot | 4 ++-- .../shared/methods/conversion_operator.cpp.dot | 16 ++++++++-------- .../tests/codetoanalyze/cpp/uninit/issues.exp | 2 ++ .../tests/codetoanalyze/cpp/uninit/uninit.cpp | 9 ++++++++- 17 files changed, 74 insertions(+), 64 deletions(-) diff --git a/facebook-clang-plugins b/facebook-clang-plugins index 42b0e652e..4639c488b 160000 --- a/facebook-clang-plugins +++ b/facebook-clang-plugins @@ -1 +1 @@ -Subproject commit 42b0e652eb00b598cd019a52249f4ff7fba7c578 +Subproject commit 4639c488b03664535401440a4e0bfc2f17d851d5 diff --git a/infer/src/clang/cTrans.ml b/infer/src/clang/cTrans.ml index c5309dd61..18da026a6 100644 --- a/infer/src/clang/cTrans.ml +++ b/infer/src/clang/cTrans.ml @@ -3343,6 +3343,7 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s | CharacterLiteral (_, _, expr_info, n) | CXXBoolLiteralExpr (_, _, expr_info, n) -> characterLiteral_trans trans_state expr_info n + | FixedPointLiteral (_, _, expr_info, float_string) | FloatingLiteral (_, _, expr_info, float_string) -> floatingLiteral_trans trans_state expr_info float_string | CXXScalarValueInitExpr (_, _, expr_info) -> diff --git a/infer/tests/build_systems/codetoanalyze/clang_translation/src/main.cpp.dot b/infer/tests/build_systems/codetoanalyze/clang_translation/src/main.cpp.dot index 6d646daed..76374c362 100644 --- a/infer/tests/build_systems/codetoanalyze/clang_translation/src/main.cpp.dot +++ b/infer/tests/build_systems/codetoanalyze/clang_translation/src/main.cpp.dot @@ -124,7 +124,7 @@ digraph cfg { "main.fad58de7366495db4650cfefac2fcd61_3" -> "main.fad58de7366495db4650cfefac2fcd61_2" ; -"main.fad58de7366495db4650cfefac2fcd61_4" [label="4: DeclStmt \n n$5=_fun_std::basic_string,std::allocator>_basic_string(&s:std::basic_string,std::allocator>*,\"1234\":char const *) [line 20, column 15]\n " shape="box"] +"main.fad58de7366495db4650cfefac2fcd61_4" [label="4: DeclStmt \n n$5=_fun_std::basic_string,std::allocator>_basic_string(&s:std::basic_string,std::allocator>*,\"1234\":char const *) [line 20, column 15]\n " shape="box"] "main.fad58de7366495db4650cfefac2fcd61_4" -> "main.fad58de7366495db4650cfefac2fcd61_3" ; diff --git a/infer/tests/build_systems/codetoanalyze/clang_translation/src/main_default_root.cpp.dot b/infer/tests/build_systems/codetoanalyze/clang_translation/src/main_default_root.cpp.dot index 6d646daed..76374c362 100644 --- a/infer/tests/build_systems/codetoanalyze/clang_translation/src/main_default_root.cpp.dot +++ b/infer/tests/build_systems/codetoanalyze/clang_translation/src/main_default_root.cpp.dot @@ -124,7 +124,7 @@ digraph cfg { "main.fad58de7366495db4650cfefac2fcd61_3" -> "main.fad58de7366495db4650cfefac2fcd61_2" ; -"main.fad58de7366495db4650cfefac2fcd61_4" [label="4: DeclStmt \n n$5=_fun_std::basic_string,std::allocator>_basic_string(&s:std::basic_string,std::allocator>*,\"1234\":char const *) [line 20, column 15]\n " shape="box"] +"main.fad58de7366495db4650cfefac2fcd61_4" [label="4: DeclStmt \n n$5=_fun_std::basic_string,std::allocator>_basic_string(&s:std::basic_string,std::allocator>*,\"1234\":char const *) [line 20, column 15]\n " shape="box"] "main.fad58de7366495db4650cfefac2fcd61_4" -> "main.fad58de7366495db4650cfefac2fcd61_3" ; diff --git a/infer/tests/build_systems/codetoanalyze/clang_translation/src/main_default_symlink.cpp.dot b/infer/tests/build_systems/codetoanalyze/clang_translation/src/main_default_symlink.cpp.dot index 6d646daed..76374c362 100644 --- a/infer/tests/build_systems/codetoanalyze/clang_translation/src/main_default_symlink.cpp.dot +++ b/infer/tests/build_systems/codetoanalyze/clang_translation/src/main_default_symlink.cpp.dot @@ -124,7 +124,7 @@ digraph cfg { "main.fad58de7366495db4650cfefac2fcd61_3" -> "main.fad58de7366495db4650cfefac2fcd61_2" ; -"main.fad58de7366495db4650cfefac2fcd61_4" [label="4: DeclStmt \n n$5=_fun_std::basic_string,std::allocator>_basic_string(&s:std::basic_string,std::allocator>*,\"1234\":char const *) [line 20, column 15]\n " shape="box"] +"main.fad58de7366495db4650cfefac2fcd61_4" [label="4: DeclStmt \n n$5=_fun_std::basic_string,std::allocator>_basic_string(&s:std::basic_string,std::allocator>*,\"1234\":char const *) [line 20, column 15]\n " shape="box"] "main.fad58de7366495db4650cfefac2fcd61_4" -> "main.fad58de7366495db4650cfefac2fcd61_3" ; diff --git a/infer/tests/build_systems/codetoanalyze/clang_translation/src/main_symlink.cpp.dot b/infer/tests/build_systems/codetoanalyze/clang_translation/src/main_symlink.cpp.dot index 6d646daed..76374c362 100644 --- a/infer/tests/build_systems/codetoanalyze/clang_translation/src/main_symlink.cpp.dot +++ b/infer/tests/build_systems/codetoanalyze/clang_translation/src/main_symlink.cpp.dot @@ -124,7 +124,7 @@ digraph cfg { "main.fad58de7366495db4650cfefac2fcd61_3" -> "main.fad58de7366495db4650cfefac2fcd61_2" ; -"main.fad58de7366495db4650cfefac2fcd61_4" [label="4: DeclStmt \n n$5=_fun_std::basic_string,std::allocator>_basic_string(&s:std::basic_string,std::allocator>*,\"1234\":char const *) [line 20, column 15]\n " shape="box"] +"main.fad58de7366495db4650cfefac2fcd61_4" [label="4: DeclStmt \n n$5=_fun_std::basic_string,std::allocator>_basic_string(&s:std::basic_string,std::allocator>*,\"1234\":char const *) [line 20, column 15]\n " shape="box"] "main.fad58de7366495db4650cfefac2fcd61_4" -> "main.fad58de7366495db4650cfefac2fcd61_3" ; diff --git a/infer/tests/codetoanalyze/cpp/errors/issues.exp b/infer/tests/codetoanalyze/cpp/errors/issues.exp index e49ae97b2..3c624cf45 100644 --- a/infer/tests/codetoanalyze/cpp/errors/issues.exp +++ b/infer/tests/codetoanalyze/cpp/errors/issues.exp @@ -33,7 +33,7 @@ codetoanalyze/cpp/errors/models/cmp.cpp, std_greater_bad, 4, NULL_DEREFERENCE, B codetoanalyze/cpp/errors/models/cmp.cpp, std_greater_equal_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure std_greater_equal_bad(),Taking true branch] codetoanalyze/cpp/errors/models/cmp.cpp, std_less_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure std_less_bad(),Taking true branch] codetoanalyze/cpp/errors/models/cmp.cpp, std_less_equal_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure std_less_equal_bad(),Taking true branch] -codetoanalyze/cpp/errors/models/cmp.cpp, std_not_equal_to_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure std_not_equal_to_bad(),Taking true branch] +codetoanalyze/cpp/errors/models/cmp.cpp, std_not_equal_to_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure std_not_equal_to_bad(),Condition is false,Taking true branch] codetoanalyze/cpp/errors/models/move.cpp, move::div0_moved_from, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure move::div0_moved_from(),start of procedure X,return from a call to move::X_X,start of procedure X,return from a call to move::X_X] codetoanalyze/cpp/errors/models/move.cpp, move::div0_moved_to, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure move::div0_moved_to(),start of procedure X,return from a call to move::X_X,start of procedure X,return from a call to move::X_X] codetoanalyze/cpp/errors/models/pair.cpp, pair::deref_pair_null0_bad, 3, NULL_DEREFERENCE, B1, ERROR, [start of procedure pair::deref_pair_null0_bad(),start of procedure pair::pairOfZeroNull(),return from a call to pair::pairOfZeroNull] @@ -87,15 +87,15 @@ codetoanalyze/cpp/errors/smart_ptr/deref_after_move_example.cpp, deref_after_mod codetoanalyze/cpp/errors/smart_ptr/deref_after_move_example.cpp, deref_after_mode_example::deref_ok, 2, MEMORY_LEAK, CPP, ERROR, [start of procedure deref_after_mode_example::deref_ok(),start of procedure Person,return from a call to deref_after_mode_example::Person_Person,start of procedure access_age,return from a call to deref_after_mode_example::Person_access_age,start of procedure ~Person,start of procedure __infer_inner_destructor_~Person,return from a call to deref_after_mode_example::Person___infer_inner_destructor_~Person,return from a call to deref_after_mode_example::Person_~Person] codetoanalyze/cpp/errors/smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::aliasing_member_null_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure shared_ptr_constructors::aliasing_member_null_bad(),start of procedure shared_ptr_constructors::aliasing_construct_from_internal(),start of procedure shared_ptr_constructors::internal_null_def(),Skipping shared_ptr_constructors::external_def(): method has no implementation,return from a call to shared_ptr_constructors::internal_null_def,Taking false branch,return from a call to shared_ptr_constructors::aliasing_construct_from_internal] codetoanalyze/cpp/errors/smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_base1_null_f1_deref, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure shared_ptr_constructors::get_from_base1_null_f1_deref(),start of procedure Base,return from a call to shared_ptr_constructors::Base_Base,start of procedure shared_ptr_constructors::getFromBase1(),return from a call to shared_ptr_constructors::getFromBase1] -codetoanalyze/cpp/errors/smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_base1_nullptr_deref, 0, NULL_DEREFERENCE, B5, ERROR, [start of procedure shared_ptr_constructors::get_from_base1_nullptr_deref(),start of procedure shared_ptr_constructors::getFromBase1(),return from a call to shared_ptr_constructors::getFromBase1] +codetoanalyze/cpp/errors/smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_base1_nullptr_deref, 0, NULL_DEREFERENCE, B1, ERROR, [start of procedure shared_ptr_constructors::get_from_base1_nullptr_deref(),start of procedure shared_ptr_constructors::getFromBase1(),return from a call to shared_ptr_constructors::getFromBase1,start of procedure Base] codetoanalyze/cpp/errors/smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_base2_null_f1_deref, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure shared_ptr_constructors::get_from_base2_null_f1_deref(),start of procedure Base,return from a call to shared_ptr_constructors::Base_Base,start of procedure shared_ptr_constructors::getFromBase2(),return from a call to shared_ptr_constructors::getFromBase2] -codetoanalyze/cpp/errors/smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_base2_nullptr_deref, 0, NULL_DEREFERENCE, B5, ERROR, [start of procedure shared_ptr_constructors::get_from_base2_nullptr_deref(),start of procedure shared_ptr_constructors::getFromBase2(),return from a call to shared_ptr_constructors::getFromBase2] +codetoanalyze/cpp/errors/smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_base2_nullptr_deref, 0, NULL_DEREFERENCE, B1, ERROR, [start of procedure shared_ptr_constructors::get_from_base2_nullptr_deref(),start of procedure shared_ptr_constructors::getFromBase2(),return from a call to shared_ptr_constructors::getFromBase2,start of procedure Base] codetoanalyze/cpp/errors/smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_derived1_null_f1_deref, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure shared_ptr_constructors::get_from_derived1_null_f1_deref(),start of procedure Derived,start of procedure Base,return from a call to shared_ptr_constructors::Base_Base,return from a call to shared_ptr_constructors::Derived_Derived,start of procedure shared_ptr_constructors::getFromDerived1(),return from a call to shared_ptr_constructors::getFromDerived1] -codetoanalyze/cpp/errors/smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_derived1_nullptr_deref, 0, NULL_DEREFERENCE, B5, ERROR, [start of procedure shared_ptr_constructors::get_from_derived1_nullptr_deref(),start of procedure shared_ptr_constructors::getFromDerived1(),return from a call to shared_ptr_constructors::getFromDerived1] +codetoanalyze/cpp/errors/smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_derived1_nullptr_deref, 0, NULL_DEREFERENCE, B1, ERROR, [start of procedure shared_ptr_constructors::get_from_derived1_nullptr_deref(),start of procedure shared_ptr_constructors::getFromDerived1(),return from a call to shared_ptr_constructors::getFromDerived1,start of procedure Base] codetoanalyze/cpp/errors/smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_derived2_null_f1_deref, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure shared_ptr_constructors::get_from_derived2_null_f1_deref(),start of procedure Derived,start of procedure Base,return from a call to shared_ptr_constructors::Base_Base,return from a call to shared_ptr_constructors::Derived_Derived,start of procedure shared_ptr_constructors::getFromDerived2(),return from a call to shared_ptr_constructors::getFromDerived2] -codetoanalyze/cpp/errors/smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_derived2_nullptr_deref, 0, NULL_DEREFERENCE, B5, ERROR, [start of procedure shared_ptr_constructors::get_from_derived2_nullptr_deref(),start of procedure shared_ptr_constructors::getFromDerived2(),return from a call to shared_ptr_constructors::getFromDerived2] +codetoanalyze/cpp/errors/smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_derived2_nullptr_deref, 0, NULL_DEREFERENCE, B1, ERROR, [start of procedure shared_ptr_constructors::get_from_derived2_nullptr_deref(),start of procedure shared_ptr_constructors::getFromDerived2(),return from a call to shared_ptr_constructors::getFromDerived2,start of procedure Base] codetoanalyze/cpp/errors/smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_derived3_null_f1_deref, 6, NULL_DEREFERENCE, B1, ERROR, [start of procedure shared_ptr_constructors::get_from_derived3_null_f1_deref(),start of procedure Derived,start of procedure Base,return from a call to shared_ptr_constructors::Base_Base,return from a call to shared_ptr_constructors::Derived_Derived,start of procedure shared_ptr_constructors::getFromDerived3(),return from a call to shared_ptr_constructors::getFromDerived3] -codetoanalyze/cpp/errors/smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_derived3_nullptr_deref, 0, NULL_DEREFERENCE, B5, ERROR, [start of procedure shared_ptr_constructors::get_from_derived3_nullptr_deref(),start of procedure shared_ptr_constructors::getFromDerived3(),return from a call to shared_ptr_constructors::getFromDerived3] +codetoanalyze/cpp/errors/smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_derived3_nullptr_deref, 0, NULL_DEREFERENCE, B1, ERROR, [start of procedure shared_ptr_constructors::get_from_derived3_nullptr_deref(),start of procedure shared_ptr_constructors::getFromDerived3(),return from a call to shared_ptr_constructors::getFromDerived3,start of procedure Base] codetoanalyze/cpp/errors/smart_ptr/shared_ptr_deref.cpp, shared_ptr::empty_ptr_deref, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure shared_ptr::empty_ptr_deref()] codetoanalyze/cpp/errors/smart_ptr/shared_ptr_deref.cpp, shared_ptr::empty_ptr_field_deref, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure shared_ptr::empty_ptr_field_deref()] codetoanalyze/cpp/errors/smart_ptr/shared_ptr_deref.cpp, shared_ptr::empty_ptr_field_deref2, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure shared_ptr::empty_ptr_field_deref2()] diff --git a/infer/tests/codetoanalyze/cpp/frontend/destructors/break_scope.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/destructors/break_scope.cpp.dot index 902013469..a085e1cfc 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/destructors/break_scope.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/destructors/break_scope.cpp.dot @@ -138,7 +138,7 @@ digraph cfg { "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_17" -> "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_6" ; -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_1" [label="1: Start break_scope::test_for_range\nFormals: b:_Bool\nLocals: __end:break_scope::iterator 0$?%__sil_tmpSIL_materialize_temp__n$7:break_scope::iterator __begin:break_scope::iterator 0$?%__sil_tmpSIL_materialize_temp__n$13:break_scope::iterator 0$?%__sil_tmp__temp_return_n$21:break_scope::iterator x2:break_scope::X x:break_scope::X 0$?%__sil_tmpSIL_materialize_temp__n$37:break_scope::X const __range:break_scope::vec& x1:break_scope::X vector:break_scope::vec \n " color=yellow style=filled] +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_1" [label="1: Start break_scope::test_for_range\nFormals: b:_Bool\nLocals: __end1:break_scope::iterator 0$?%__sil_tmpSIL_materialize_temp__n$7:break_scope::iterator __begin1:break_scope::iterator 0$?%__sil_tmpSIL_materialize_temp__n$13:break_scope::iterator 0$?%__sil_tmp__temp_return_n$21:break_scope::iterator x2:break_scope::X x:break_scope::X 0$?%__sil_tmpSIL_materialize_temp__n$37:break_scope::X const __range1:break_scope::vec& x1:break_scope::X vector:break_scope::vec \n " color=yellow style=filled] "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_1" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_20" ; @@ -153,19 +153,19 @@ digraph cfg { "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_4" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_8" ; -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_5" [label="5: DeclStmt \n n$8=*&__range:break_scope::vec& [line 47, column 12]\n _=*n$8:break_scope::vec [line 47, column 12]\n n$11=_fun_break_scope::vec_end(n$8:break_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$7:break_scope::iterator*) [line 47, column 12]\n n$12=_fun_break_scope::iterator_iterator(&__end:break_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$7:break_scope::iterator&) [line 47, column 12]\n " shape="box"] +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_5" [label="5: DeclStmt \n n$8=*&__range1:break_scope::vec& [line 47, column 12]\n _=*n$8:break_scope::vec [line 47, column 12]\n n$11=_fun_break_scope::vec_end(n$8:break_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$7:break_scope::iterator*) [line 47, column 12]\n n$12=_fun_break_scope::iterator_iterator(&__end1:break_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$7:break_scope::iterator&) [line 47, column 12]\n " shape="box"] "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_5" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_4" ; -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_6" [label="6: DeclStmt \n n$14=*&__range:break_scope::vec& [line 47, column 12]\n _=*n$14:break_scope::vec [line 47, column 12]\n n$17=_fun_break_scope::vec_begin(n$14:break_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$13:break_scope::iterator*) [line 47, column 12]\n n$18=_fun_break_scope::iterator_iterator(&__begin:break_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$13:break_scope::iterator&) [line 47, column 12]\n " shape="box"] +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_6" [label="6: DeclStmt \n n$14=*&__range1:break_scope::vec& [line 47, column 12]\n _=*n$14:break_scope::vec [line 47, column 12]\n n$17=_fun_break_scope::vec_begin(n$14:break_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$13:break_scope::iterator*) [line 47, column 12]\n n$18=_fun_break_scope::iterator_iterator(&__begin1:break_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$13:break_scope::iterator&) [line 47, column 12]\n " shape="box"] "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_6" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_5" ; -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_7" [label="7: Call _fun_break_scope::iterator_operator++ \n n$22=_fun_break_scope::iterator_operator++(&__begin:break_scope::iterator&,&0$?%__sil_tmp__temp_return_n$21:break_scope::iterator*) [line 47, column 12]\n " shape="box"] +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_7" [label="7: Call _fun_break_scope::iterator_operator++ \n n$22=_fun_break_scope::iterator_operator++(&__begin1:break_scope::iterator&,&0$?%__sil_tmp__temp_return_n$21:break_scope::iterator*) [line 47, column 12]\n " shape="box"] "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_7" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_4" ; -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_8" [label="8: Call _fun_break_scope::iterator_operator!= \n n$24=_fun_break_scope::iterator_operator!=(&__begin:break_scope::iterator&,&__end:break_scope::iterator&) [line 47, column 12]\n " shape="box"] +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_8" [label="8: Call _fun_break_scope::iterator_operator!= \n n$24=_fun_break_scope::iterator_operator!=(&__begin1:break_scope::iterator&,&__end1:break_scope::iterator&) [line 47, column 12]\n " shape="box"] "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_8" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_9" ; @@ -202,12 +202,12 @@ digraph cfg { "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_16" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_15" ; -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_17" [label="17: DeclStmt \n n$40=_fun_break_scope::iterator_operator*(&__begin:break_scope::iterator&,&0$?%__sil_tmpSIL_materialize_temp__n$37:break_scope::X*) [line 47, column 12]\n n$41=_fun_break_scope::X_X(&x:break_scope::X*,&0$?%__sil_tmpSIL_materialize_temp__n$37:break_scope::X const &) [line 47, column 12]\n " shape="box"] +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_17" [label="17: DeclStmt \n n$40=_fun_break_scope::iterator_operator*(&__begin1:break_scope::iterator&,&0$?%__sil_tmpSIL_materialize_temp__n$37:break_scope::X*) [line 47, column 12]\n n$41=_fun_break_scope::X_X(&x:break_scope::X*,&0$?%__sil_tmpSIL_materialize_temp__n$37:break_scope::X const &) [line 47, column 12]\n " shape="box"] "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_17" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_12" ; "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_17" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_13" ; -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_18" [label="18: DeclStmt \n *&__range:break_scope::vec&=&vector [line 47, column 14]\n " shape="box"] +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_18" [label="18: DeclStmt \n *&__range1:break_scope::vec&=&vector [line 47, column 14]\n " shape="box"] "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_18" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_6" ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/destructors/continue_scope.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/destructors/continue_scope.cpp.dot index 4c8ee8246..4d14cd61f 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/destructors/continue_scope.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/destructors/continue_scope.cpp.dot @@ -139,7 +139,7 @@ digraph cfg { "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_17" -> "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_6" ; -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_1" [label="1: Start continue_scope::test_for_range\nFormals: b:_Bool\nLocals: __end:continue_scope::iterator 0$?%__sil_tmpSIL_materialize_temp__n$7:continue_scope::iterator __begin:continue_scope::iterator 0$?%__sil_tmpSIL_materialize_temp__n$13:continue_scope::iterator 0$?%__sil_tmp__temp_return_n$21:continue_scope::iterator x2:continue_scope::X x:continue_scope::X 0$?%__sil_tmpSIL_materialize_temp__n$37:continue_scope::X const __range:continue_scope::vec& x1:continue_scope::X vector:continue_scope::vec \n " color=yellow style=filled] +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_1" [label="1: Start continue_scope::test_for_range\nFormals: b:_Bool\nLocals: __end1:continue_scope::iterator 0$?%__sil_tmpSIL_materialize_temp__n$7:continue_scope::iterator __begin1:continue_scope::iterator 0$?%__sil_tmpSIL_materialize_temp__n$13:continue_scope::iterator 0$?%__sil_tmp__temp_return_n$21:continue_scope::iterator x2:continue_scope::X x:continue_scope::X 0$?%__sil_tmpSIL_materialize_temp__n$37:continue_scope::X const __range1:continue_scope::vec& x1:continue_scope::X vector:continue_scope::vec \n " color=yellow style=filled] "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_1" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_20" ; @@ -154,19 +154,19 @@ digraph cfg { "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_4" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_8" ; -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_5" [label="5: DeclStmt \n n$8=*&__range:continue_scope::vec& [line 47, column 12]\n _=*n$8:continue_scope::vec [line 47, column 12]\n n$11=_fun_continue_scope::vec_end(n$8:continue_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$7:continue_scope::iterator*) [line 47, column 12]\n n$12=_fun_continue_scope::iterator_iterator(&__end:continue_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$7:continue_scope::iterator&) [line 47, column 12]\n " shape="box"] +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_5" [label="5: DeclStmt \n n$8=*&__range1:continue_scope::vec& [line 47, column 12]\n _=*n$8:continue_scope::vec [line 47, column 12]\n n$11=_fun_continue_scope::vec_end(n$8:continue_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$7:continue_scope::iterator*) [line 47, column 12]\n n$12=_fun_continue_scope::iterator_iterator(&__end1:continue_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$7:continue_scope::iterator&) [line 47, column 12]\n " shape="box"] "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_5" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_4" ; -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_6" [label="6: DeclStmt \n n$14=*&__range:continue_scope::vec& [line 47, column 12]\n _=*n$14:continue_scope::vec [line 47, column 12]\n n$17=_fun_continue_scope::vec_begin(n$14:continue_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$13:continue_scope::iterator*) [line 47, column 12]\n n$18=_fun_continue_scope::iterator_iterator(&__begin:continue_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$13:continue_scope::iterator&) [line 47, column 12]\n " shape="box"] +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_6" [label="6: DeclStmt \n n$14=*&__range1:continue_scope::vec& [line 47, column 12]\n _=*n$14:continue_scope::vec [line 47, column 12]\n n$17=_fun_continue_scope::vec_begin(n$14:continue_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$13:continue_scope::iterator*) [line 47, column 12]\n n$18=_fun_continue_scope::iterator_iterator(&__begin1:continue_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$13:continue_scope::iterator&) [line 47, column 12]\n " shape="box"] "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_6" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_5" ; -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_7" [label="7: Call _fun_continue_scope::iterator_operator++ \n n$22=_fun_continue_scope::iterator_operator++(&__begin:continue_scope::iterator&,&0$?%__sil_tmp__temp_return_n$21:continue_scope::iterator*) [line 47, column 12]\n " shape="box"] +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_7" [label="7: Call _fun_continue_scope::iterator_operator++ \n n$22=_fun_continue_scope::iterator_operator++(&__begin1:continue_scope::iterator&,&0$?%__sil_tmp__temp_return_n$21:continue_scope::iterator*) [line 47, column 12]\n " shape="box"] "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_7" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_4" ; -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_8" [label="8: Call _fun_continue_scope::iterator_operator!= \n n$24=_fun_continue_scope::iterator_operator!=(&__begin:continue_scope::iterator&,&__end:continue_scope::iterator&) [line 47, column 12]\n " shape="box"] +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_8" [label="8: Call _fun_continue_scope::iterator_operator!= \n n$24=_fun_continue_scope::iterator_operator!=(&__begin1:continue_scope::iterator&,&__end1:continue_scope::iterator&) [line 47, column 12]\n " shape="box"] "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_8" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_9" ; @@ -203,12 +203,12 @@ digraph cfg { "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_16" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_15" ; -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_17" [label="17: DeclStmt \n n$40=_fun_continue_scope::iterator_operator*(&__begin:continue_scope::iterator&,&0$?%__sil_tmpSIL_materialize_temp__n$37:continue_scope::X*) [line 47, column 12]\n n$41=_fun_continue_scope::X_X(&x:continue_scope::X*,&0$?%__sil_tmpSIL_materialize_temp__n$37:continue_scope::X const &) [line 47, column 12]\n " shape="box"] +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_17" [label="17: DeclStmt \n n$40=_fun_continue_scope::iterator_operator*(&__begin1:continue_scope::iterator&,&0$?%__sil_tmpSIL_materialize_temp__n$37:continue_scope::X*) [line 47, column 12]\n n$41=_fun_continue_scope::X_X(&x:continue_scope::X*,&0$?%__sil_tmpSIL_materialize_temp__n$37:continue_scope::X const &) [line 47, column 12]\n " shape="box"] "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_17" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_12" ; "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_17" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_13" ; -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_18" [label="18: DeclStmt \n *&__range:continue_scope::vec&=&vector [line 47, column 14]\n " shape="box"] +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_18" [label="18: DeclStmt \n *&__range1:continue_scope::vec&=&vector [line 47, column 14]\n " shape="box"] "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_18" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_6" ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/loops/foreach1.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/loops/foreach1.cpp.dot index b15c6b352..234410f7d 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/loops/foreach1.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/loops/foreach1.cpp.dot @@ -36,7 +36,7 @@ digraph cfg { "operator!=#4715710375716659667.eb4126b3edd381f3092a9e38275754d4_9" -> "operator!=#4715710375716659667.eb4126b3edd381f3092a9e38275754d4_2" ; -"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_1" [label="1: Start test\nFormals: \nLocals: __end:iterator 0$?%__sil_tmpSIL_materialize_temp__n$3:iterator __begin:iterator 0$?%__sil_tmpSIL_materialize_temp__n$9:iterator 0$?%__sil_tmp__temp_return_n$17:iterator 0$?%__sil_tmp__temp_construct_n$19:iterator 0$?%__sil_tmp__temp_construct_n$21:iterator temp:int value:int __range:vec& vector:vec \n " color=yellow style=filled] +"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_1" [label="1: Start test\nFormals: \nLocals: __end1:iterator 0$?%__sil_tmpSIL_materialize_temp__n$3:iterator __begin1:iterator 0$?%__sil_tmpSIL_materialize_temp__n$9:iterator 0$?%__sil_tmp__temp_return_n$17:iterator 0$?%__sil_tmp__temp_construct_n$19:iterator 0$?%__sil_tmp__temp_construct_n$21:iterator temp:int value:int __range1:vec& vector:vec \n " color=yellow style=filled] "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_1" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_13" ; @@ -47,19 +47,19 @@ digraph cfg { "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_3" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_7" ; -"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_4" [label="4: DeclStmt \n n$4=*&__range:vec& [line 35, column 18]\n _=*n$4:vec [line 35, column 18]\n n$7=_fun_vec_end(n$4:vec&,&0$?%__sil_tmpSIL_materialize_temp__n$3:iterator*) [line 35, column 18]\n n$8=_fun_iterator_iterator(&__end:iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$3:iterator&) [line 35, column 18]\n " shape="box"] +"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_4" [label="4: DeclStmt \n n$4=*&__range1:vec& [line 35, column 18]\n _=*n$4:vec [line 35, column 18]\n n$7=_fun_vec_end(n$4:vec&,&0$?%__sil_tmpSIL_materialize_temp__n$3:iterator*) [line 35, column 18]\n n$8=_fun_iterator_iterator(&__end1:iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$3:iterator&) [line 35, column 18]\n " shape="box"] "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_4" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_3" ; -"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_5" [label="5: DeclStmt \n n$10=*&__range:vec& [line 35, column 18]\n _=*n$10:vec [line 35, column 18]\n n$13=_fun_vec_begin(n$10:vec&,&0$?%__sil_tmpSIL_materialize_temp__n$9:iterator*) [line 35, column 18]\n n$14=_fun_iterator_iterator(&__begin:iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$9:iterator&) [line 35, column 18]\n " shape="box"] +"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_5" [label="5: DeclStmt \n n$10=*&__range1:vec& [line 35, column 18]\n _=*n$10:vec [line 35, column 18]\n n$13=_fun_vec_begin(n$10:vec&,&0$?%__sil_tmpSIL_materialize_temp__n$9:iterator*) [line 35, column 18]\n n$14=_fun_iterator_iterator(&__begin1:iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$9:iterator&) [line 35, column 18]\n " shape="box"] "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_5" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_4" ; -"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_6" [label="6: Call _fun_iterator_operator++ \n n$18=_fun_iterator_operator++(&__begin:iterator&,&0$?%__sil_tmp__temp_return_n$17:iterator*) [line 35, column 18]\n " shape="box"] +"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_6" [label="6: Call _fun_iterator_operator++ \n n$18=_fun_iterator_operator++(&__begin1:iterator&,&0$?%__sil_tmp__temp_return_n$17:iterator*) [line 35, column 18]\n " shape="box"] "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_6" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_3" ; -"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_7" [label="7: Call _fun_operator!= \n n$20=_fun_iterator_iterator(&0$?%__sil_tmp__temp_construct_n$19:iterator*,&__begin:iterator&) [line 35, column 18]\n n$22=_fun_iterator_iterator(&0$?%__sil_tmp__temp_construct_n$21:iterator*,&__end:iterator&) [line 35, column 18]\n n$23=_fun_operator!=(&0$?%__sil_tmp__temp_construct_n$19:iterator,&0$?%__sil_tmp__temp_construct_n$21:iterator) [line 35, column 18]\n " shape="box"] +"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_7" [label="7: Call _fun_operator!= \n n$20=_fun_iterator_iterator(&0$?%__sil_tmp__temp_construct_n$19:iterator*,&__begin1:iterator&) [line 35, column 18]\n n$22=_fun_iterator_iterator(&0$?%__sil_tmp__temp_construct_n$21:iterator*,&__end1:iterator&) [line 35, column 18]\n n$23=_fun_operator!=(&0$?%__sil_tmp__temp_construct_n$19:iterator,&0$?%__sil_tmp__temp_construct_n$21:iterator) [line 35, column 18]\n " shape="box"] "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_7" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_8" ; @@ -76,11 +76,11 @@ digraph cfg { "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_10" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_6" ; -"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_11" [label="11: DeclStmt \n n$29=_fun_iterator_operator*(&__begin:iterator&) [line 35, column 18]\n *&value:int=n$29 [line 35, column 8]\n " shape="box"] +"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_11" [label="11: DeclStmt \n n$29=_fun_iterator_operator*(&__begin1:iterator&) [line 35, column 18]\n *&value:int=n$29 [line 35, column 8]\n " shape="box"] "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_11" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_10" ; -"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_12" [label="12: DeclStmt \n *&__range:vec&=&vector [line 35, column 20]\n " shape="box"] +"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_12" [label="12: DeclStmt \n *&__range1:vec&=&vector [line 35, column 20]\n " shape="box"] "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_12" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_5" ; diff --git a/infer/tests/codetoanalyze/cpp/quandaryBO/Makefile b/infer/tests/codetoanalyze/cpp/quandaryBO/Makefile index 86f44ce3b..d0ee9be6c 100644 --- a/infer/tests/codetoanalyze/cpp/quandaryBO/Makefile +++ b/infer/tests/codetoanalyze/cpp/quandaryBO/Makefile @@ -39,16 +39,16 @@ test4: replace: replace1 replace2 replace3 replace4 replace1: - $(MAKE) -f multitest.make replace TEST_SUFFIX=-t1 TEST_RESULT_SUFFIX=-t1 + $(MAKE) -f multitest.make replace TEST_SUFFIX=-t1 TEST_RESULT_SUFFIX=-t1 INFER_OPTIONS="$(OPTIONS_1)" replace2: - $(MAKE) -f multitest.make replace TEST_SUFFIX=-t2 TEST_RESULT_SUFFIX=-t2 + $(MAKE) -f multitest.make replace TEST_SUFFIX=-t2 TEST_RESULT_SUFFIX=-t2 INFER_OPTIONS="$(OPTIONS_2)" replace3: - $(MAKE) -f multitest.make replace TEST_SUFFIX=-t3 TEST_RESULT_SUFFIX=-t3 + $(MAKE) -f multitest.make replace TEST_SUFFIX=-t3 TEST_RESULT_SUFFIX=-t3 INFER_OPTIONS="$(OPTIONS_3)" replace4: - $(MAKE) -f multitest.make replace TEST_SUFFIX=-t4 TEST_RESULT_SUFFIX=-t4 + $(MAKE) -f multitest.make replace TEST_SUFFIX=-t4 TEST_RESULT_SUFFIX=-t4 INFER_OPTIONS="$(OPTIONS_4)" clean: $(MAKE) -f multitest.make clean TEST_SUFFIX=-t1 diff --git a/infer/tests/codetoanalyze/cpp/shared/conditional/binary_conditional.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/conditional/binary_conditional.cpp.dot index 3dce575a9..ce3481d33 100644 --- a/infer/tests/codetoanalyze/cpp/shared/conditional/binary_conditional.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/conditional/binary_conditional.cpp.dot @@ -48,7 +48,7 @@ digraph cfg { "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_12" -> "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_10" ; -"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_1" [label="1: Start binary_conditional::conditional\nFormals: \nLocals: x:binary_conditional::X 0$?%__sil_tmpSIL_temp_conditional___n$6:binary_conditional::X 0$?%__sil_tmp__temp_return_n$8:binary_conditional::X 0$?%__sil_tmpSIL_materialize_temp__n$11:binary_conditional::X 0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X a:binary_conditional::X \n " color=yellow style=filled] +"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_1" [label="1: Start binary_conditional::conditional\nFormals: \nLocals: x:binary_conditional::X 0$?%__sil_tmpSIL_temp_conditional___n$6:binary_conditional::X 0$?%__sil_tmpSIL_materialize_temp__n$7:binary_conditional::X 0$?%__sil_tmpSIL_materialize_temp__n$12:binary_conditional::X 0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X a:binary_conditional::X \n " color=yellow style=filled] "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_1" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_11" ; @@ -63,32 +63,32 @@ digraph cfg { "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_4" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_10" ; -"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_5" [label="5: Call _fun_binary_conditional::X_operator_bool \n n$9=_fun_binary_conditional::getX(&0$?%__sil_tmp__temp_return_n$8:binary_conditional::X*) [line 27, column 9]\n n$10=_fun_binary_conditional::X_operator_bool(&0$?%__sil_tmp__temp_return_n$8:binary_conditional::X&) [line 27, column 9]\n " shape="box"] +"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_5" [label="5: Call _fun_binary_conditional::X_operator_bool \n n$9=_fun_binary_conditional::getX(&0$?%__sil_tmpSIL_materialize_temp__n$7:binary_conditional::X*) [line 27, column 9]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$7:binary_conditional::X [line 27, column 9]\n n$11=_fun_binary_conditional::X_operator_bool(&0$?%__sil_tmpSIL_materialize_temp__n$7:binary_conditional::X&) [line 27, column 9]\n " shape="box"] "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_5" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_6" ; "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_5" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_7" ; -"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_6" [label="6: Prune (true branch, boolean exp) \n PRUNE(n$10, true); [line 27, column 9]\n " shape="invhouse"] +"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_6" [label="6: Prune (true branch, boolean exp) \n PRUNE(n$11, true); [line 27, column 9]\n " shape="invhouse"] "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_6" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_8" ; -"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_7" [label="7: Prune (false branch, boolean exp) \n PRUNE(!n$10, false); [line 27, column 9]\n " shape="invhouse"] +"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_7" [label="7: Prune (false branch, boolean exp) \n PRUNE(!n$11, false); [line 27, column 9]\n " shape="invhouse"] "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_7" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_9" ; -"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_8" [label="8: ConditionalStmt Branch \n n$13=_fun_binary_conditional::getX(&0$?%__sil_tmpSIL_materialize_temp__n$11:binary_conditional::X*) [line 27, column 18]\n n$14=_fun_binary_conditional::X_X(&0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X*,&0$?%__sil_tmpSIL_materialize_temp__n$11:binary_conditional::X&) [line 27, column 18]\n *&0$?%__sil_tmpSIL_temp_conditional___n$6:binary_conditional::X=&0$?%__sil_tmpSIL_materialize_temp__n$5 [line 27, column 9]\n " shape="box"] +"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_8" [label="8: ConditionalStmt Branch \n n$14=_fun_binary_conditional::getX(&0$?%__sil_tmpSIL_materialize_temp__n$12:binary_conditional::X*) [line 27, column 18]\n n$15=_fun_binary_conditional::X_X(&0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X*,&0$?%__sil_tmpSIL_materialize_temp__n$12:binary_conditional::X&) [line 27, column 18]\n *&0$?%__sil_tmpSIL_temp_conditional___n$6:binary_conditional::X=&0$?%__sil_tmpSIL_materialize_temp__n$5 [line 27, column 9]\n " shape="box"] "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_8" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_4" ; -"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_9" [label="9: ConditionalStmt Branch \n n$15=_fun_binary_conditional::X_X(&0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X*,&a:binary_conditional::X&) [line 27, column 27]\n *&0$?%__sil_tmpSIL_temp_conditional___n$6:binary_conditional::X=&0$?%__sil_tmpSIL_materialize_temp__n$5 [line 27, column 9]\n " shape="box"] +"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_9" [label="9: ConditionalStmt Branch \n n$16=_fun_binary_conditional::X_X(&0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X*,&a:binary_conditional::X&) [line 27, column 27]\n *&0$?%__sil_tmpSIL_temp_conditional___n$6:binary_conditional::X=&0$?%__sil_tmpSIL_materialize_temp__n$5 [line 27, column 9]\n " shape="box"] "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_9" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_4" ; -"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_10" [label="10: DeclStmt \n n$16=*&0$?%__sil_tmpSIL_temp_conditional___n$6:binary_conditional::X [line 27, column 9]\n *&0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X=n$16 [line 27, column 9]\n n$17=_fun_binary_conditional::X_X(&x:binary_conditional::X*,&0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X&) [line 27, column 9]\n " shape="box"] +"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_10" [label="10: DeclStmt \n n$17=*&0$?%__sil_tmpSIL_temp_conditional___n$6:binary_conditional::X [line 27, column 9]\n *&0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X=n$17 [line 27, column 9]\n n$18=_fun_binary_conditional::X_X(&x:binary_conditional::X*,&0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X&) [line 27, column 9]\n " shape="box"] "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_10" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_3" ; -"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_11" [label="11: DeclStmt \n n$18=_fun_binary_conditional::X_X(&a:binary_conditional::X*) [line 26, column 5]\n " shape="box"] +"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_11" [label="11: DeclStmt \n n$19=_fun_binary_conditional::X_X(&a:binary_conditional::X*) [line 26, column 5]\n " shape="box"] "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_11" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_5" ; diff --git a/infer/tests/codetoanalyze/cpp/shared/lambda/lambda1.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/lambda/lambda1.cpp.dot index 38c0f46b7..55abfaf0a 100644 --- a/infer/tests/codetoanalyze/cpp/shared/lambda/lambda1.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/lambda/lambda1.cpp.dot @@ -15,7 +15,7 @@ digraph cfg { "bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_4" -> "bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_3" ; -"capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_1" [label="1: Start capture_by_ref\nFormals: \nLocals: x:int \n " color=yellow style=filled] +"capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_1" [label="1: Start capture_by_ref\nFormals: \nLocals: 0$?%__sil_tmpSIL_materialize_temp__n$3:capture_by_ref::lambda_shared_lambda_lambda1.cpp:36:3 x:int \n " color=yellow style=filled] "capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_1" -> "capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_5" ; @@ -26,7 +26,7 @@ digraph cfg { "capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_3" -> "capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_2" ; -"capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_4" [label="4: Call _fun_capture_by_ref::lambda_shared_lambda_lambda1.cpp:36:3_operator() \n n$3=_fun_capture_by_ref::lambda_shared_lambda_lambda1.cpp:36:3_operator()((_fun_capture_by_ref::lambda_shared_lambda_lambda1.cpp:36:3_operator(),&x):capture_by_ref::lambda_shared_lambda_lambda1.cpp:36:3) [line 36, column 3]\n " shape="box"] +"capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_4" [label="4: Call _fun_capture_by_ref::lambda_shared_lambda_lambda1.cpp:36:3_operator() \n *&0$?%__sil_tmpSIL_materialize_temp__n$3:capture_by_ref::lambda_shared_lambda_lambda1.cpp:36:3=(_fun_capture_by_ref::lambda_shared_lambda_lambda1.cpp:36:3_operator(),&x) [line 36, column 3]\n n$4=_fun_capture_by_ref::lambda_shared_lambda_lambda1.cpp:36:3_operator()(&0$?%__sil_tmpSIL_materialize_temp__n$3:capture_by_ref::lambda_shared_lambda_lambda1.cpp:36:3&) [line 36, column 3]\n " shape="box"] "capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_4" -> "capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_3" ; @@ -68,7 +68,7 @@ digraph cfg { "fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_4" -> "fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_3" ; -"init_capture1#11582985675627962568.58b9ce334267f411dc5e1c70bd53eb81_1" [label="1: Start init_capture1\nFormals: \nLocals: \n " color=yellow style=filled] +"init_capture1#11582985675627962568.58b9ce334267f411dc5e1c70bd53eb81_1" [label="1: Start init_capture1\nFormals: \nLocals: 0$?%__sil_tmpSIL_materialize_temp__n$1:init_capture1::lambda_shared_lambda_lambda1.cpp:41:10 \n " color=yellow style=filled] "init_capture1#11582985675627962568.58b9ce334267f411dc5e1c70bd53eb81_1" -> "init_capture1#11582985675627962568.58b9ce334267f411dc5e1c70bd53eb81_3" ; @@ -79,11 +79,11 @@ digraph cfg { "init_capture1#11582985675627962568.58b9ce334267f411dc5e1c70bd53eb81_3" -> "init_capture1#11582985675627962568.58b9ce334267f411dc5e1c70bd53eb81_4" ; -"init_capture1#11582985675627962568.58b9ce334267f411dc5e1c70bd53eb81_4" [label="4: Return Stmt \n n$1=_fun_init_capture1::lambda_shared_lambda_lambda1.cpp:41:10_operator()((_fun_init_capture1::lambda_shared_lambda_lambda1.cpp:41:10_operator(),&i):init_capture1::lambda_shared_lambda_lambda1.cpp:41:10) [line 41, column 10]\n *&return:int=n$1 [line 41, column 3]\n " shape="box"] +"init_capture1#11582985675627962568.58b9ce334267f411dc5e1c70bd53eb81_4" [label="4: Return Stmt \n *&0$?%__sil_tmpSIL_materialize_temp__n$1:init_capture1::lambda_shared_lambda_lambda1.cpp:41:10=(_fun_init_capture1::lambda_shared_lambda_lambda1.cpp:41:10_operator(),&i) [line 41, column 10]\n n$2=_fun_init_capture1::lambda_shared_lambda_lambda1.cpp:41:10_operator()(&0$?%__sil_tmpSIL_materialize_temp__n$1:init_capture1::lambda_shared_lambda_lambda1.cpp:41:10&) [line 41, column 10]\n *&return:int=n$2 [line 41, column 3]\n " shape="box"] "init_capture1#11582985675627962568.58b9ce334267f411dc5e1c70bd53eb81_4" -> "init_capture1#11582985675627962568.58b9ce334267f411dc5e1c70bd53eb81_2" ; -"init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_1" [label="1: Start init_capture2\nFormals: \nLocals: i:int \n " color=yellow style=filled] +"init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_1" [label="1: Start init_capture2\nFormals: \nLocals: 0$?%__sil_tmpSIL_materialize_temp__n$1:init_capture2::lambda_shared_lambda_lambda1.cpp:46:10 i:int \n " color=yellow style=filled] "init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_1" -> "init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_7" ; @@ -98,11 +98,11 @@ digraph cfg { "init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_4" -> "init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_3" ; -"init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_5" [label="5: DeclStmt \n n$1=*&i:int [line 46, column 15]\n *&a:int=n$1 [line 46, column 10]\n " shape="box"] +"init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_5" [label="5: DeclStmt \n n$2=*&i:int [line 46, column 15]\n *&a:int=n$2 [line 46, column 10]\n " shape="box"] "init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_5" -> "init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_4" ; -"init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_6" [label="6: Return Stmt \n n$2=_fun_init_capture2::lambda_shared_lambda_lambda1.cpp:46:10_operator()((_fun_init_capture2::lambda_shared_lambda_lambda1.cpp:46:10_operator(),&a,&b,&c):init_capture2::lambda_shared_lambda_lambda1.cpp:46:10) [line 46, column 10]\n *&return:int=n$2 [line 46, column 3]\n " shape="box"] +"init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_6" [label="6: Return Stmt \n *&0$?%__sil_tmpSIL_materialize_temp__n$1:init_capture2::lambda_shared_lambda_lambda1.cpp:46:10=(_fun_init_capture2::lambda_shared_lambda_lambda1.cpp:46:10_operator(),&a,&b,&c) [line 46, column 10]\n n$3=_fun_init_capture2::lambda_shared_lambda_lambda1.cpp:46:10_operator()(&0$?%__sil_tmpSIL_materialize_temp__n$1:init_capture2::lambda_shared_lambda_lambda1.cpp:46:10&) [line 46, column 10]\n *&return:int=n$3 [line 46, column 3]\n " shape="box"] "init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_6" -> "init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_2" ; @@ -110,14 +110,14 @@ digraph cfg { "init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_7" -> "init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_5" ; -"normal_capture#5533029764254319855.11493b249dddd657790695e287170b84_1" [label="1: Start normal_capture\nFormals: \nLocals: y:int x:int \n " color=yellow style=filled] +"normal_capture#5533029764254319855.11493b249dddd657790695e287170b84_1" [label="1: Start normal_capture\nFormals: \nLocals: 0$?%__sil_tmpSIL_materialize_temp__n$1:normal_capture::lambda_shared_lambda_lambda1.cpp:31:10 y:int x:int \n " color=yellow style=filled] "normal_capture#5533029764254319855.11493b249dddd657790695e287170b84_1" -> "normal_capture#5533029764254319855.11493b249dddd657790695e287170b84_5" ; "normal_capture#5533029764254319855.11493b249dddd657790695e287170b84_2" [label="2: Exit normal_capture \n " color=yellow style=filled] -"normal_capture#5533029764254319855.11493b249dddd657790695e287170b84_3" [label="3: Return Stmt \n n$2=*&x:int [line 31, column 10]\n n$1=*&y:int [line 31, column 10]\n n$3=_fun_normal_capture::lambda_shared_lambda_lambda1.cpp:31:10_operator()((_fun_normal_capture::lambda_shared_lambda_lambda1.cpp:31:10_operator(),(n$2 &x:int),(n$1 &y:int)):normal_capture::lambda_shared_lambda_lambda1.cpp:31:10) [line 31, column 10]\n *&return:int=n$3 [line 31, column 3]\n " shape="box"] +"normal_capture#5533029764254319855.11493b249dddd657790695e287170b84_3" [label="3: Return Stmt \n n$3=*&x:int [line 31, column 10]\n n$2=*&y:int [line 31, column 10]\n *&0$?%__sil_tmpSIL_materialize_temp__n$1:normal_capture::lambda_shared_lambda_lambda1.cpp:31:10=(_fun_normal_capture::lambda_shared_lambda_lambda1.cpp:31:10_operator(),(n$3 &x:int),(n$2 &y:int)) [line 31, column 10]\n n$4=_fun_normal_capture::lambda_shared_lambda_lambda1.cpp:31:10_operator()(&0$?%__sil_tmpSIL_materialize_temp__n$1:normal_capture::lambda_shared_lambda_lambda1.cpp:31:10&) [line 31, column 10]\n *&return:int=n$4 [line 31, column 3]\n " shape="box"] "normal_capture#5533029764254319855.11493b249dddd657790695e287170b84_3" -> "normal_capture#5533029764254319855.11493b249dddd657790695e287170b84_2" ; diff --git a/infer/tests/codetoanalyze/cpp/shared/methods/byvals.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/methods/byvals.cpp.dot index b0ea769c6..3e5332858 100644 --- a/infer/tests/codetoanalyze/cpp/shared/methods/byvals.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/methods/byvals.cpp.dot @@ -62,7 +62,7 @@ digraph cfg { "forward#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_2" [label="2: Exit std::forward \n " color=yellow style=filled] -"forward#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_3" [label="3: Return Stmt \n n$0=*&__t:int& [line 2221, column 31]\n *&return:int&=n$0 [line 2221, column 5]\n " shape="box"] +"forward#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_3" [label="3: Return Stmt \n n$0=*&__t:int& [line 2305, column 31]\n *&return:int&=n$0 [line 2305, column 5]\n " shape="box"] "forward#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_3" -> "forward#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_2" ; @@ -73,7 +73,7 @@ digraph cfg { "forward#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_2" [label="2: Exit std::forward \n " color=yellow style=filled] -"forward#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_3" [label="3: Return Stmt \n n$0=*&__t:int& [line 2221, column 31]\n *&return:int&=n$0 [line 2221, column 5]\n " shape="box"] +"forward#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_3" [label="3: Return Stmt \n n$0=*&__t:int& [line 2305, column 31]\n *&return:int&=n$0 [line 2305, column 5]\n " shape="box"] "forward#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_3" -> "forward#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_2" ; diff --git a/infer/tests/codetoanalyze/cpp/shared/methods/conversion_operator.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/methods/conversion_operator.cpp.dot index 52ae1fdd1..5950b5abe 100644 --- a/infer/tests/codetoanalyze/cpp/shared/methods/conversion_operator.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/methods/conversion_operator.cpp.dot @@ -120,14 +120,14 @@ digraph cfg { "branch_no_div#conversion_operator#18429458682592639842.4c7cf0cc20989fd2ea431840e11b2521_10" -> "branch_no_div#conversion_operator#18429458682592639842.4c7cf0cc20989fd2ea431840e11b2521_5" ; -"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_1" [label="1: Start conversion_operator::y_branch_div0\nFormals: \nLocals: 0$?%__sil_tmp__temp_construct_n$0:conversion_operator::X 0$?%__sil_tmpSIL_materialize_temp__n$1:conversion_operator::X const 0$?%__sil_tmp__temp_construct_n$8:conversion_operator::X 0$?%__sil_tmpSIL_materialize_temp__n$9:conversion_operator::X const v:int 0$?%__sil_tmp__temp_construct_n$17:conversion_operator::X 0$?%__sil_tmpSIL_materialize_temp__n$18:conversion_operator::X const y:conversion_operator::Y \n " color=yellow style=filled] +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_1" [label="1: Start conversion_operator::y_branch_div0\nFormals: \nLocals: 0$?%__sil_tmpSIL_materialize_temp__n$1:conversion_operator::X const 0$?%__sil_tmpSIL_materialize_temp__n$0:conversion_operator::X 0$?%__sil_tmpSIL_materialize_temp__n$10:conversion_operator::X const 0$?%__sil_tmpSIL_materialize_temp__n$9:conversion_operator::X v:int 0$?%__sil_tmpSIL_materialize_temp__n$20:conversion_operator::X const 0$?%__sil_tmpSIL_materialize_temp__n$19:conversion_operator::X y:conversion_operator::Y \n " color=yellow style=filled] "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_1" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_12" ; "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_2" [label="2: Exit conversion_operator::y_branch_div0 \n " color=yellow style=filled] -"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_3" [label="3: Return Stmt \n _=*&y:conversion_operator::Y [line 49, column 13]\n n$4=_fun_conversion_operator::Y_operator_X(&y:conversion_operator::Y&,&0$?%__sil_tmpSIL_materialize_temp__n$1:conversion_operator::X*) [line 49, column 13]\n n$5=_fun_conversion_operator::X_X(&0$?%__sil_tmp__temp_construct_n$0:conversion_operator::X*,&0$?%__sil_tmpSIL_materialize_temp__n$1:conversion_operator::X const &) [line 49, column 10]\n n$6=_fun_conversion_operator::X_operator_int(&0$?%__sil_tmp__temp_construct_n$0:conversion_operator::X&) [line 49, column 10]\n *&return:int=n$6 [line 49, column 3]\n " shape="box"] +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_3" [label="3: Return Stmt \n _=*&y:conversion_operator::Y [line 49, column 13]\n n$4=_fun_conversion_operator::Y_operator_X(&y:conversion_operator::Y&,&0$?%__sil_tmpSIL_materialize_temp__n$1:conversion_operator::X*) [line 49, column 13]\n n$5=_fun_conversion_operator::X_X(&0$?%__sil_tmpSIL_materialize_temp__n$0:conversion_operator::X*,&0$?%__sil_tmpSIL_materialize_temp__n$1:conversion_operator::X const &) [line 49, column 10]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:conversion_operator::X [line 49, column 10]\n n$7=_fun_conversion_operator::X_operator_int(&0$?%__sil_tmpSIL_materialize_temp__n$0:conversion_operator::X&) [line 49, column 10]\n *&return:int=n$7 [line 49, column 3]\n " shape="box"] "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_3" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_2" ; @@ -135,24 +135,24 @@ digraph cfg { "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_4" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_3" ; -"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_5" [label="5: Call _fun_conversion_operator::X_operator_bool \n _=*&y:conversion_operator::Y [line 45, column 10]\n n$12=_fun_conversion_operator::Y_operator_X(&y:conversion_operator::Y&,&0$?%__sil_tmpSIL_materialize_temp__n$9:conversion_operator::X*) [line 45, column 10]\n n$13=_fun_conversion_operator::X_X(&0$?%__sil_tmp__temp_construct_n$8:conversion_operator::X*,&0$?%__sil_tmpSIL_materialize_temp__n$9:conversion_operator::X const &) [line 45, column 7]\n n$14=_fun_conversion_operator::X_operator_bool(&0$?%__sil_tmp__temp_construct_n$8:conversion_operator::X&) [line 45, column 7]\n " shape="box"] +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_5" [label="5: Call _fun_conversion_operator::X_operator_bool \n _=*&y:conversion_operator::Y [line 45, column 10]\n n$13=_fun_conversion_operator::Y_operator_X(&y:conversion_operator::Y&,&0$?%__sil_tmpSIL_materialize_temp__n$10:conversion_operator::X*) [line 45, column 10]\n n$14=_fun_conversion_operator::X_X(&0$?%__sil_tmpSIL_materialize_temp__n$9:conversion_operator::X*,&0$?%__sil_tmpSIL_materialize_temp__n$10:conversion_operator::X const &) [line 45, column 7]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$9:conversion_operator::X [line 45, column 7]\n n$16=_fun_conversion_operator::X_operator_bool(&0$?%__sil_tmpSIL_materialize_temp__n$9:conversion_operator::X&) [line 45, column 7]\n " shape="box"] "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_5" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_6" ; "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_5" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_7" ; -"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_6" [label="6: Prune (true branch, if) \n PRUNE(n$14, true); [line 45, column 7]\n " shape="invhouse"] +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_6" [label="6: Prune (true branch, if) \n PRUNE(n$16, true); [line 45, column 7]\n " shape="invhouse"] "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_6" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_9" ; -"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_7" [label="7: Prune (false branch, if) \n PRUNE(!n$14, false); [line 45, column 7]\n " shape="invhouse"] +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_7" [label="7: Prune (false branch, if) \n PRUNE(!n$16, false); [line 45, column 7]\n " shape="invhouse"] "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_7" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_4" ; -"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_8" [label="8: Return Stmt \n n$15=*&v:int [line 47, column 16]\n *&return:int=(1 / n$15) [line 47, column 5]\n " shape="box"] +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_8" [label="8: Return Stmt \n n$17=*&v:int [line 47, column 16]\n *&return:int=(1 / n$17) [line 47, column 5]\n " shape="box"] "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_8" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_2" ; -"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_9" [label="9: DeclStmt \n _=*&y:conversion_operator::Y [line 46, column 16]\n n$21=_fun_conversion_operator::Y_operator_X(&y:conversion_operator::Y&,&0$?%__sil_tmpSIL_materialize_temp__n$18:conversion_operator::X*) [line 46, column 16]\n n$22=_fun_conversion_operator::X_X(&0$?%__sil_tmp__temp_construct_n$17:conversion_operator::X*,&0$?%__sil_tmpSIL_materialize_temp__n$18:conversion_operator::X const &) [line 46, column 13]\n n$23=_fun_conversion_operator::X_operator_int(&0$?%__sil_tmp__temp_construct_n$17:conversion_operator::X&) [line 46, column 13]\n *&v:int=n$23 [line 46, column 5]\n " shape="box"] +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_9" [label="9: DeclStmt \n _=*&y:conversion_operator::Y [line 46, column 16]\n n$23=_fun_conversion_operator::Y_operator_X(&y:conversion_operator::Y&,&0$?%__sil_tmpSIL_materialize_temp__n$20:conversion_operator::X*) [line 46, column 16]\n n$24=_fun_conversion_operator::X_X(&0$?%__sil_tmpSIL_materialize_temp__n$19:conversion_operator::X*,&0$?%__sil_tmpSIL_materialize_temp__n$20:conversion_operator::X const &) [line 46, column 13]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$19:conversion_operator::X [line 46, column 13]\n n$26=_fun_conversion_operator::X_operator_int(&0$?%__sil_tmpSIL_materialize_temp__n$19:conversion_operator::X&) [line 46, column 13]\n *&v:int=n$26 [line 46, column 5]\n " shape="box"] "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_9" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_8" ; @@ -164,7 +164,7 @@ digraph cfg { "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_11" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_10" ; -"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_12" [label="12: DeclStmt \n n$26=_fun_conversion_operator::Y_Y(&y:conversion_operator::Y*) [line 42, column 5]\n " shape="box"] +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_12" [label="12: DeclStmt \n n$29=_fun_conversion_operator::Y_Y(&y:conversion_operator::Y*) [line 42, column 5]\n " shape="box"] "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_12" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_11" ; diff --git a/infer/tests/codetoanalyze/cpp/uninit/issues.exp b/infer/tests/codetoanalyze/cpp/uninit/issues.exp index 31bfcda7d..99ae6066a 100644 --- a/infer/tests/codetoanalyze/cpp/uninit/issues.exp +++ b/infer/tests/codetoanalyze/cpp/uninit/issues.exp @@ -13,6 +13,8 @@ codetoanalyze/cpp/uninit/uninit.cpp, FP_pointer_param_void_star_ok, 4, UNINITIAL codetoanalyze/cpp/uninit/uninit.cpp, bad1, 2, UNINITIALIZED_VALUE, no_bucket, ERROR, [] codetoanalyze/cpp/uninit/uninit.cpp, bad2, 2, UNINITIALIZED_VALUE, no_bucket, ERROR, [] codetoanalyze/cpp/uninit/uninit.cpp, branch1_FP, 11, UNINITIALIZED_VALUE, no_bucket, ERROR, [] +codetoanalyze/cpp/uninit/uninit.cpp, capture_by_ref_init2_FP, 4, UNINITIALIZED_VALUE, no_bucket, ERROR, [] +codetoanalyze/cpp/uninit/uninit.cpp, capture_by_ref_init_FP, 3, UNINITIALIZED_VALUE, no_bucket, ERROR, [] codetoanalyze/cpp/uninit/uninit.cpp, condition_no_init_bad, 2, UNINITIALIZED_VALUE, no_bucket, ERROR, [] codetoanalyze/cpp/uninit/uninit.cpp, copy_pointer_bad, 3, UNINITIALIZED_VALUE, no_bucket, ERROR, [] codetoanalyze/cpp/uninit/uninit.cpp, loop1_FP, 10, UNINITIALIZED_VALUE, no_bucket, ERROR, [] diff --git a/infer/tests/codetoanalyze/cpp/uninit/uninit.cpp b/infer/tests/codetoanalyze/cpp/uninit/uninit.cpp index 59359d7ab..6d0b5ba50 100644 --- a/infer/tests/codetoanalyze/cpp/uninit/uninit.cpp +++ b/infer/tests/codetoanalyze/cpp/uninit/uninit.cpp @@ -220,12 +220,19 @@ void FN_capture_by_ref_reuseBad() { }(); // We don't report here as we only do intraprocedural analysis for now } -int capture_by_ref_init_ok() { +int capture_by_ref_init_FP() { int x; [&x]() { x = 1; }(); return x; } +int capture_by_ref_init2_FP() { + int x; + auto lambda = [&x]() { x = 1; }; + lambda(); + return x; +} + int no_warning_on_throw_ok(bool t) { int x; if (t) {