[tests] Clean up test files shared between frontend and endtoend tests

Reviewed By: jberdine

Differential Revision: D3893900

fbshipit-source-id: 497effc
master
Cristiano Calcagno 8 years ago committed by Facebook Github Bot 4
parent 70670f5355
commit 847c141912

@ -7,27 +7,50 @@
include ../../Makefile.clang
OPTIONS = -x c++ -std=c++11 -isystem$(CLANG_INCLUDES)/c++/v1/ -c
OPTIONS = -x c++ -std=c++11 -isystem$(MODELS_DIR)/cpp/include -isystem$(CLANG_INCLUDES)/c++/v1/ -c
FILES = \
attributes/*.cpp \
conditional/*.cpp \
constructors/*.cpp \
c_tests/*.cpp \
exceptions/*.cpp \
include_header/header.h \
include_header/include_templ.cpp \
lambda/*.cpp \
memory_leaks/*.cpp \
methods/*.cpp \
models/*.cpp \
namespace/*.cpp \
nestedoperators/*.cpp \
npe/*.cpp \
numeric/*.cpp \
overwrite_attribute/*.cpp \
reference/*.cpp \
resource_leaks/*.cpp \
shared/attributes/*.cpp \
shared/conditional/*.cpp \
shared/constructors/constructor_init.cpp \
shared/constructors/constructor_new.cpp \
shared/constructors/constructor_with_body.cpp \
shared/constructors/copy_move_constructor.cpp \
shared/constructors/temp_object.cpp \
shared/exceptions/Exceptions.cpp \
shared/lambda/*.cpp \
shared/methods/conversion_operator.cpp \
shared/methods/static.cpp \
shared/namespace/function.cpp \
shared/namespace/global_variable.cpp \
shared/methods/virtual_methods.cpp \
shared/nestedoperators/var_decl_inside_if.cpp \
shared/npe/*.cpp \
shared/reference/reference_field.cpp \
shared/reference/reference_struct_e2e.cpp \
shared/reference/reference_type_e2e.cpp \
shared/reference/temporary_lvalue.cpp \
shared/templates/class_template_instantiate.cpp \
shared/templates/function.cpp \
shared/templates/function_pack.cpp \
shared/templates/method.cpp \
shared/types/inheritance_field.cpp \
shared/types/operator_overload.cpp \
shared/types/return_struct.cpp \
shared/types/struct_forward_declare.cpp \
shared/types/struct_pass_by_value.cpp \
shared/types/typeid_expr.cpp \
smart_ptr/*.cpp \
subtyping/*.cpp \
templates/*.cpp \

@ -1 +0,0 @@
../../frontend/attributes/deprecated_hack.cpp

@ -1 +0,0 @@
../../frontend/conditional/lvalue_conditional.cpp

@ -1 +0,0 @@
../../frontend/constructors/constructor_init.cpp

@ -1 +0,0 @@
../../frontend/constructors/constructor_new.cpp

@ -1 +0,0 @@
../../frontend/constructors/constructor_with_body.cpp

@ -1 +0,0 @@
../../frontend/constructors/copy_move_constructor.cpp

@ -1 +0,0 @@
../../frontend/constructors/temp_object.cpp

@ -1 +0,0 @@
../../frontend/exceptions/Exceptions.cpp

@ -9,6 +9,8 @@
#include "header2.h"
using namespace header2;
// instantiate templates to produce bug reports for them
void div0_B_int() {
B<int> b;

@ -1,12 +1,3 @@
attributes/deprecated_hack.cpp, derefFirstArg2_null_deref, 2, NULL_DEREFERENCE
attributes/deprecated_hack.cpp, derefFirstArg3_null_deref, 2, NULL_DEREFERENCE
attributes/deprecated_hack.cpp, derefFirstArg_null_deref, 2, NULL_DEREFERENCE
attributes/deprecated_hack.cpp, getPtr_null_deref1, 3, NULL_DEREFERENCE
attributes/deprecated_hack.cpp, getPtr_null_deref2, 3, NULL_DEREFERENCE
attributes/deprecated_hack.cpp, getRef_null_deref1, 3, NULL_DEREFERENCE
attributes/deprecated_hack.cpp, getRef_null_deref2, 3, NULL_DEREFERENCE
attributes/deprecated_hack.cpp, operator_star_null_deref1, 3, NULL_DEREFERENCE
attributes/deprecated_hack.cpp, operator_star_null_deref2, 3, NULL_DEREFERENCE
c_tests/c_bugs.cpp, crash_fgetc, 4, NULL_DEREFERENCE
c_tests/c_bugs.cpp, crash_getc, 4, NULL_DEREFERENCE
c_tests/c_bugs.cpp, malloc_fail_gets_reported, 2, NULL_DEREFERENCE
@ -14,94 +5,21 @@ c_tests/c_bugs.cpp, malloc_memory_leak_is_reported, 0, MEMORY_LEAK
c_tests/c_bugs.cpp, memcpy_spec_is_found, 3, NULL_DEREFERENCE
c_tests/c_bugs.cpp, resource_leak_is_reported, 0, RESOURCE_LEAK
c_tests/c_bugs.cpp, resource_leak_is_reported, 0, RETURN_VALUE_IGNORED
conditional/lvalue_conditional.cpp, div0_assign_conditional, 0, DIVIDE_BY_ZERO
conditional/lvalue_conditional.cpp, div0_choose_lvalue, 0, DIVIDE_BY_ZERO
conditional/lvalue_conditional.cpp, div0_choose_rvalue, 0, DIVIDE_BY_ZERO
conditional/lvalue_conditional.cpp, div0_temp_lvalue, 0, DIVIDE_BY_ZERO
constructors/constructor_init.cpp, delegate_constr_f2_div0, 3, DIVIDE_BY_ZERO
constructors/constructor_init.cpp, delegate_constr_f_div0, 3, DIVIDE_BY_ZERO
constructors/constructor_init.cpp, f2_div0, 2, DIVIDE_BY_ZERO
constructors/constructor_init.cpp, f_div0, 2, DIVIDE_BY_ZERO
constructors/constructor_init.cpp, t_div0, 2, DIVIDE_BY_ZERO
constructors/constructor_new.cpp, constructor_new::array_of_class_with_not_constant_size, 1, MEMORY_LEAK
constructors/constructor_new.cpp, constructor_new::array_of_person_with_constant_size, 0, MEMORY_LEAK
constructors/constructor_new.cpp, constructor_new::constructor_1_arg_new_div0, 2, DIVIDE_BY_ZERO
constructors/constructor_new.cpp, constructor_new::constructor_1_arg_new_div0, 2, MEMORY_LEAK
constructors/constructor_new.cpp, constructor_new::constructor_3_args_new_div0, 2, DIVIDE_BY_ZERO
constructors/constructor_new.cpp, constructor_new::constructor_3_args_new_div0, 2, MEMORY_LEAK
constructors/constructor_new.cpp, constructor_new::constructor_nodes, 3, DIVIDE_BY_ZERO
constructors/constructor_new.cpp, constructor_new::constructor_nodes, 3, MEMORY_LEAK
constructors/constructor_new.cpp, constructor_new::float_init_number, 2, DIVIDE_BY_ZERO
constructors/constructor_new.cpp, constructor_new::float_init_number, 2, MEMORY_LEAK
constructors/constructor_new.cpp, constructor_new::int_array, 4, DIVIDE_BY_ZERO
constructors/constructor_new.cpp, constructor_new::int_array, 4, MEMORY_LEAK
constructors/constructor_new.cpp, constructor_new::int_array_init, 2, DIVIDE_BY_ZERO
constructors/constructor_new.cpp, constructor_new::int_array_init, 2, MEMORY_LEAK
constructors/constructor_new.cpp, constructor_new::int_init_empty, 2, DIVIDE_BY_ZERO
constructors/constructor_new.cpp, constructor_new::int_init_empty, 2, MEMORY_LEAK
constructors/constructor_new.cpp, constructor_new::int_init_empty_list, 2, DIVIDE_BY_ZERO
constructors/constructor_new.cpp, constructor_new::int_init_empty_list_new, 2, DIVIDE_BY_ZERO
constructors/constructor_new.cpp, constructor_new::int_init_empty_list_new, 2, MEMORY_LEAK
constructors/constructor_new.cpp, constructor_new::int_init_nodes, 3, MEMORY_LEAK
constructors/constructor_new.cpp, constructor_new::int_init_nodes, 4, DIVIDE_BY_ZERO
constructors/constructor_new.cpp, constructor_new::int_init_nodes, 4, MEMORY_LEAK
constructors/constructor_new.cpp, constructor_new::int_init_number, 2, DIVIDE_BY_ZERO
constructors/constructor_new.cpp, constructor_new::int_init_number, 2, MEMORY_LEAK
constructors/constructor_new.cpp, constructor_new::matrix_of_person, 2, MEMORY_LEAK
constructors/constructor_with_body.cpp, constructor_with_body::test_div0, 2, DIVIDE_BY_ZERO
constructors/constructor_with_body.cpp, constructor_with_body::test_div0_default_constructor, 2, DIVIDE_BY_ZERO
constructors/copy_move_constructor.cpp, copy_move_constructor::copyX_div0, 4, DIVIDE_BY_ZERO
constructors/copy_move_constructor.cpp, copy_move_constructor::copyY_div0, 4, DIVIDE_BY_ZERO
constructors/copy_move_constructor.cpp, copy_move_constructor::moveX_div0, 0, DIVIDE_BY_ZERO
constructors/copy_move_constructor.cpp, copy_move_constructor::moveY_div0, 0, DIVIDE_BY_ZERO
constructors/copy_move_constructor.cpp, copy_move_constructor::moveY_moveY_copyY_div0, 3, DIVIDE_BY_ZERO
constructors/temp_object.cpp, temp_object::assign_temp_div0, 2, DIVIDE_BY_ZERO
constructors/temp_object.cpp, temp_object::getX_field_div0, 0, DIVIDE_BY_ZERO
constructors/temp_object.cpp, temp_object::getX_method_div0, 0, DIVIDE_BY_ZERO
constructors/temp_object.cpp, temp_object::temp_field2_div0, 0, DIVIDE_BY_ZERO
constructors/temp_object.cpp, temp_object::temp_field_div0, 0, DIVIDE_BY_ZERO
constructors/temp_object.cpp, temp_object::temp_method_div0, 0, DIVIDE_BY_ZERO
exceptions/Exceptions.cpp, call_deref_with_null, 0, NULL_DEREFERENCE
include_header/header.h, header::A_div0, 0, DIVIDE_BY_ZERO
include_header/header.h, header::div0_fun, 0, DIVIDE_BY_ZERO
include_header/header2.h, header2::B<A>_div0, 0, DIVIDE_BY_ZERO
include_header/header2.h, header2::B<int>_div0, 0, DIVIDE_BY_ZERO
include_header/header2.h, header2::div0_templ<A>, 1, DIVIDE_BY_ZERO
include_header/header2.h, header2::div0_templ<int>, 1, DIVIDE_BY_ZERO
lambda/lambda1.cpp, bar, 5, DIVIDE_BY_ZERO
lambda/lambda1.cpp, foo, 3, DIVIDE_BY_ZERO
lambda/lambda1.cpp, foo::lambda_lambda_lambda1.cpp:19:17_operator(), 0, DIVIDE_BY_ZERO
memory_leaks/array_leak.cpp, leak, 4, MEMORY_LEAK
memory_leaks/object_leak.cpp, object_leak, 0, MEMORY_LEAK
memory_leaks/raii_malloc.cpp, memory_leak, 0, MEMORY_LEAK
methods/conversion_operator.cpp, conversion_operator::branch_div0, 4, DIVIDE_BY_ZERO
methods/conversion_operator.cpp, conversion_operator::y_branch_div0, 6, DIVIDE_BY_ZERO
methods/static.cpp, div0_class, 0, DIVIDE_BY_ZERO
methods/static.cpp, div0_instance, 2, DIVIDE_BY_ZERO
methods/virtual_methods.cpp, poly_area, 3, DIVIDE_BY_ZERO
methods/virtual_methods.cpp, rect_area, 4, DIVIDE_BY_ZERO
methods/virtual_methods.cpp, tri_area, 5, DIVIDE_BY_ZERO
methods/virtual_methods.cpp, tri_not_virtual_area, 5, DIVIDE_BY_ZERO
models/move.cpp, move::div0_moved_from, 3, DIVIDE_BY_ZERO
models/move.cpp, move::div0_moved_to, 3, DIVIDE_BY_ZERO
namespace/function.cpp, div0_namespace_resolution, 0, DIVIDE_BY_ZERO
namespace/function.cpp, div0_using, 2, DIVIDE_BY_ZERO
namespace/global_variable.cpp, div0_namepace_res, 3, DIVIDE_BY_ZERO
namespace/global_variable.cpp, div0_static_field, 3, DIVIDE_BY_ZERO
namespace/global_variable.cpp, div0_static_field_member_access, 3, DIVIDE_BY_ZERO
nestedoperators/var_decl_inside_if.cpp, conditional_init_div0, 2, DIVIDE_BY_ZERO
nestedoperators/var_decl_inside_if.cpp, function_call_init_div0, 2, DIVIDE_BY_ZERO
nestedoperators/var_decl_inside_if.cpp, reference_init_div0, 5, DIVIDE_BY_ZERO
nestedoperators/var_decl_inside_if.cpp, simple_inif_elseif_div0, 6, DIVIDE_BY_ZERO
nestedoperators/var_decl_inside_if.cpp, simple_init_div0, 4, DIVIDE_BY_ZERO
nestedoperators/var_decl_inside_if.cpp, simple_init_null_deref, 4, NULL_DEREFERENCE
npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_null_field_deref, 2, NULL_DEREFERENCE
npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_null_method_deref, 2, NULL_DEREFERENCE
npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_null_method_deref2, 2, NULL_DEREFERENCE
npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_result_method_null_deref, 4, NULL_DEREFERENCE
npe/method_call.cpp, npe_call, 2, NULL_DEREFERENCE
npe/method_call.cpp, npe_call_after_call, 0, NULL_DEREFERENCE
npe/method_call.cpp, npe_call_with_forward_declaration, 1, NULL_DEREFERENCE
npe/npe_added_to_b1.cpp, npe_added_to_b1::causes_npe, 2, NULL_DEREFERENCE
npe/npe_added_to_b1.cpp, npe_added_to_b1::causes_npe_person, 2, NULL_DEREFERENCE
npe/null_returned_by_method.cpp, testNullDeref, 3, NULL_DEREFERENCE
@ -117,37 +35,170 @@ numeric/min_max.cpp, max_int_div0, 0, DIVIDE_BY_ZERO
numeric/min_max.cpp, min_X_div0, 2, DIVIDE_BY_ZERO
numeric/min_max.cpp, min_int_div0, 0, DIVIDE_BY_ZERO
overwrite_attribute/main.cpp, testSetIntValue, 3, DIVIDE_BY_ZERO
reference/reference_field.cpp, reference_field::ptr_F_div0, 5, DIVIDE_BY_ZERO
reference/reference_field.cpp, reference_field::ptr_I_div0, 5, DIVIDE_BY_ZERO
reference/reference_field.cpp, reference_field::ptr_getF_div0, 5, DIVIDE_BY_ZERO
reference/reference_field.cpp, reference_field::ptr_getI_div0, 5, DIVIDE_BY_ZERO
reference/reference_field.cpp, reference_field::ref_F_div0, 5, DIVIDE_BY_ZERO
reference/reference_field.cpp, reference_field::ref_I_div0, 5, DIVIDE_BY_ZERO
reference/reference_field.cpp, reference_field::ref_getF_div0, 5, DIVIDE_BY_ZERO
reference/reference_field.cpp, reference_field::ref_getI_div0, 5, DIVIDE_BY_ZERO
reference/reference_field.cpp, reference_field::val_F_div0, 5, DIVIDE_BY_ZERO
reference/reference_field.cpp, reference_field::val_I_div0, 5, DIVIDE_BY_ZERO
reference/reference_field.cpp, reference_field::val_getF_div0, 5, DIVIDE_BY_ZERO
reference/reference_field.cpp, reference_field::val_getI_div0, 5, DIVIDE_BY_ZERO
reference/reference_struct_e2e.cpp, field_div0_ptr, 3, DIVIDE_BY_ZERO
reference/reference_struct_e2e.cpp, field_div0_ref, 2, DIVIDE_BY_ZERO
reference/reference_struct_e2e.cpp, get_global_ptr_div0_field, 3, DIVIDE_BY_ZERO
reference/reference_struct_e2e.cpp, get_global_ptr_div0_method, 3, DIVIDE_BY_ZERO
reference/reference_struct_e2e.cpp, get_global_ref_div0_field, 3, DIVIDE_BY_ZERO
reference/reference_struct_e2e.cpp, get_global_ref_div0_method, 3, DIVIDE_BY_ZERO
reference/reference_struct_e2e.cpp, method_div0_ptr, 3, DIVIDE_BY_ZERO
reference/reference_struct_e2e.cpp, method_div0_ref, 2, DIVIDE_BY_ZERO
reference/reference_type_e2e.cpp, ptr_div0, 4, DIVIDE_BY_ZERO
reference/reference_type_e2e.cpp, ptr_div0_function, 3, DIVIDE_BY_ZERO
reference/reference_type_e2e.cpp, ptr_div0_function_temp_var, 4, DIVIDE_BY_ZERO
reference/reference_type_e2e.cpp, ref_div0, 4, DIVIDE_BY_ZERO
reference/reference_type_e2e.cpp, ref_div0_function, 3, DIVIDE_BY_ZERO
reference/reference_type_e2e.cpp, ref_div0_function_temp_var, 4, DIVIDE_BY_ZERO
reference/reference_type_e2e.cpp, ref_div0_nested_assignment, 6, DIVIDE_BY_ZERO
reference/temporary_lvalue.cpp, div0_function_param_cast, 0, DIVIDE_BY_ZERO
reference/temporary_lvalue.cpp, div0_init_expr, 2, DIVIDE_BY_ZERO
reference/temporary_lvalue.cpp, div0_no_const_ref, 2, DIVIDE_BY_ZERO
resource_leaks/raii.cpp, resource_leak, 7, RESOURCE_LEAK
shared/attributes/deprecated_hack.cpp, derefFirstArg2_null_deref, 2, NULL_DEREFERENCE
shared/attributes/deprecated_hack.cpp, derefFirstArg3_null_deref, 2, NULL_DEREFERENCE
shared/attributes/deprecated_hack.cpp, derefFirstArg_null_deref, 2, NULL_DEREFERENCE
shared/attributes/deprecated_hack.cpp, getPtr_null_deref1, 3, NULL_DEREFERENCE
shared/attributes/deprecated_hack.cpp, getPtr_null_deref2, 3, NULL_DEREFERENCE
shared/attributes/deprecated_hack.cpp, getRef_null_deref1, 3, NULL_DEREFERENCE
shared/attributes/deprecated_hack.cpp, getRef_null_deref2, 3, NULL_DEREFERENCE
shared/attributes/deprecated_hack.cpp, operator_star_null_deref1, 3, NULL_DEREFERENCE
shared/attributes/deprecated_hack.cpp, operator_star_null_deref2, 3, NULL_DEREFERENCE
shared/conditional/lvalue_conditional.cpp, div0_assign_conditional, 0, DIVIDE_BY_ZERO
shared/conditional/lvalue_conditional.cpp, div0_choose_lvalue, 0, DIVIDE_BY_ZERO
shared/conditional/lvalue_conditional.cpp, div0_choose_rvalue, 0, DIVIDE_BY_ZERO
shared/conditional/lvalue_conditional.cpp, div0_temp_lvalue, 0, DIVIDE_BY_ZERO
shared/constructors/constructor_init.cpp, delegate_constr_f2_div0, 3, DIVIDE_BY_ZERO
shared/constructors/constructor_init.cpp, delegate_constr_f_div0, 3, DIVIDE_BY_ZERO
shared/constructors/constructor_init.cpp, f2_div0, 2, DIVIDE_BY_ZERO
shared/constructors/constructor_init.cpp, f_div0, 2, DIVIDE_BY_ZERO
shared/constructors/constructor_init.cpp, t_div0, 2, DIVIDE_BY_ZERO
shared/constructors/constructor_new.cpp, constructor_new::array_of_class_with_not_constant_size, 1, MEMORY_LEAK
shared/constructors/constructor_new.cpp, constructor_new::array_of_person_with_constant_size, 0, MEMORY_LEAK
shared/constructors/constructor_new.cpp, constructor_new::constructor_1_arg_new_div0, 2, DIVIDE_BY_ZERO
shared/constructors/constructor_new.cpp, constructor_new::constructor_1_arg_new_div0, 2, MEMORY_LEAK
shared/constructors/constructor_new.cpp, constructor_new::constructor_3_args_new_div0, 2, DIVIDE_BY_ZERO
shared/constructors/constructor_new.cpp, constructor_new::constructor_3_args_new_div0, 2, MEMORY_LEAK
shared/constructors/constructor_new.cpp, constructor_new::constructor_nodes, 3, DIVIDE_BY_ZERO
shared/constructors/constructor_new.cpp, constructor_new::constructor_nodes, 3, MEMORY_LEAK
shared/constructors/constructor_new.cpp, constructor_new::float_init_number, 2, DIVIDE_BY_ZERO
shared/constructors/constructor_new.cpp, constructor_new::float_init_number, 2, MEMORY_LEAK
shared/constructors/constructor_new.cpp, constructor_new::int_array, 4, DIVIDE_BY_ZERO
shared/constructors/constructor_new.cpp, constructor_new::int_array, 4, MEMORY_LEAK
shared/constructors/constructor_new.cpp, constructor_new::int_array_init, 2, DIVIDE_BY_ZERO
shared/constructors/constructor_new.cpp, constructor_new::int_array_init, 2, MEMORY_LEAK
shared/constructors/constructor_new.cpp, constructor_new::int_init_empty, 2, DIVIDE_BY_ZERO
shared/constructors/constructor_new.cpp, constructor_new::int_init_empty, 2, MEMORY_LEAK
shared/constructors/constructor_new.cpp, constructor_new::int_init_empty_list, 2, DIVIDE_BY_ZERO
shared/constructors/constructor_new.cpp, constructor_new::int_init_empty_list_new, 2, DIVIDE_BY_ZERO
shared/constructors/constructor_new.cpp, constructor_new::int_init_empty_list_new, 2, MEMORY_LEAK
shared/constructors/constructor_new.cpp, constructor_new::int_init_nodes, 3, MEMORY_LEAK
shared/constructors/constructor_new.cpp, constructor_new::int_init_nodes, 4, DIVIDE_BY_ZERO
shared/constructors/constructor_new.cpp, constructor_new::int_init_nodes, 4, MEMORY_LEAK
shared/constructors/constructor_new.cpp, constructor_new::int_init_number, 2, DIVIDE_BY_ZERO
shared/constructors/constructor_new.cpp, constructor_new::int_init_number, 2, MEMORY_LEAK
shared/constructors/constructor_new.cpp, constructor_new::matrix_of_person, 2, MEMORY_LEAK
shared/constructors/constructor_with_body.cpp, constructor_with_body::test_div0, 2, DIVIDE_BY_ZERO
shared/constructors/constructor_with_body.cpp, constructor_with_body::test_div0_default_constructor, 2, DIVIDE_BY_ZERO
shared/constructors/copy_move_constructor.cpp, copy_move_constructor::copyX_div0, 4, DIVIDE_BY_ZERO
shared/constructors/copy_move_constructor.cpp, copy_move_constructor::copyY_div0, 4, DIVIDE_BY_ZERO
shared/constructors/copy_move_constructor.cpp, copy_move_constructor::moveX_div0, 0, DIVIDE_BY_ZERO
shared/constructors/copy_move_constructor.cpp, copy_move_constructor::moveY_div0, 0, DIVIDE_BY_ZERO
shared/constructors/copy_move_constructor.cpp, copy_move_constructor::moveY_moveY_copyY_div0, 3, DIVIDE_BY_ZERO
shared/constructors/temp_object.cpp, temp_object::assign_temp_div0, 2, DIVIDE_BY_ZERO
shared/constructors/temp_object.cpp, temp_object::getX_field_div0, 0, DIVIDE_BY_ZERO
shared/constructors/temp_object.cpp, temp_object::getX_method_div0, 0, DIVIDE_BY_ZERO
shared/constructors/temp_object.cpp, temp_object::temp_field2_div0, 0, DIVIDE_BY_ZERO
shared/constructors/temp_object.cpp, temp_object::temp_field_div0, 0, DIVIDE_BY_ZERO
shared/constructors/temp_object.cpp, temp_object::temp_method_div0, 0, DIVIDE_BY_ZERO
shared/exceptions/Exceptions.cpp, call_deref_with_null, 0, NULL_DEREFERENCE
shared/lambda/lambda1.cpp, bar, 5, DIVIDE_BY_ZERO
shared/lambda/lambda1.cpp, foo, 3, DIVIDE_BY_ZERO
shared/lambda/lambda1.cpp, foo::lambda_shared_lambda_lambda1.cpp:19:17_operator(), 0, DIVIDE_BY_ZERO
shared/methods/conversion_operator.cpp, conversion_operator::branch_div0, 4, DIVIDE_BY_ZERO
shared/methods/conversion_operator.cpp, conversion_operator::y_branch_div0, 6, DIVIDE_BY_ZERO
shared/methods/static.cpp, div0_class, 0, DIVIDE_BY_ZERO
shared/methods/static.cpp, div0_instance, 2, DIVIDE_BY_ZERO
shared/methods/virtual_methods.cpp, poly_area, 3, DIVIDE_BY_ZERO
shared/methods/virtual_methods.cpp, rect_area, 4, DIVIDE_BY_ZERO
shared/methods/virtual_methods.cpp, tri_area, 5, DIVIDE_BY_ZERO
shared/methods/virtual_methods.cpp, tri_not_virtual_area, 5, DIVIDE_BY_ZERO
shared/namespace/function.cpp, div0_namespace_resolution, 0, DIVIDE_BY_ZERO
shared/namespace/function.cpp, div0_using, 2, DIVIDE_BY_ZERO
shared/namespace/global_variable.cpp, div0_namepace_res, 3, DIVIDE_BY_ZERO
shared/namespace/global_variable.cpp, div0_static_field, 3, DIVIDE_BY_ZERO
shared/namespace/global_variable.cpp, div0_static_field_member_access, 3, DIVIDE_BY_ZERO
shared/nestedoperators/var_decl_inside_if.cpp, conditional_init_div0, 2, DIVIDE_BY_ZERO
shared/nestedoperators/var_decl_inside_if.cpp, function_call_init_div0, 2, DIVIDE_BY_ZERO
shared/nestedoperators/var_decl_inside_if.cpp, reference_init_div0, 5, DIVIDE_BY_ZERO
shared/nestedoperators/var_decl_inside_if.cpp, simple_inif_elseif_div0, 6, DIVIDE_BY_ZERO
shared/nestedoperators/var_decl_inside_if.cpp, simple_init_div0, 4, DIVIDE_BY_ZERO
shared/nestedoperators/var_decl_inside_if.cpp, simple_init_null_deref, 4, NULL_DEREFERENCE
shared/npe/method_call.cpp, npe_call, 2, NULL_DEREFERENCE
shared/npe/method_call.cpp, npe_call_after_call, 0, NULL_DEREFERENCE
shared/npe/method_call.cpp, npe_call_with_forward_declaration, 1, NULL_DEREFERENCE
shared/reference/reference_field.cpp, reference_field::ptr_F_div0, 5, DIVIDE_BY_ZERO
shared/reference/reference_field.cpp, reference_field::ptr_I_div0, 5, DIVIDE_BY_ZERO
shared/reference/reference_field.cpp, reference_field::ptr_getF_div0, 5, DIVIDE_BY_ZERO
shared/reference/reference_field.cpp, reference_field::ptr_getI_div0, 5, DIVIDE_BY_ZERO
shared/reference/reference_field.cpp, reference_field::ref_F_div0, 5, DIVIDE_BY_ZERO
shared/reference/reference_field.cpp, reference_field::ref_I_div0, 5, DIVIDE_BY_ZERO
shared/reference/reference_field.cpp, reference_field::ref_getF_div0, 5, DIVIDE_BY_ZERO
shared/reference/reference_field.cpp, reference_field::ref_getI_div0, 5, DIVIDE_BY_ZERO
shared/reference/reference_field.cpp, reference_field::val_F_div0, 5, DIVIDE_BY_ZERO
shared/reference/reference_field.cpp, reference_field::val_I_div0, 5, DIVIDE_BY_ZERO
shared/reference/reference_field.cpp, reference_field::val_getF_div0, 5, DIVIDE_BY_ZERO
shared/reference/reference_field.cpp, reference_field::val_getI_div0, 5, DIVIDE_BY_ZERO
shared/reference/reference_struct_e2e.cpp, field_div0_ptr, 3, DIVIDE_BY_ZERO
shared/reference/reference_struct_e2e.cpp, field_div0_ref, 2, DIVIDE_BY_ZERO
shared/reference/reference_struct_e2e.cpp, get_global_ptr_div0_field, 3, DIVIDE_BY_ZERO
shared/reference/reference_struct_e2e.cpp, get_global_ptr_div0_method, 3, DIVIDE_BY_ZERO
shared/reference/reference_struct_e2e.cpp, get_global_ref_div0_field, 3, DIVIDE_BY_ZERO
shared/reference/reference_struct_e2e.cpp, get_global_ref_div0_method, 3, DIVIDE_BY_ZERO
shared/reference/reference_struct_e2e.cpp, method_div0_ptr, 3, DIVIDE_BY_ZERO
shared/reference/reference_struct_e2e.cpp, method_div0_ref, 2, DIVIDE_BY_ZERO
shared/reference/reference_type_e2e.cpp, ptr_div0, 4, DIVIDE_BY_ZERO
shared/reference/reference_type_e2e.cpp, ptr_div0_function, 3, DIVIDE_BY_ZERO
shared/reference/reference_type_e2e.cpp, ptr_div0_function_temp_var, 4, DIVIDE_BY_ZERO
shared/reference/reference_type_e2e.cpp, ref_div0, 4, DIVIDE_BY_ZERO
shared/reference/reference_type_e2e.cpp, ref_div0_function, 3, DIVIDE_BY_ZERO
shared/reference/reference_type_e2e.cpp, ref_div0_function_temp_var, 4, DIVIDE_BY_ZERO
shared/reference/reference_type_e2e.cpp, ref_div0_nested_assignment, 6, DIVIDE_BY_ZERO
shared/reference/temporary_lvalue.cpp, div0_function_param_cast, 0, DIVIDE_BY_ZERO
shared/reference/temporary_lvalue.cpp, div0_init_expr, 2, DIVIDE_BY_ZERO
shared/reference/temporary_lvalue.cpp, div0_no_const_ref, 2, DIVIDE_BY_ZERO
shared/templates/class_template_instantiate.cpp, ExecStore<Choose2>_call_div, 2, DIVIDE_BY_ZERO
shared/templates/class_template_instantiate.cpp, choose1_div0, 0, DIVIDE_BY_ZERO
shared/templates/class_template_instantiate.cpp, choose2_div0_extra, 0, DIVIDE_BY_ZERO
shared/templates/function.cpp, function::createAndDiv<X3>, 1, DIVIDE_BY_ZERO
shared/templates/function.cpp, function::div0_create_and_get_val, 1, DIVIDE_BY_ZERO
shared/templates/function.cpp, function::div0_get_val, 3, DIVIDE_BY_ZERO
shared/templates/function_pack.cpp, div0_10args, 0, DIVIDE_BY_ZERO
shared/templates/function_pack.cpp, div0_1arg, 0, DIVIDE_BY_ZERO
shared/templates/function_pack.cpp, div0_3args1, 0, DIVIDE_BY_ZERO
shared/templates/function_pack.cpp, div0_3args2, 0, DIVIDE_BY_ZERO
shared/templates/function_pack.cpp, div0_3args3, 0, DIVIDE_BY_ZERO
shared/templates/function_pack.cpp, div0_3args4, 0, DIVIDE_BY_ZERO
shared/templates/method.cpp, method::div0_getter, 3, DIVIDE_BY_ZERO
shared/templates/method.cpp, method::div0_getter_templ, 4, DIVIDE_BY_ZERO
shared/templates/method.cpp, method::div0_getter_templ2, 4, DIVIDE_BY_ZERO
shared/types/inheritance_field.cpp, div0_b1, 2, DIVIDE_BY_ZERO
shared/types/inheritance_field.cpp, div0_b1_s, 3, DIVIDE_BY_ZERO
shared/types/inheritance_field.cpp, div0_b2, 2, DIVIDE_BY_ZERO
shared/types/inheritance_field.cpp, div0_cast, 3, DIVIDE_BY_ZERO
shared/types/inheritance_field.cpp, div0_cast_ref, 3, DIVIDE_BY_ZERO
shared/types/inheritance_field.cpp, div0_s, 2, DIVIDE_BY_ZERO
shared/types/inheritance_field.cpp, div0_s_b1, 3, DIVIDE_BY_ZERO
shared/types/operator_overload.cpp, div0_function_op, 3, DIVIDE_BY_ZERO
shared/types/operator_overload.cpp, div0_inheritted_op, 2, DIVIDE_BY_ZERO
shared/types/operator_overload.cpp, div0_method, 3, DIVIDE_BY_ZERO
shared/types/operator_overload.cpp, div0_method_op, 3, DIVIDE_BY_ZERO
shared/types/operator_overload.cpp, div0_method_op_ptr, 0, DIVIDE_BY_ZERO
shared/types/return_struct.cpp, return_struct::get_div0, 2, DIVIDE_BY_ZERO
shared/types/return_struct.cpp, return_struct::get_field_div0, 2, DIVIDE_BY_ZERO
shared/types/return_struct.cpp, return_struct::get_method_div0, 0, DIVIDE_BY_ZERO
shared/types/struct_forward_declare.cpp, struct_forward_declare::X_Y_div0, 7, DIVIDE_BY_ZERO
shared/types/struct_forward_declare.cpp, struct_forward_declare::X_div0, 3, DIVIDE_BY_ZERO
shared/types/struct_forward_declare.cpp, struct_forward_declare::X_ptr_div0, 2, DIVIDE_BY_ZERO
shared/types/struct_forward_declare.cpp, struct_forward_declare::Z_div0, 3, DIVIDE_BY_ZERO
shared/types/struct_forward_declare.cpp, struct_forward_declare::Z_ptr_div0, 5, DIVIDE_BY_ZERO
shared/types/struct_pass_by_value.cpp, struct_pass_by_value::field_div0, 3, DIVIDE_BY_ZERO
shared/types/struct_pass_by_value.cpp, struct_pass_by_value::param_get_copied_div0, 3, DIVIDE_BY_ZERO
shared/types/struct_pass_by_value.cpp, struct_pass_by_value::temp_div0, 0, DIVIDE_BY_ZERO
shared/types/struct_pass_by_value.cpp, struct_pass_by_value::var_div0, 2, DIVIDE_BY_ZERO
shared/types/typeid_expr.cpp, employee_typeid, 3, MEMORY_LEAK
shared/types/typeid_expr.cpp, employee_typeid, 4, DIVIDE_BY_ZERO
shared/types/typeid_expr.cpp, person_ptr_typeid, 2, MEMORY_LEAK
shared/types/typeid_expr.cpp, person_ptr_typeid, 3, DIVIDE_BY_ZERO
shared/types/typeid_expr.cpp, person_typeid, 3, MEMORY_LEAK
shared/types/typeid_expr.cpp, person_typeid, 6, DIVIDE_BY_ZERO
shared/types/typeid_expr.cpp, person_typeid_name, 3, MEMORY_LEAK
shared/types/typeid_expr.cpp, person_typeid_name, 4, MEMORY_LEAK
shared/types/typeid_expr.cpp, person_typeid_name, 8, DIVIDE_BY_ZERO
shared/types/typeid_expr.cpp, template_type_id_person, 2, MEMORY_LEAK
shared/types/typeid_expr.cpp, template_type_id_person, 5, DIVIDE_BY_ZERO
shared/types/typeid_expr.cpp, template_typeid<Person>, 2, MEMORY_LEAK
smart_ptr/deref_after_move_example.cpp, deref_after_mode_example::deref_after_move_crash, 4, NULL_DEREFERENCE
smart_ptr/deref_after_move_example.cpp, deref_after_mode_example::deref_after_move_ok, 4, MEMORY_LEAK
smart_ptr/deref_after_move_example.cpp, deref_after_mode_example::deref_ok, 3, MEMORY_LEAK
@ -210,57 +261,6 @@ subtyping/dynamic_cast.cpp, dynamic__cast::wrongPointerCast, 6, DIVIDE_BY_ZERO
subtyping/dynamic_cast.cpp, dynamic__cast::wrongReferenceCast, 3, CLASS_CAST_EXCEPTION
subtyping/dynamic_cast.cpp, dynamic__cast::wrongReferenceCastNotAssigned, 3, CLASS_CAST_EXCEPTION
subtyping/subtyping_check.cpp, B_setFG, 4, DIVIDE_BY_ZERO
templates/class_template_instantiate.cpp, ExecStore<Choose2>_call_div, 2, DIVIDE_BY_ZERO
templates/class_template_instantiate.cpp, choose1_div0, 0, DIVIDE_BY_ZERO
templates/class_template_instantiate.cpp, choose2_div0_extra, 0, DIVIDE_BY_ZERO
templates/function.cpp, function::createAndDiv<X3>, 1, DIVIDE_BY_ZERO
templates/function.cpp, function::div0_create_and_get_val, 1, DIVIDE_BY_ZERO
templates/function.cpp, function::div0_get_val, 3, DIVIDE_BY_ZERO
templates/function_pack.cpp, div0_10args, 0, DIVIDE_BY_ZERO
templates/function_pack.cpp, div0_1arg, 0, DIVIDE_BY_ZERO
templates/function_pack.cpp, div0_3args1, 0, DIVIDE_BY_ZERO
templates/function_pack.cpp, div0_3args2, 0, DIVIDE_BY_ZERO
templates/function_pack.cpp, div0_3args3, 0, DIVIDE_BY_ZERO
templates/function_pack.cpp, div0_3args4, 0, DIVIDE_BY_ZERO
templates/method.cpp, method::div0_getter, 3, DIVIDE_BY_ZERO
templates/method.cpp, method::div0_getter_templ, 4, DIVIDE_BY_ZERO
templates/method.cpp, method::div0_getter_templ2, 4, DIVIDE_BY_ZERO
types/inheritance_field.cpp, div0_b1, 2, DIVIDE_BY_ZERO
types/inheritance_field.cpp, div0_b1_s, 3, DIVIDE_BY_ZERO
types/inheritance_field.cpp, div0_b2, 2, DIVIDE_BY_ZERO
types/inheritance_field.cpp, div0_cast, 3, DIVIDE_BY_ZERO
types/inheritance_field.cpp, div0_cast_ref, 3, DIVIDE_BY_ZERO
types/inheritance_field.cpp, div0_s, 2, DIVIDE_BY_ZERO
types/inheritance_field.cpp, div0_s_b1, 3, DIVIDE_BY_ZERO
types/operator_overload.cpp, div0_function_op, 3, DIVIDE_BY_ZERO
types/operator_overload.cpp, div0_inheritted_op, 2, DIVIDE_BY_ZERO
types/operator_overload.cpp, div0_method, 3, DIVIDE_BY_ZERO
types/operator_overload.cpp, div0_method_op, 3, DIVIDE_BY_ZERO
types/operator_overload.cpp, div0_method_op_ptr, 0, DIVIDE_BY_ZERO
types/return_struct.cpp, return_struct::get_div0, 2, DIVIDE_BY_ZERO
types/return_struct.cpp, return_struct::get_field_div0, 2, DIVIDE_BY_ZERO
types/return_struct.cpp, return_struct::get_method_div0, 0, DIVIDE_BY_ZERO
types/struct_forward_declare.cpp, struct_forward_declare::X_Y_div0, 7, DIVIDE_BY_ZERO
types/struct_forward_declare.cpp, struct_forward_declare::X_div0, 3, DIVIDE_BY_ZERO
types/struct_forward_declare.cpp, struct_forward_declare::X_ptr_div0, 2, DIVIDE_BY_ZERO
types/struct_forward_declare.cpp, struct_forward_declare::Z_div0, 3, DIVIDE_BY_ZERO
types/struct_forward_declare.cpp, struct_forward_declare::Z_ptr_div0, 5, DIVIDE_BY_ZERO
types/struct_pass_by_value.cpp, struct_pass_by_value::field_div0, 3, DIVIDE_BY_ZERO
types/struct_pass_by_value.cpp, struct_pass_by_value::param_get_copied_div0, 3, DIVIDE_BY_ZERO
types/struct_pass_by_value.cpp, struct_pass_by_value::temp_div0, 0, DIVIDE_BY_ZERO
types/struct_pass_by_value.cpp, struct_pass_by_value::var_div0, 2, DIVIDE_BY_ZERO
types/typeid_expr.cpp, employee_typeid, 3, MEMORY_LEAK
types/typeid_expr.cpp, employee_typeid, 4, DIVIDE_BY_ZERO
types/typeid_expr.cpp, person_ptr_typeid, 2, MEMORY_LEAK
types/typeid_expr.cpp, person_ptr_typeid, 3, DIVIDE_BY_ZERO
types/typeid_expr.cpp, person_typeid, 3, MEMORY_LEAK
types/typeid_expr.cpp, person_typeid, 6, DIVIDE_BY_ZERO
types/typeid_expr.cpp, person_typeid_name, 3, MEMORY_LEAK
types/typeid_expr.cpp, person_typeid_name, 4, MEMORY_LEAK
types/typeid_expr.cpp, person_typeid_name, 8, DIVIDE_BY_ZERO
types/typeid_expr.cpp, template_type_id_person, 2, MEMORY_LEAK
types/typeid_expr.cpp, template_type_id_person, 5, DIVIDE_BY_ZERO
types/typeid_expr.cpp, template_typeid<Person>, 2, MEMORY_LEAK
vector/empty_access.cpp, access_empty, 2, EMPTY_VECTOR_ACCESS
vector/empty_access.cpp, assign_empty, 4, EMPTY_VECTOR_ACCESS
vector/empty_access.cpp, clear_empty, 3, EMPTY_VECTOR_ACCESS

@ -1 +0,0 @@
../../frontend/lambda/lambda1.cpp

@ -1 +0,0 @@
../../frontend/methods/conversion_operator.cpp

@ -1 +0,0 @@
../../frontend/methods/static.cpp

@ -1 +0,0 @@
../../frontend/methods/virtual_methods.cpp

@ -1 +0,0 @@
../../frontend/namespace/function.cpp

@ -1 +0,0 @@
../../frontend/namespace/global_variable.cpp

@ -1 +0,0 @@
../../frontend/nestedoperators/var_decl_inside_if.cpp

@ -1 +0,0 @@
../../frontend/reference/reference_field.cpp

@ -1 +0,0 @@
../../frontend/reference/reference_struct_e2e.cpp

@ -1 +0,0 @@
../../frontend/reference/reference_type_e2e.cpp

@ -1 +0,0 @@
../../frontend/reference/temporary_lvalue.cpp

@ -1,149 +0,0 @@
/* @generated */
digraph iCFG {
38 [label="38: DeclStmt \n _fun_cast_with_enforce::Base_Base(&base:class cast_with_enforce::Base *) [line 54]\n " shape="box"]
38 -> 37 ;
37 [label="37: DeclStmt \n n$2=_fun___cast(&base:class cast_with_enforce::Base *,sizeof(class cast_with_enforce::Derived ( sub )(cast)):void ) [line 55]\n *&derived:class cast_with_enforce::Derived *=n$2 [line 55]\n " shape="box"]
37 -> 36 ;
36 [label="36: Return Stmt \n n$0=*&derived:class cast_with_enforce::Derived * [line 56]\n n$1=*n$0.a:int [line 56]\n *&return:int =n$1 [line 56]\n " shape="box"]
36 -> 35 ;
35 [label="35: Exit cast_with_enforce::cast_with_npe \n " color=yellow style=filled]
34 [label="34: Start cast_with_enforce::cast_with_npe\nFormals: \nLocals: derived:class cast_with_enforce::Derived * base:class cast_with_enforce::Base \n DECLARE_LOCALS(&return,&derived,&base); [line 53]\n " color=yellow style=filled]
34 -> 38 ;
33 [label="33: DeclStmt \n _fun_cast_with_enforce::Base_Base(&base:class cast_with_enforce::Base *) [line 46]\n " shape="box"]
33 -> 32 ;
32 [label="32: DeclStmt \n n$10=_fun___cast(&base:class cast_with_enforce::Base *,sizeof(class cast_with_enforce::Derived ( sub )(cast)):void ) [line 47]\n *&derived:class cast_with_enforce::Derived *=n$10 [line 47]\n " shape="box"]
32 -> 31 ;
31 [label="31: DeclStmt \n *&_tmp:class cast_with_enforce::Derived *&=&derived [line 48]\n " shape="box"]
31 -> 27 ;
31 -> 28 ;
30 [label="30: ConditinalStmt Branch \n _fun_cast_with_enforce::WrongParameterException_WrongParameterException(&0$?%__sil_tmpSIL_materialize_temp__n$7:class cast_with_enforce::WrongParameterException *,\"derived\":_Bool ,\"Base is not Derived\":char *) [line 48]\n _fun_cast_with_enforce::WrongParameterException_WrongParameterException(&0$?%__sil_tmp__temp_construct_n$6:class cast_with_enforce::WrongParameterException *,&0$?%__sil_tmpSIL_materialize_temp__n$7:class cast_with_enforce::WrongParameterException &) [line 48]\n _fun___infer_objc_cpp_throw(&0$?%__sil_tmp__temp_construct_n$6:class cast_with_enforce::WrongParameterException ) [line 48]\n *&0$?%__sil_tmpSIL_temp_conditional___n$2:class cast_with_enforce::Derived *&=-1 [line 48]\n " shape="box"]
30 -> 26 ;
29 [label="29: ConditinalStmt Branch \n n$5=*&_tmp:class cast_with_enforce::Derived *& [line 48]\n *&0$?%__sil_tmpSIL_temp_conditional___n$2:class cast_with_enforce::Derived *&=n$5 [line 48]\n " shape="box"]
29 -> 26 ;
28 [label="28: Prune (false branch) \n n$3=*&_tmp:class cast_with_enforce::Derived *& [line 48]\n n$4=*n$3:class cast_with_enforce::Derived * [line 48]\n PRUNE((n$4 == 0), false); [line 48]\n " shape="invhouse"]
28 -> 30 ;
27 [label="27: Prune (true branch) \n n$3=*&_tmp:class cast_with_enforce::Derived *& [line 48]\n n$4=*n$3:class cast_with_enforce::Derived * [line 48]\n PRUNE((n$4 != 0), true); [line 48]\n " shape="invhouse"]
27 -> 29 ;
26 [label="26: + \n " ]
26 -> 25 ;
25 [label="25: Return Stmt \n n$0=*&derived:class cast_with_enforce::Derived * [line 49]\n n$1=*n$0.a:int [line 49]\n *&return:int =n$1 [line 49]\n " shape="box"]
25 -> 24 ;
24 [label="24: Exit cast_with_enforce::cast_with_npe_avoided_by_enforce \n " color=yellow style=filled]
23 [label="23: Start cast_with_enforce::cast_with_npe_avoided_by_enforce\nFormals: \nLocals: 0$?%__sil_tmpSIL_temp_conditional___n$2:class cast_with_enforce::Derived *& 0$?%__sil_tmp__temp_construct_n$6:class cast_with_enforce::WrongParameterException 0$?%__sil_tmpSIL_materialize_temp__n$7:class cast_with_enforce::WrongParameterException _tmp:class cast_with_enforce::Derived *& derived:class cast_with_enforce::Derived * base:class cast_with_enforce::Base \n DECLARE_LOCALS(&return,&0$?%__sil_tmpSIL_temp_conditional___n$2,&0$?%__sil_tmp__temp_construct_n$6,&0$?%__sil_tmpSIL_materialize_temp__n$7,&_tmp,&derived,&base); [line 45]\n " color=yellow style=filled]
23 -> 33 ;
22 [label="22: DeclStmt \n n$10=*&certificate:class cast_with_enforce::Base & [line 40]\n n$11=_fun___cast(n$10:class cast_with_enforce::Base *,sizeof(class cast_with_enforce::Derived ( sub )(cast)):void ) [line 40]\n *&cert:class cast_with_enforce::Derived *=n$11 [line 40]\n " shape="box"]
22 -> 21 ;
21 [label="21: DeclStmt \n *&_tmp:class cast_with_enforce::Derived *&=&cert [line 41]\n " shape="box"]
21 -> 17 ;
21 -> 18 ;
20 [label="20: ConditinalStmt Branch \n _fun_cast_with_enforce::WrongParameterException_WrongParameterException(&0$?%__sil_tmpSIL_materialize_temp__n$7:class cast_with_enforce::WrongParameterException *,\"cert\":_Bool ,\"Base is not Derived\":char *) [line 41]\n _fun_cast_with_enforce::WrongParameterException_WrongParameterException(&0$?%__sil_tmp__temp_construct_n$6:class cast_with_enforce::WrongParameterException *,&0$?%__sil_tmpSIL_materialize_temp__n$7:class cast_with_enforce::WrongParameterException &) [line 41]\n _fun___infer_objc_cpp_throw(&0$?%__sil_tmp__temp_construct_n$6:class cast_with_enforce::WrongParameterException ) [line 41]\n *&0$?%__sil_tmpSIL_temp_conditional___n$2:class cast_with_enforce::Derived *&=-1 [line 41]\n " shape="box"]
20 -> 16 ;
19 [label="19: ConditinalStmt Branch \n n$5=*&_tmp:class cast_with_enforce::Derived *& [line 41]\n *&0$?%__sil_tmpSIL_temp_conditional___n$2:class cast_with_enforce::Derived *&=n$5 [line 41]\n " shape="box"]
19 -> 16 ;
18 [label="18: Prune (false branch) \n n$3=*&_tmp:class cast_with_enforce::Derived *& [line 41]\n n$4=*n$3:class cast_with_enforce::Derived * [line 41]\n PRUNE((n$4 == 0), false); [line 41]\n " shape="invhouse"]
18 -> 20 ;
17 [label="17: Prune (true branch) \n n$3=*&_tmp:class cast_with_enforce::Derived *& [line 41]\n n$4=*n$3:class cast_with_enforce::Derived * [line 41]\n PRUNE((n$4 != 0), true); [line 41]\n " shape="invhouse"]
17 -> 19 ;
16 [label="16: + \n " ]
16 -> 15 ;
15 [label="15: Return Stmt \n n$0=*&cert:class cast_with_enforce::Derived * [line 42]\n n$1=*n$0.a:int [line 42]\n *&return:int =n$1 [line 42]\n " shape="box"]
15 -> 14 ;
14 [label="14: Exit cast_with_enforce::cast_with_no_npe \n " color=yellow style=filled]
13 [label="13: Start cast_with_enforce::cast_with_no_npe\nFormals: certificate:class cast_with_enforce::Base &\nLocals: 0$?%__sil_tmpSIL_temp_conditional___n$2:class cast_with_enforce::Derived *& 0$?%__sil_tmp__temp_construct_n$6:class cast_with_enforce::WrongParameterException 0$?%__sil_tmpSIL_materialize_temp__n$7:class cast_with_enforce::WrongParameterException _tmp:class cast_with_enforce::Derived *& cert:class cast_with_enforce::Derived * \n DECLARE_LOCALS(&return,&0$?%__sil_tmpSIL_temp_conditional___n$2,&0$?%__sil_tmp__temp_construct_n$6,&0$?%__sil_tmpSIL_materialize_temp__n$7,&_tmp,&cert); [line 39]\n " color=yellow style=filled]
13 -> 22 ;
12 [label="12: Exit cast_with_enforce::Base_Base \n " color=yellow style=filled]
11 [label="11: Start cast_with_enforce::Base_Base\nFormals: this:class cast_with_enforce::Base *\nLocals: \n DECLARE_LOCALS(&return); [line 28]\n " color=yellow style=filled]
11 -> 12 ;
10 [label="10: Exit cast_with_enforce::Base_dummy \n " color=yellow style=filled]
9 [label="9: Start cast_with_enforce::Base_dummy\nFormals: this:class cast_with_enforce::Base *\nLocals: \n DECLARE_LOCALS(&return); [line 29]\n " color=yellow style=filled]
9 -> 10 ;
8 [label="8: Exit cast_with_enforce::WrongParameterException_~WrongParameterException \n " color=yellow style=filled]
7 [label="7: Start cast_with_enforce::WrongParameterException_~WrongParameterException\nFormals: this:class cast_with_enforce::WrongParameterException *\nLocals: \n DECLARE_LOCALS(&return); [line 14]\n " color=yellow style=filled]
7 -> 8 ;
6 [label="6: Constructor Init \n n$0=*&this:class cast_with_enforce::WrongParameterException * [line 14]\n n$1=*&__param_0:class cast_with_enforce::WrongParameterException & [line 14]\n _fun_std::runtime_error_runtime_error(n$0:class cast_with_enforce::WrongParameterException *,n$1:class std::runtime_error &) [line 14]\n " shape="box"]
6 -> 5 ;
5 [label="5: Exit cast_with_enforce::WrongParameterException_WrongParameterException \n " color=yellow style=filled]
4 [label="4: Start cast_with_enforce::WrongParameterException_WrongParameterException\nFormals: this:class cast_with_enforce::WrongParameterException * __param_0:class cast_with_enforce::WrongParameterException &\nLocals: \n DECLARE_LOCALS(&return); [line 14]\n " color=yellow style=filled]
4 -> 6 ;
3 [label="3: Constructor Init \n n$0=*&this:class cast_with_enforce::WrongParameterException * [line 16]\n n$1=*&msg:char * [line 16]\n _fun_std::runtime_error_runtime_error(n$0:class cast_with_enforce::WrongParameterException *,n$1:char *) [line 16]\n " shape="box"]
3 -> 2 ;
2 [label="2: Exit cast_with_enforce::WrongParameterException_WrongParameterException \n " color=yellow style=filled]
1 [label="1: Start cast_with_enforce::WrongParameterException_WrongParameterException\nFormals: this:class cast_with_enforce::WrongParameterException * e:_Bool msg:char *\nLocals: \n DECLARE_LOCALS(&return); [line 16]\n " color=yellow style=filled]
1 -> 3 ;
}

