solidity/libsolidity/formal
Martin Blicha 8ca453f82e SMTChecker: External function call with struct member is not getter
if a struct has a member that is a function pointer with `external`
attribute, and such a member is called, it is currently incorrectly
treated as a public getter in SMTEncoder.

The proposed fix is to make SMTEncoder::publicGetter more strict in
deciding whether an expression is a public getter.
The added condition, that the access happens on a state variable, is
exactly what is checked later with an assertion that is currently
failing.
2023-05-26 14:23:45 +02:00
..
ArraySlicePredicate.cpp Add std:: qualifier to move() calls 2022-08-30 11:12:15 +02:00
ArraySlicePredicate.h Support array slices 2020-10-01 11:52:02 +02:00
BMC.cpp Fix encoding of side-effects inside if and conditional statements in the BMC engine 2023-05-11 16:44:09 +02:00
BMC.h group unsupported warnings 2023-03-15 17:06:06 +01:00
CHC.cpp [SMTChecker] Use path condition when creating CHC targets 2023-04-21 18:56:34 +02:00
CHC.h group unsupported warnings 2023-03-15 17:06:06 +01:00
EncodingContext.cpp Add std:: qualifier to move() calls 2022-08-30 11:12:15 +02:00
EncodingContext.h Add std:: qualifier to move() calls 2022-08-30 11:12:15 +02:00
ExpressionFormatter.cpp Add ExpressionFormatter which translates an smtutil::Expression into a Solidity-like expression string 2021-10-26 11:30:30 +02:00
ExpressionFormatter.h Add ExpressionFormatter which translates an smtutil::Expression into a Solidity-like expression string 2021-10-26 11:30:30 +02:00
Invariants.cpp Add std:: qualifier to move() calls 2022-08-30 11:12:15 +02:00
Invariants.h Add Invariants which traverses the proof and collects invariants for the given predicates 2021-10-26 11:30:30 +02:00
ModelChecker.cpp group unsupported warnings 2023-03-15 17:06:06 +01:00
ModelChecker.h group unsupported warnings 2023-03-15 17:06:06 +01:00
ModelCheckerSettings.cpp [SMTChecker] Add a new trusted mode which assumes that code that is 2023-02-06 17:02:33 +01:00
ModelCheckerSettings.h group unsupported warnings 2023-03-15 17:06:06 +01:00
Predicate.cpp [SMTChecker] Add a new trusted mode which assumes that code that is 2023-02-06 17:02:33 +01:00
Predicate.h [SMTChecker] Add a new trusted mode which assumes that code that is 2023-02-06 17:02:33 +01:00
PredicateInstance.cpp [SMTChecker] Add a new trusted mode which assumes that code that is 2023-02-06 17:02:33 +01:00
PredicateInstance.h [SMTChecker] Add a new trusted mode which assumes that code that is 2023-02-06 17:02:33 +01:00
PredicateSort.cpp [SMTChecker] Detect errors caused by reentrancy 2020-12-28 14:32:53 +01:00
PredicateSort.h [SMTChecker] Detect errors caused by reentrancy 2020-12-28 14:32:53 +01:00
SMTEncoder.cpp SMTChecker: External function call with struct member is not getter 2023-05-26 14:23:45 +02:00
SMTEncoder.h group unsupported warnings 2023-03-15 17:06:06 +01:00
SSAVariable.cpp Add SPDX license identifier if not present already in source file 2020-07-17 20:24:12 +05:30
SSAVariable.h Add SPDX license identifier if not present already in source file 2020-07-17 20:24:12 +05:30
SymbolicState.cpp [SMTChecker] Add a new trusted mode which assumes that code that is 2023-02-06 17:02:33 +01:00
SymbolicState.h [SMTChecker] Add a new trusted mode which assumes that code that is 2023-02-06 17:02:33 +01:00
SymbolicTypes.cpp [SMTChecker] Add a new trusted mode which assumes that code that is 2023-02-06 17:02:33 +01:00
SymbolicTypes.h [SMTChecker] Add a new trusted mode which assumes that code that is 2023-02-06 17:02:33 +01:00
SymbolicVariables.cpp Add std:: qualifier to move() calls 2022-08-30 11:12:15 +02:00
SymbolicVariables.h Replace TypePointer with Type const* 2021-03-23 11:47:19 +01:00
VariableUsage.cpp [SMTChecker] Correctly resolve current scope contract in VariableUsage. 2021-03-15 13:55:14 +01:00
VariableUsage.h [SMTChecker] Correctly resolve current scope contract in VariableUsage. 2021-03-15 13:55:14 +01:00