solidity/test/libsolidity/smtCheckerTests/external_calls
Martin Blicha b0419da654 [SMTChecker] Remember verification targets from trusted external calls
Previously, we did not remember trusted external calls for later phase
when we compute possible verification targets for each function.
This led to false negative in cases where verification target can be
violated, but not by calling a public function directly, but only when
it is called as an external function from other function.

The added test cases witnesses this behaviour. The underflow in
`dec` cannot happen in any other way except what the `dec` is called
from `f`.

The same problem did not occur when the functions are called internally,
because for such cases, we have already been remembering these calls in
the callgraph in the CHC engine.
2023-05-26 13:03:44 +02:00
..
call_abstract_constructor_trusted_1.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
call_abstract_constructor_trusted_2.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
call_abstract_trusted_1.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
call_abstract_trusted_2.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
call_abstract_trusted_3.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
call_constructor_1.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
call_constructor_2.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
call_mutex_unsafe.sol adjust tests for nondeterminism 2022-01-12 18:43:18 +01:00
call_mutex.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
call_reentrancy_1.sol Adjust tests for nondeterminism 2021-08-25 21:10:43 +02:00
call_reentrancy_view.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
call_return_1.sol Update tests 2021-08-19 16:34:01 +02:00
call_return_2.sol Update tests 2021-08-19 16:34:01 +02:00
call_safe.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
call_with_value_1.sol Update docker images and tests 2022-08-30 11:51:59 +02:00
call_with_value_2.sol Update docker images and tests 2022-08-30 11:51:59 +02:00
call_with_value_3.sol Support the external call option 2021-09-01 20:18:37 +02:00
external_call_from_constructor_1_trusted.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_from_constructor_1.sol Fix SMT test 2021-08-12 22:34:18 +02:00
external_call_from_constructor_2_trusted.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_from_constructor_2.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_from_constructor_3_trusted.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_from_constructor_3.sol update smt tests 2022-11-24 13:08:06 +01:00
external_call_from_constructor_reentrancy_1.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_indirect_1.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_indirect_2.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_indirect_3.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_indirect_4.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_indirect_5.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_semantic_this_1.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_semantic_this_2.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_semantic_this_3.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_state_var_address_inside_array_struct_trusted_1.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_state_var_address_inside_array_struct_trusted_2.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_state_var_address_inside_array_trusted_1.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_state_var_address_inside_array_trusted_2.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_state_var_address_inside_struct_trusted_1.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_state_var_address_inside_struct_trusted_2.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_state_var_address_inside_struct_trusted_3.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_state_var_address_inside_struct_trusted_4.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_state_var_contract_inside_array_struct_trusted_1.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_state_var_contract_inside_array_struct_trusted_2.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_state_var_contract_inside_array_trusted_1.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_state_var_contract_inside_array_trusted_2.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_state_var_contract_inside_struct_trusted_1.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_state_var_contract_inside_struct_trusted_2.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_state_var_contract_inside_struct_trusted_3.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_state_var_contract_inside_struct_trusted_4.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_this_with_value_1.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_this_with_value_2.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_call_with_gas_1.sol Fix ICE in CHC when using gas in the function options 2021-11-03 15:40:54 +01:00
external_call_with_value_1.sol Support the external call option 2021-09-01 20:18:37 +02:00
external_call_with_value_2.sol adjust tests for nondeterminism 2022-01-12 18:43:18 +01:00
external_call_with_value_3.sol Update docker images and tests 2022-08-30 11:51:59 +02:00
external_hash_known_code_pure_trusted.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_hash_known_code_pure.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_hash_known_code_state_reentrancy_2_trusted.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_hash_known_code_state_reentrancy_2.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_hash_known_code_state_reentrancy_3.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_hash_known_code_state_reentrancy_indirect_trusted.sol [SMTChecker] Add a new trusted mode which assumes that code that is 2023-02-06 17:02:33 +01:00
external_hash_known_code_state_reentrancy_indirect.sol update smt tests 2022-11-24 13:08:06 +01:00
external_hash_known_code_state_reentrancy_trusted.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_hash_known_code_state_reentrancy_unsafe_trusted.sol [SMTChecker] Add a new trusted mode which assumes that code that is 2023-02-06 17:02:33 +01:00
external_hash_known_code_state_reentrancy_unsafe.sol macos nondeterminism 2021-11-24 20:41:22 +01:00
external_hash_known_code_state_reentrancy.sol Adjust tests for nondeterminism 2021-08-25 21:10:43 +02:00
external_hash_known_code_state_trusted.sol [SMTChecker] Add a new trusted mode which assumes that code that is 2023-02-06 17:02:33 +01:00
external_hash_known_code_state_unsafe_trusted.sol [SMTChecker] Add a new trusted mode which assumes that code that is 2023-02-06 17:02:33 +01:00
external_hash_known_code_state_unsafe.sol Update old tests 2021-04-08 21:03:39 +02:00
external_hash_known_code_state.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_hash.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_inc1_inc2.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_inc.sol Tests 2021-08-04 13:54:50 +02:00
external_reentrancy_1.sol update smt tests 2022-11-24 13:08:06 +01:00
external_reentrancy_2.sol [SMTChecker] Add a new trusted mode which assumes that code that is 2023-02-06 17:02:33 +01:00
external_reentrancy_3.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_reentrancy_crypto.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
external_safe.sol update smtchecker tests 2023-03-28 18:23:54 +02:00
external_single_inc.sol Adjust tests for nondeterminism 2021-11-24 20:41:22 +01:00
external.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
internal_library_external_call_1.sol Add tests for the library bug 2021-04-19 19:23:18 +02:00
internal_library_external_call_2.sol update smt tests 2022-11-24 13:08:06 +01:00
internal_library_external_call_3.sol update smt tests 2022-11-24 13:08:06 +01:00
mutex_f_no_guard.sol Adjust tests for nondeterminism 2021-08-25 21:10:43 +02:00
mutex.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
staticcall_mutex_2.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
staticcall_mutex.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
staticcall_reentrancy_view.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
token_trusted_transfer_correct.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
token_trusted_transfer_wrong.sol Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
underflow_only_in_external_call.sol [SMTChecker] Remember verification targets from trusted external calls 2023-05-26 13:03:44 +02:00