@ -1 +0,0 @@
../../frontend/templates/class_template_instantiate.cpp

@ -1 +0,0 @@
../../frontend/templates/function.cpp

@ -1 +0,0 @@
../../frontend/templates/function_pack.cpp

@ -1 +0,0 @@
../../frontend/templates/method.cpp

@ -1 +0,0 @@
../../frontend/types/inheritance_field.cpp

@ -1 +0,0 @@
../../frontend/types/operator_overload.cpp

@ -1 +0,0 @@
../../frontend/types/return_struct.cpp

@ -1 +0,0 @@
../../frontend/types/struct_forward_declare.cpp

@ -1 +0,0 @@
../../frontend/types/struct_pass_by_value.cpp

@ -1 +0,0 @@
../../frontend/types/typeid_expr.cpp

@ -10,7 +10,7 @@ include ../../Makefile.frontend
OPTIONS = -x c++ -std=c++11 -isystem$(MODELS_DIR)/cpp/include -isystem$(CLANG_INCLUDES)/c++/v1/ -c
FILES = \
*/*.cpp \
*/*.cpp shared/*/*.cpp \
compile:
clang $(OPTIONS) $(FILES)

@ -1,134 +0,0 @@
/* @generated */
digraph iCFG {
34 [label="34: DeclStmt \n _fun_X_X(&a:class X *) [line 26]\n " shape="box"]
34 -> 28 ;
33 [label="33: DeclStmt \n n$7=*&0$?%__sil_tmpSIL_temp_conditional___n$1:class X [line 27]\n *&0$?%__sil_tmpSIL_materialize_temp__n$0:class X =n$7 [line 27]\n _fun_X_X(&x:class X *,&0$?%__sil_tmpSIL_materialize_temp__n$0:class X &) [line 27]\n " shape="box"]
33 -> 26 ;
32 [label="32: ConditinalStmt Branch \n _fun_X_X(&0$?%__sil_tmpSIL_materialize_temp__n$0:class X *,&a:class X &) [line 27]\n *&0$?%__sil_tmpSIL_temp_conditional___n$1:class X =&0$?%__sil_tmpSIL_materialize_temp__n$0 [line 27]\n " shape="box"]
32 -> 27 ;
31 [label="31: ConditinalStmt Branch \n _fun_getX(&0$?%__sil_tmpSIL_materialize_temp__n$5:class X *) [line 27]\n _fun_X_X(&0$?%__sil_tmpSIL_materialize_temp__n$0:class X *,&0$?%__sil_tmpSIL_materialize_temp__n$5:class X &) [line 27]\n *&0$?%__sil_tmpSIL_temp_conditional___n$1:class X =&0$?%__sil_tmpSIL_materialize_temp__n$0 [line 27]\n " shape="box"]
31 -> 27 ;
30 [label="30: Prune (false branch) \n PRUNE((n$4 == 0), false); [line 27]\n " shape="invhouse"]
30 -> 32 ;
29 [label="29: Prune (true branch) \n PRUNE((n$4 != 0), true); [line 27]\n " shape="invhouse"]
29 -> 31 ;
28 [label="28: Call _fun_X_operator_bool \n _fun_getX(&0$?%__sil_tmp__temp_return_n$3:class X *) [line 27]\n n$4=_fun_X_operator_bool(&0$?%__sil_tmp__temp_return_n$3:class X &) [line 27]\n " shape="box"]
28 -> 29 ;
28 -> 30 ;
27 [label="27: + \n " ]
27 -> 33 ;
26 [label="26: Exit conditional \n " color=yellow style=filled]
25 [label="25: Start conditional\nFormals: \nLocals: x:class X 0$?%__sil_tmpSIL_materialize_temp__n$0:class X 0$?%__sil_tmpSIL_temp_conditional___n$1:class X 0$?%__sil_tmp__temp_return_n$3:class X 0$?%__sil_tmpSIL_materialize_temp__n$5:class X a:class X \n DECLARE_LOCALS(&return,&x,&0$?%__sil_tmpSIL_materialize_temp__n$0,&0$?%__sil_tmpSIL_temp_conditional___n$1,&0$?%__sil_tmp__temp_return_n$3,&0$?%__sil_tmpSIL_materialize_temp__n$5,&a); [line 25]\n " color=yellow style=filled]
25 -> 34 ;
24 [label="24: DeclStmt \n _fun_X_X(&a:class X *) [line 21]\n " shape="box"]
24 -> 22 ;
23 [label="23: DeclStmt \n n$5=*&0$?%__sil_tmpSIL_temp_conditional___n$2:class X [line 22]\n *&0$?%__sil_tmpSIL_materialize_temp__n$0:class X =n$5 [line 22]\n _fun_X_X(&x:class X *,&0$?%__sil_tmpSIL_materialize_temp__n$0:class X &) [line 22]\n " shape="box"]
23 -> 15 ;
22 [label="22: BinaryConditinalStmt Init \n _fun_getX(&0$?%__sil_tmpSIL_materialize_temp__n$0:class X *) [line 22]\n " shape="box"]
22 -> 17 ;
21 [label="21: ConditinalStmt Branch \n _fun_X_X(&0$?%__sil_tmpSIL_materialize_temp__n$0:class X *,&a:class X &) [line 22]\n *&0$?%__sil_tmpSIL_temp_conditional___n$2:class X =&0$?%__sil_tmpSIL_materialize_temp__n$0 [line 22]\n " shape="box"]
21 -> 16 ;
20 [label="20: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_materialize_temp__n$4:class X =&0$?%__sil_tmpSIL_materialize_temp__n$0 [line 22]\n _fun_X_X(&0$?%__sil_tmpSIL_materialize_temp__n$0:class X *,&0$?%__sil_tmpSIL_materialize_temp__n$4:class X &) [line 22]\n *&0$?%__sil_tmpSIL_temp_conditional___n$2:class X =&0$?%__sil_tmpSIL_materialize_temp__n$0 [line 22]\n " shape="box"]
20 -> 16 ;
19 [label="19: Prune (false branch) \n PRUNE((n$3 == 0), false); [line 22]\n " shape="invhouse"]
19 -> 21 ;
18 [label="18: Prune (true branch) \n PRUNE((n$3 != 0), true); [line 22]\n " shape="invhouse"]
18 -> 20 ;
17 [label="17: Call _fun_X_operator_bool \n n$3=_fun_X_operator_bool(&0$?%__sil_tmpSIL_materialize_temp__n$0:class X &) [line 22]\n " shape="box"]
17 -> 18 ;
17 -> 19 ;
16 [label="16: + \n " ]
16 -> 23 ;
15 [label="15: Exit binaryConditional \n " color=yellow style=filled]
14 [label="14: Start binaryConditional\nFormals: \nLocals: x:class X 0$?%__sil_tmpSIL_materialize_temp__n$0:class X 0$?%__sil_tmpSIL_temp_conditional___n$2:class X 0$?%__sil_tmpSIL_materialize_temp__n$4:class X a:class X \n DECLARE_LOCALS(&return,&x,&0$?%__sil_tmpSIL_materialize_temp__n$0,&0$?%__sil_tmpSIL_temp_conditional___n$2,&0$?%__sil_tmpSIL_materialize_temp__n$4,&a); [line 20]\n " color=yellow style=filled]
14 -> 24 ;
13 [label="13: DeclStmt \n _fun_X_X(&x:class X *) [line 15]\n " shape="box"]
13 -> 12 ;
12 [label="12: Return Stmt \n n$0=*&__return_param:class X * [line 16]\n _fun_X_X(n$0:class X *,&x:class X &) [line 16]\n " shape="box"]
12 -> 11 ;
11 [label="11: Exit getX \n " color=yellow style=filled]
10 [label="10: Start getX\nFormals: __return_param:class X *\nLocals: x:class X \n DECLARE_LOCALS(&return,&x); [line 14]\n " color=yellow style=filled]
10 -> 13 ;
9 [label="9: Exit X_X \n " color=yellow style=filled]
8 [label="8: Start X_X\nFormals: this:class X * __param_0:class X &\nLocals: \n DECLARE_LOCALS(&return); [line 10]\n " color=yellow style=filled]
8 -> 9 ;
7 [label="7: Exit X_X \n " color=yellow style=filled]
6 [label="6: Start X_X\nFormals: this:class X * __param_0:class X &\nLocals: \n DECLARE_LOCALS(&return); [line 10]\n " color=yellow style=filled]
6 -> 7 ;
5 [label="5: Exit X_X \n " color=yellow style=filled]
4 [label="4: Start X_X\nFormals: this:class X *\nLocals: \n DECLARE_LOCALS(&return); [line 10]\n " color=yellow style=filled]
4 -> 5 ;
3 [label="3: Return Stmt \n *&return:_Bool =1 [line 11]\n " shape="box"]
3 -> 2 ;
2 [label="2: Exit X_operator_bool \n " color=yellow style=filled]
1 [label="1: Start X_operator_bool\nFormals: this:class X *\nLocals: \n DECLARE_LOCALS(&return); [line 11]\n " color=yellow style=filled]
1 -> 3 ;
}

@ -1,46 +0,0 @@
digraph iCFG {
12 [label="12: DeclStmt \n _fun_A_A(&a:class A *) [line 13]\n " shape="box"]
12 -> 11 ;
11 [label="11: Return Stmt \n n$0=_fun_A_get0(&a:class A &) [line 14]\n *&return:int =(1 / n$0) [line 14]\n REMOVE_TEMPS(n$0); [line 14]\n NULLIFY(&a,false); [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"]
11 -> 10 ;
10 [label="10: Exit div0_a \n " color=yellow style=filled]
9 [label="9: Start div0_a\nFormals: \nLocals: a:class A \n DECLARE_LOCALS(&return,&a); [line 12]\n " color=yellow style=filled]
9 -> 12 ;
8 [label="8: Return Stmt \n *&return:int =(1 / 0) [line 19]\n APPLY_ABSTRACTION; [line 19]\n " shape="box"]
8 -> 7 ;
7 [label="7: Exit div0_fun \n " color=yellow style=filled]
6 [label="6: Start div0_fun\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 19]\n " color=yellow style=filled]
6 -> 8 ;
5 [label="5: Exit A_A \n " color=yellow style=filled]
4 [label="4: Start A_A\nFormals: this:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 10]\n NULLIFY(&this,false); [line 10]\n " color=yellow style=filled]
4 -> 5 ;
3 [label="3: Return Stmt \n *&return:int =0 [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="box"]
3 -> 2 ;
2 [label="2: Exit A_get0 \n " color=yellow style=filled]
1 [label="1: Start A_get0\nFormals: this:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 11]\n NULLIFY(&this,false); [line 11]\n " color=yellow style=filled]
1 -> 3 ;
}

@ -1,128 +0,0 @@
/* @generated */
digraph iCFG {
34 [label="34: DeclStmt \n *&0$?%__sil_tmpSIL_materialize_temp__n$1:class fooOK::lambda_lambda_lambda1.cpp:26:12 =(_fun_fooOK::lambda_lambda_lambda1.cpp:26:12_operator()) [line 26]\n _fun_fooOK::lambda_lambda_lambda1.cpp:26:12_(&y:class fooOK::lambda_lambda_lambda1.cpp:26:12 *,&0$?%__sil_tmpSIL_materialize_temp__n$1:class fooOK::lambda_lambda_lambda1.cpp:26:12 &) [line 26]\n " shape="box"]
34 -> 31 ;
33 [label="33: Exit fooOK::lambda_lambda_lambda1.cpp:26:12_ \n " color=yellow style=filled]
32 [label="32: Start fooOK::lambda_lambda_lambda1.cpp:26:12_\nFormals: this:class fooOK::lambda_lambda_lambda1.cpp:26:12 * __param_0:class fooOK::lambda_lambda_lambda1.cpp:26:12 &\nLocals: \n DECLARE_LOCALS(&return); [line 26]\n " color=yellow style=filled]
32 -> 33 ;
31 [label="31: Return Stmt \n n$0=_fun_fooOK::lambda_lambda_lambda1.cpp:26:12_operator()(&y:class fooOK::lambda_lambda_lambda1.cpp:26:12 &,3:int ) [line 27]\n *&return:int =(5 / (4 - n$0)) [line 27]\n " shape="box"]
31 -> 27 ;
30 [label="30: Return Stmt \n n$0=*&i:int [line 26]\n *&i:int =(n$0 + 1) [line 26]\n *&return:int =n$0 [line 26]\n " shape="box"]
30 -> 29 ;
29 [label="29: Exit fooOK::lambda_lambda_lambda1.cpp:26:12_operator() \n " color=yellow style=filled]
28 [label="28: Start fooOK::lambda_lambda_lambda1.cpp:26:12_operator()\nFormals: this:class fooOK::lambda_lambda_lambda1.cpp:26:12 * i:int \nLocals: \n DECLARE_LOCALS(&return); [line 26]\n " color=yellow style=filled]
28 -> 30 ;
27 [label="27: Exit fooOK \n " color=yellow style=filled]
26 [label="26: Start fooOK\nFormals: \nLocals: y:class fooOK::lambda_lambda_lambda1.cpp:26:12 0$?%__sil_tmpSIL_materialize_temp__n$1:class fooOK::lambda_lambda_lambda1.cpp:26:12 \n DECLARE_LOCALS(&return,&y,&0$?%__sil_tmpSIL_materialize_temp__n$1); [line 24]\n " color=yellow style=filled]
26 -> 34 ;
25 [label="25: DeclStmt \n *&0$?%__sil_tmpSIL_materialize_temp__n$2:class foo::lambda_lambda_lambda1.cpp:19:17 =(_fun_foo::lambda_lambda_lambda1.cpp:19:17_operator()) [line 19]\n _fun_foo::lambda_lambda_lambda1.cpp:19:17_(&unused:class foo::lambda_lambda_lambda1.cpp:19:17 *,&0$?%__sil_tmpSIL_materialize_temp__n$2:class foo::lambda_lambda_lambda1.cpp:19:17 &) [line 19]\n " shape="box"]
25 -> 19 ;
24 [label="24: Return Stmt \n *&return:int =(1 / 0) [line 19]\n " shape="box"]
24 -> 23 ;
23 [label="23: Exit foo::lambda_lambda_lambda1.cpp:19:17_operator() \n " color=yellow style=filled]
22 [label="22: Start foo::lambda_lambda_lambda1.cpp:19:17_operator()\nFormals: this:class foo::lambda_lambda_lambda1.cpp:19:17 *\nLocals: \n DECLARE_LOCALS(&return); [line 19]\n " color=yellow style=filled]
22 -> 24 ;
21 [label="21: Exit foo::lambda_lambda_lambda1.cpp:19:17_ \n " color=yellow style=filled]
20 [label="20: Start foo::lambda_lambda_lambda1.cpp:19:17_\nFormals: this:class foo::lambda_lambda_lambda1.cpp:19:17 * __param_0:class foo::lambda_lambda_lambda1.cpp:19:17 &\nLocals: \n DECLARE_LOCALS(&return); [line 19]\n " color=yellow style=filled]
20 -> 21 ;
19 [label="19: DeclStmt \n *&0$?%__sil_tmpSIL_materialize_temp__n$1:class foo::lambda_lambda_lambda1.cpp:20:12 =(_fun_foo::lambda_lambda_lambda1.cpp:20:12_operator()) [line 20]\n _fun_foo::lambda_lambda_lambda1.cpp:20:12_(&y:class foo::lambda_lambda_lambda1.cpp:20:12 *,&0$?%__sil_tmpSIL_materialize_temp__n$1:class foo::lambda_lambda_lambda1.cpp:20:12 &) [line 20]\n " shape="box"]
19 -> 16 ;
18 [label="18: Exit foo::lambda_lambda_lambda1.cpp:20:12_ \n " color=yellow style=filled]
17 [label="17: Start foo::lambda_lambda_lambda1.cpp:20:12_\nFormals: this:class foo::lambda_lambda_lambda1.cpp:20:12 * __param_0:class foo::lambda_lambda_lambda1.cpp:20:12 &\nLocals: \n DECLARE_LOCALS(&return); [line 20]\n " color=yellow style=filled]
17 -> 18 ;
16 [label="16: Return Stmt \n n$0=_fun_foo::lambda_lambda_lambda1.cpp:20:12_operator()(&y:class foo::lambda_lambda_lambda1.cpp:20:12 &,3:int ) [line 21]\n *&return:int =(5 / (4 - n$0)) [line 21]\n " shape="box"]
16 -> 12 ;
15 [label="15: Return Stmt \n n$0=*&i:int [line 20]\n *&i:int =(n$0 + 1) [line 20]\n n$1=*&i:int [line 20]\n *&return:int =n$1 [line 20]\n " shape="box"]
15 -> 14 ;
14 [label="14: Exit foo::lambda_lambda_lambda1.cpp:20:12_operator() \n " color=yellow style=filled]
13 [label="13: Start foo::lambda_lambda_lambda1.cpp:20:12_operator()\nFormals: this:class foo::lambda_lambda_lambda1.cpp:20:12 * i:int \nLocals: \n DECLARE_LOCALS(&return); [line 20]\n " color=yellow style=filled]
13 -> 15 ;
12 [label="12: Exit foo \n " color=yellow style=filled]
11 [label="11: Start foo\nFormals: \nLocals: y:class foo::lambda_lambda_lambda1.cpp:20:12 0$?%__sil_tmpSIL_materialize_temp__n$1:class foo::lambda_lambda_lambda1.cpp:20:12 unused:class foo::lambda_lambda_lambda1.cpp:19:17 0$?%__sil_tmpSIL_materialize_temp__n$2:class foo::lambda_lambda_lambda1.cpp:19:17 \n DECLARE_LOCALS(&return,&y,&0$?%__sil_tmpSIL_materialize_temp__n$1,&unused,&0$?%__sil_tmpSIL_materialize_temp__n$2); [line 18]\n " color=yellow style=filled]
11 -> 25 ;
10 [label="10: DeclStmt \n *&0$?%__sil_tmpSIL_materialize_temp__n$1:class bar::lambda_lambda_lambda1.cpp:11:15 =(_fun_bar::lambda_lambda_lambda1.cpp:11:15_operator()) [line 11]\n _fun_bar::lambda_lambda_lambda1.cpp:11:15_(&func:class bar::lambda_lambda_lambda1.cpp:11:15 *,&0$?%__sil_tmpSIL_materialize_temp__n$1:class bar::lambda_lambda_lambda1.cpp:11:15 &) [line 11]\n " shape="box"]
10 -> 7 ;
9 [label="9: Exit bar::lambda_lambda_lambda1.cpp:11:15_ \n " color=yellow style=filled]
8 [label="8: Start bar::lambda_lambda_lambda1.cpp:11:15_\nFormals: this:class bar::lambda_lambda_lambda1.cpp:11:15 * __param_0:class bar::lambda_lambda_lambda1.cpp:11:15 &\nLocals: \n DECLARE_LOCALS(&return); [line 11]\n " color=yellow style=filled]
8 -> 9 ;
7 [label="7: Return Stmt \n n$0=_fun_bar::lambda_lambda_lambda1.cpp:11:15_operator()(&func:class bar::lambda_lambda_lambda1.cpp:11:15 &) [line 15]\n *&return:int =(7 / n$0) [line 15]\n " shape="box"]
7 -> 2 ;
6 [label="6: DeclStmt \n *&i:int =0 [line 12]\n " shape="box"]
6 -> 5 ;
5 [label="5: Return Stmt \n n$0=*&i:int [line 13]\n *&return:int =n$0 [line 13]\n " shape="box"]
5 -> 4 ;
4 [label="4: Exit bar::lambda_lambda_lambda1.cpp:11:15_operator() \n " color=yellow style=filled]
3 [label="3: Start bar::lambda_lambda_lambda1.cpp:11:15_operator()\nFormals: this:class bar::lambda_lambda_lambda1.cpp:11:15 *\nLocals: i:int \n DECLARE_LOCALS(&return,&i); [line 11]\n " color=yellow style=filled]
3 -> 6 ;
2 [label="2: Exit bar \n " color=yellow style=filled]
1 [label="1: Start bar\nFormals: \nLocals: func:class bar::lambda_lambda_lambda1.cpp:11:15 0$?%__sil_tmpSIL_materialize_temp__n$1:class bar::lambda_lambda_lambda1.cpp:11:15 \n DECLARE_LOCALS(&return,&func,&0$?%__sil_tmpSIL_materialize_temp__n$1); [line 10]\n " color=yellow style=filled]
1 -> 10 ;
}

@ -7,6 +7,8 @@
* of patent rights can be found in the PATENTS file in the same directory.
*/
namespace binary_conditional {
struct X {
operator bool() { return true; }
};
@ -26,3 +28,4 @@ void conditional() {
X a;
X x = getX() ? getX() : a;
}
}

@ -0,0 +1,134 @@
/* @generated */
digraph iCFG {
34 [label="34: DeclStmt \n _fun_binary_conditional::X_X(&a:class binary_conditional::X *) [line 28]\n " shape="box"]
34 -> 28 ;
33 [label="33: DeclStmt \n n$7=*&0$?%__sil_tmpSIL_temp_conditional___n$1:class binary_conditional::X [line 29]\n *&0$?%__sil_tmpSIL_materialize_temp__n$0:class binary_conditional::X =n$7 [line 29]\n _fun_binary_conditional::X_X(&x:class binary_conditional::X *,&0$?%__sil_tmpSIL_materialize_temp__n$0:class binary_conditional::X &) [line 29]\n " shape="box"]
33 -> 26 ;
32 [label="32: ConditinalStmt Branch \n _fun_binary_conditional::X_X(&0$?%__sil_tmpSIL_materialize_temp__n$0:class binary_conditional::X *,&a:class binary_conditional::X &) [line 29]\n *&0$?%__sil_tmpSIL_temp_conditional___n$1:class binary_conditional::X =&0$?%__sil_tmpSIL_materialize_temp__n$0 [line 29]\n " shape="box"]
32 -> 27 ;
31 [label="31: ConditinalStmt Branch \n _fun_binary_conditional::getX(&0$?%__sil_tmpSIL_materialize_temp__n$5:class binary_conditional::X *) [line 29]\n _fun_binary_conditional::X_X(&0$?%__sil_tmpSIL_materialize_temp__n$0:class binary_conditional::X *,&0$?%__sil_tmpSIL_materialize_temp__n$5:class binary_conditional::X &) [line 29]\n *&0$?%__sil_tmpSIL_temp_conditional___n$1:class binary_conditional::X =&0$?%__sil_tmpSIL_materialize_temp__n$0 [line 29]\n " shape="box"]
31 -> 27 ;
30 [label="30: Prune (false branch) \n PRUNE((n$4 == 0), false); [line 29]\n " shape="invhouse"]
30 -> 32 ;
29 [label="29: Prune (true branch) \n PRUNE((n$4 != 0), true); [line 29]\n " shape="invhouse"]
29 -> 31 ;
28 [label="28: Call _fun_binary_conditional::X_operator_bool \n _fun_binary_conditional::getX(&0$?%__sil_tmp__temp_return_n$3:class binary_conditional::X *) [line 29]\n n$4=_fun_binary_conditional::X_operator_bool(&0$?%__sil_tmp__temp_return_n$3:class binary_conditional::X &) [line 29]\n " shape="box"]
28 -> 29 ;
28 -> 30 ;
27 [label="27: + \n " ]
27 -> 33 ;
26 [label="26: Exit binary_conditional::conditional \n " color=yellow style=filled]
25 [label="25: Start binary_conditional::conditional\nFormals: \nLocals: x:class binary_conditional::X 0$?%__sil_tmpSIL_materialize_temp__n$0:class binary_conditional::X 0$?%__sil_tmpSIL_temp_conditional___n$1:class binary_conditional::X 0$?%__sil_tmp__temp_return_n$3:class binary_conditional::X 0$?%__sil_tmpSIL_materialize_temp__n$5:class binary_conditional::X a:class binary_conditional::X \n DECLARE_LOCALS(&return,&x,&0$?%__sil_tmpSIL_materialize_temp__n$0,&0$?%__sil_tmpSIL_temp_conditional___n$1,&0$?%__sil_tmp__temp_return_n$3,&0$?%__sil_tmpSIL_materialize_temp__n$5,&a); [line 27]\n " color=yellow style=filled]
25 -> 34 ;
24 [label="24: DeclStmt \n _fun_binary_conditional::X_X(&a:class binary_conditional::X *) [line 23]\n " shape="box"]
24 -> 22 ;
23 [label="23: DeclStmt \n n$5=*&0$?%__sil_tmpSIL_temp_conditional___n$2:class binary_conditional::X [line 24]\n *&0$?%__sil_tmpSIL_materialize_temp__n$0:class binary_conditional::X =n$5 [line 24]\n _fun_binary_conditional::X_X(&x:class binary_conditional::X *,&0$?%__sil_tmpSIL_materialize_temp__n$0:class binary_conditional::X &) [line 24]\n " shape="box"]
23 -> 15 ;
22 [label="22: BinaryConditinalStmt Init \n _fun_binary_conditional::getX(&0$?%__sil_tmpSIL_materialize_temp__n$0:class binary_conditional::X *) [line 24]\n " shape="box"]
22 -> 17 ;
21 [label="21: ConditinalStmt Branch \n _fun_binary_conditional::X_X(&0$?%__sil_tmpSIL_materialize_temp__n$0:class binary_conditional::X *,&a:class binary_conditional::X &) [line 24]\n *&0$?%__sil_tmpSIL_temp_conditional___n$2:class binary_conditional::X =&0$?%__sil_tmpSIL_materialize_temp__n$0 [line 24]\n " shape="box"]
21 -> 16 ;
20 [label="20: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_materialize_temp__n$4:class binary_conditional::X =&0$?%__sil_tmpSIL_materialize_temp__n$0 [line 24]\n _fun_binary_conditional::X_X(&0$?%__sil_tmpSIL_materialize_temp__n$0:class binary_conditional::X *,&0$?%__sil_tmpSIL_materialize_temp__n$4:class binary_conditional::X &) [line 24]\n *&0$?%__sil_tmpSIL_temp_conditional___n$2:class binary_conditional::X =&0$?%__sil_tmpSIL_materialize_temp__n$0 [line 24]\n " shape="box"]
20 -> 16 ;
19 [label="19: Prune (false branch) \n PRUNE((n$3 == 0), false); [line 24]\n " shape="invhouse"]
19 -> 21 ;
18 [label="18: Prune (true branch) \n PRUNE((n$3 != 0), true); [line 24]\n " shape="invhouse"]
18 -> 20 ;
17 [label="17: Call _fun_binary_conditional::X_operator_bool \n n$3=_fun_binary_conditional::X_operator_bool(&0$?%__sil_tmpSIL_materialize_temp__n$0:class binary_conditional::X &) [line 24]\n " shape="box"]
17 -> 18 ;
17 -> 19 ;
16 [label="16: + \n " ]
16 -> 23 ;
15 [label="15: Exit binary_conditional::binaryConditional \n " color=yellow style=filled]
14 [label="14: Start binary_conditional::binaryConditional\nFormals: \nLocals: x:class binary_conditional::X 0$?%__sil_tmpSIL_materialize_temp__n$0:class binary_conditional::X 0$?%__sil_tmpSIL_temp_conditional___n$2:class binary_conditional::X 0$?%__sil_tmpSIL_materialize_temp__n$4:class binary_conditional::X a:class binary_conditional::X \n DECLARE_LOCALS(&return,&x,&0$?%__sil_tmpSIL_materialize_temp__n$0,&0$?%__sil_tmpSIL_temp_conditional___n$2,&0$?%__sil_tmpSIL_materialize_temp__n$4,&a); [line 22]\n " color=yellow style=filled]
14 -> 24 ;
13 [label="13: DeclStmt \n _fun_binary_conditional::X_X(&x:class binary_conditional::X *) [line 17]\n " shape="box"]
13 -> 12 ;
12 [label="12: Return Stmt \n n$0=*&__return_param:class binary_conditional::X * [line 18]\n _fun_binary_conditional::X_X(n$0:class binary_conditional::X *,&x:class binary_conditional::X &) [line 18]\n " shape="box"]
12 -> 11 ;
11 [label="11: Exit binary_conditional::getX \n " color=yellow style=filled]
10 [label="10: Start binary_conditional::getX\nFormals: __return_param:class binary_conditional::X *\nLocals: x:class binary_conditional::X \n DECLARE_LOCALS(&return,&x); [line 16]\n " color=yellow style=filled]
10 -> 13 ;
9 [label="9: Exit binary_conditional::X_X \n " color=yellow style=filled]
8 [label="8: Start binary_conditional::X_X\nFormals: this:class binary_conditional::X * __param_0:class binary_conditional::X &\nLocals: \n DECLARE_LOCALS(&return); [line 12]\n " color=yellow style=filled]
8 -> 9 ;
7 [label="7: Exit binary_conditional::X_X \n " color=yellow style=filled]
6 [label="6: Start binary_conditional::X_X\nFormals: this:class binary_conditional::X * __param_0:class binary_conditional::X &\nLocals: \n DECLARE_LOCALS(&return); [line 12]\n " color=yellow style=filled]
6 -> 7 ;
5 [label="5: Exit binary_conditional::X_X \n " color=yellow style=filled]
4 [label="4: Start binary_conditional::X_X\nFormals: this:class binary_conditional::X *\nLocals: \n DECLARE_LOCALS(&return); [line 12]\n " color=yellow style=filled]
4 -> 5 ;
3 [label="3: Return Stmt \n *&return:_Bool =1 [line 13]\n " shape="box"]
3 -> 2 ;
2 [label="2: Exit binary_conditional::X_operator_bool \n " color=yellow style=filled]
1 [label="1: Start binary_conditional::X_operator_bool\nFormals: this:class binary_conditional::X *\nLocals: \n DECLARE_LOCALS(&return); [line 13]\n " color=yellow style=filled]
1 -> 3 ;
}

@ -0,0 +1,128 @@
/* @generated */
digraph iCFG {
34 [label="34: DeclStmt \n *&0$?%__sil_tmpSIL_materialize_temp__n$1:class fooOK::lambda_shared_lambda_lambda1.cpp:26:12 =(_fun_fooOK::lambda_shared_lambda_lambda1.cpp:26:12_operator()) [line 26]\n _fun_fooOK::lambda_shared_lambda_lambda1.cpp:26:12_(&y:class fooOK::lambda_shared_lambda_lambda1.cpp:26:12 *,&0$?%__sil_tmpSIL_materialize_temp__n$1:class fooOK::lambda_shared_lambda_lambda1.cpp:26:12 &) [line 26]\n " shape="box"]
34 -> 31 ;
33 [label="33: Exit fooOK::lambda_shared_lambda_lambda1.cpp:26:12_ \n " color=yellow style=filled]
32 [label="32: Start fooOK::lambda_shared_lambda_lambda1.cpp:26:12_\nFormals: this:class fooOK::lambda_shared_lambda_lambda1.cpp:26:12 * __param_0:class fooOK::lambda_shared_lambda_lambda1.cpp:26:12 &\nLocals: \n DECLARE_LOCALS(&return); [line 26]\n " color=yellow style=filled]
32 -> 33 ;
31 [label="31: Return Stmt \n n$0=_fun_fooOK::lambda_shared_lambda_lambda1.cpp:26:12_operator()(&y:class fooOK::lambda_shared_lambda_lambda1.cpp:26:12 &,3:int ) [line 27]\n *&return:int =(5 / (4 - n$0)) [line 27]\n " shape="box"]
31 -> 27 ;
30 [label="30: Return Stmt \n n$0=*&i:int [line 26]\n *&i:int =(n$0 + 1) [line 26]\n *&return:int =n$0 [line 26]\n " shape="box"]
30 -> 29 ;
29 [label="29: Exit fooOK::lambda_shared_lambda_lambda1.cpp:26:12_operator() \n " color=yellow style=filled]
28 [label="28: Start fooOK::lambda_shared_lambda_lambda1.cpp:26:12_operator()\nFormals: this:class fooOK::lambda_shared_lambda_lambda1.cpp:26:12 * i:int \nLocals: \n DECLARE_LOCALS(&return); [line 26]\n " color=yellow style=filled]
28 -> 30 ;
27 [label="27: Exit fooOK \n " color=yellow style=filled]
26 [label="26: Start fooOK\nFormals: \nLocals: y:class fooOK::lambda_shared_lambda_lambda1.cpp:26:12 0$?%__sil_tmpSIL_materialize_temp__n$1:class fooOK::lambda_shared_lambda_lambda1.cpp:26:12 \n DECLARE_LOCALS(&return,&y,&0$?%__sil_tmpSIL_materialize_temp__n$1); [line 24]\n " color=yellow style=filled]
26 -> 34 ;
25 [label="25: DeclStmt \n *&0$?%__sil_tmpSIL_materialize_temp__n$2:class foo::lambda_shared_lambda_lambda1.cpp:19:17 =(_fun_foo::lambda_shared_lambda_lambda1.cpp:19:17_operator()) [line 19]\n _fun_foo::lambda_shared_lambda_lambda1.cpp:19:17_(&unused:class foo::lambda_shared_lambda_lambda1.cpp:19:17 *,&0$?%__sil_tmpSIL_materialize_temp__n$2:class foo::lambda_shared_lambda_lambda1.cpp:19:17 &) [line 19]\n " shape="box"]
25 -> 19 ;
24 [label="24: Return Stmt \n *&return:int =(1 / 0) [line 19]\n " shape="box"]
24 -> 23 ;
23 [label="23: Exit foo::lambda_shared_lambda_lambda1.cpp:19:17_operator() \n " color=yellow style=filled]
22 [label="22: Start foo::lambda_shared_lambda_lambda1.cpp:19:17_operator()\nFormals: this:class foo::lambda_shared_lambda_lambda1.cpp:19:17 *\nLocals: \n DECLARE_LOCALS(&return); [line 19]\n " color=yellow style=filled]
22 -> 24 ;
21 [label="21: Exit foo::lambda_shared_lambda_lambda1.cpp:19:17_ \n " color=yellow style=filled]
20 [label="20: Start foo::lambda_shared_lambda_lambda1.cpp:19:17_\nFormals: this:class foo::lambda_shared_lambda_lambda1.cpp:19:17 * __param_0:class foo::lambda_shared_lambda_lambda1.cpp:19:17 &\nLocals: \n DECLARE_LOCALS(&return); [line 19]\n " color=yellow style=filled]
20 -> 21 ;
19 [label="19: DeclStmt \n *&0$?%__sil_tmpSIL_materialize_temp__n$1:class foo::lambda_shared_lambda_lambda1.cpp:20:12 =(_fun_foo::lambda_shared_lambda_lambda1.cpp:20:12_operator()) [line 20]\n _fun_foo::lambda_shared_lambda_lambda1.cpp:20:12_(&y:class foo::lambda_shared_lambda_lambda1.cpp:20:12 *,&0$?%__sil_tmpSIL_materialize_temp__n$1:class foo::lambda_shared_lambda_lambda1.cpp:20:12 &) [line 20]\n " shape="box"]
19 -> 16 ;
18 [label="18: Exit foo::lambda_shared_lambda_lambda1.cpp:20:12_ \n " color=yellow style=filled]
17 [label="17: Start foo::lambda_shared_lambda_lambda1.cpp:20:12_\nFormals: this:class foo::lambda_shared_lambda_lambda1.cpp:20:12 * __param_0:class foo::lambda_shared_lambda_lambda1.cpp:20:12 &\nLocals: \n DECLARE_LOCALS(&return); [line 20]\n " color=yellow style=filled]
17 -> 18 ;
16 [label="16: Return Stmt \n n$0=_fun_foo::lambda_shared_lambda_lambda1.cpp:20:12_operator()(&y:class foo::lambda_shared_lambda_lambda1.cpp:20:12 &,3:int ) [line 21]\n *&return:int =(5 / (4 - n$0)) [line 21]\n " shape="box"]
16 -> 12 ;
15 [label="15: Return Stmt \n n$0=*&i:int [line 20]\n *&i:int =(n$0 + 1) [line 20]\n n$1=*&i:int [line 20]\n *&return:int =n$1 [line 20]\n " shape="box"]
15 -> 14 ;
14 [label="14: Exit foo::lambda_shared_lambda_lambda1.cpp:20:12_operator() \n " color=yellow style=filled]
13 [label="13: Start foo::lambda_shared_lambda_lambda1.cpp:20:12_operator()\nFormals: this:class foo::lambda_shared_lambda_lambda1.cpp:20:12 * i:int \nLocals: \n DECLARE_LOCALS(&return); [line 20]\n " color=yellow style=filled]
13 -> 15 ;
12 [label="12: Exit foo \n " color=yellow style=filled]
11 [label="11: Start foo\nFormals: \nLocals: y:class foo::lambda_shared_lambda_lambda1.cpp:20:12 0$?%__sil_tmpSIL_materialize_temp__n$1:class foo::lambda_shared_lambda_lambda1.cpp:20:12 unused:class foo::lambda_shared_lambda_lambda1.cpp:19:17 0$?%__sil_tmpSIL_materialize_temp__n$2:class foo::lambda_shared_lambda_lambda1.cpp:19:17 \n DECLARE_LOCALS(&return,&y,&0$?%__sil_tmpSIL_materialize_temp__n$1,&unused,&0$?%__sil_tmpSIL_materialize_temp__n$2); [line 18]\n " color=yellow style=filled]
11 -> 25 ;
10 [label="10: DeclStmt \n *&0$?%__sil_tmpSIL_materialize_temp__n$1:class bar::lambda_shared_lambda_lambda1.cpp:11:15 =(_fun_bar::lambda_shared_lambda_lambda1.cpp:11:15_operator()) [line 11]\n _fun_bar::lambda_shared_lambda_lambda1.cpp:11:15_(&func:class bar::lambda_shared_lambda_lambda1.cpp:11:15 *,&0$?%__sil_tmpSIL_materialize_temp__n$1:class bar::lambda_shared_lambda_lambda1.cpp:11:15 &) [line 11]\n " shape="box"]
10 -> 7 ;
9 [label="9: Exit bar::lambda_shared_lambda_lambda1.cpp:11:15_ \n " color=yellow style=filled]
8 [label="8: Start bar::lambda_shared_lambda_lambda1.cpp:11:15_\nFormals: this:class bar::lambda_shared_lambda_lambda1.cpp:11:15 * __param_0:class bar::lambda_shared_lambda_lambda1.cpp:11:15 &\nLocals: \n DECLARE_LOCALS(&return); [line 11]\n " color=yellow style=filled]
8 -> 9 ;
7 [label="7: Return Stmt \n n$0=_fun_bar::lambda_shared_lambda_lambda1.cpp:11:15_operator()(&func:class bar::lambda_shared_lambda_lambda1.cpp:11:15 &) [line 15]\n *&return:int =(7 / n$0) [line 15]\n " shape="box"]
7 -> 2 ;
6 [label="6: DeclStmt \n *&i:int =0 [line 12]\n " shape="box"]
6 -> 5 ;
5 [label="5: Return Stmt \n n$0=*&i:int [line 13]\n *&return:int =n$0 [line 13]\n " shape="box"]
5 -> 4 ;
4 [label="4: Exit bar::lambda_shared_lambda_lambda1.cpp:11:15_operator() \n " color=yellow style=filled]
3 [label="3: Start bar::lambda_shared_lambda_lambda1.cpp:11:15_operator()\nFormals: this:class bar::lambda_shared_lambda_lambda1.cpp:11:15 *\nLocals: i:int \n DECLARE_LOCALS(&return,&i); [line 11]\n " color=yellow style=filled]
3 -> 6 ;
2 [label="2: Exit bar \n " color=yellow style=filled]
1 [label="1: Start bar\nFormals: \nLocals: func:class bar::lambda_shared_lambda_lambda1.cpp:11:15 0$?%__sil_tmpSIL_materialize_temp__n$1:class bar::lambda_shared_lambda_lambda1.cpp:11:15 \n DECLARE_LOCALS(&return,&func,&0$?%__sil_tmpSIL_materialize_temp__n$1); [line 10]\n " color=yellow style=filled]
1 -> 10 ;
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save