chriseth
b04b189959
Syntax for custom errors.
2021-03-30 21:15:18 +02:00
Martin Blicha
2d231f1859
[SMTChecker] Changed SMTEncoder::mergeVariables to work regardless which branch has been visited first
2021-03-30 20:35:44 +02:00
Leonardo Alt
ba97d6ac4e
Add local vars to cex
2021-03-30 17:55:21 +02:00
Leonardo Alt
dbd067d6db
Report out of bounds index access
2021-03-30 10:28:48 +02:00
chriseth
bb49bc5892
Merge pull request #10418 from ethereum/function-specializer
...
Function specializer
2021-03-29 15:48:01 +02:00
hrkrshnn
0100f48e05
FunctionSpecializer: skip specializing recursive functions
...
This avoids potential pathological behaviour, like in Ackermann function.
2021-03-29 11:02:31 +02:00
hrkrshnn
2c75d1dfe4
Isoltest gas update for FunctionSpecializer
2021-03-29 11:02:31 +02:00
hrkrshnn
09998ceb0c
Tests for FunctionSpecializer
2021-03-29 11:02:18 +02:00
Martin Blicha
85358dfe30
[SMTChecker] Do not create targets for contracts that cannot be deployed
2021-03-25 15:38:37 +01:00
Leonardo
7e1be52281
Merge pull request #11165 from blishko/smt-abi-no-args
...
[SMTChecker] Fix ICE on ABI functions with no arguments
2021-03-25 15:21:57 +01:00
Alex Beregszaszi
e071884bbf
Show proper error for misusing the custom natspec tag
2021-03-25 12:45:37 +00:00
Martin Blicha
5293f05ee3
[SMTChecker] Fix ICE on ABI functions with no arguments
2021-03-25 13:28:29 +01:00
Alex Beregszaszi
7a7ff7af2f
Add one more test for invalid custom tag
2021-03-25 12:24:18 +00:00
chriseth
6eac77aea2
Merge pull request #11107 from ethereum/extendedLowlevelInliner
...
Inline ordinary jumps to small blocks and jumps to terminating control flow.
2021-03-24 18:06:15 +01:00
Martin Blicha
98446782e2
[SMTChecker] Fix compound assignment to push
2021-03-24 14:54:13 +01:00
Leonardo
13d3b35141
Merge pull request #11116 from blishko/issue-10985
...
[SMTChecker] Handle InaccessibleDynamicType
2021-03-24 14:39:24 +01:00
Daniel Kirchner
8b3095920a
Inline ordinary jumps to small blocks and jumps to terminating control flow.
2021-03-24 13:50:24 +01:00
Martin Blicha
852e877ae7
[SMTChecker] Handle InaccessibleDynamicType
2021-03-24 11:53:06 +01:00
Djordje Mijovic
d0a854b312
Adding semantic tests for bytes.concat.
2021-03-24 11:49:21 +01:00
Djordje Mijovic
e7da9f3d52
Adding syntax tests for bytes.concat.
2021-03-24 11:49:21 +01:00
chriseth
d15ba987d1
Fix AST output if modifier invocation is base constructor call.
2021-03-24 11:24:26 +01:00
chriseth
e3ea5c631e
Merge pull request #11136 from ethereum/refactor-typepointer
...
Replace `TypePointer` with `Type const*`
2021-03-23 18:32:38 +01:00
Mathias Baumann
e197ebbdd1
Replace TypePointer
with Type const*
2021-03-23 11:47:19 +01:00
hrkrshnn
30e08ee3a5
Changelog and test for the KeccakCaching bug
2021-03-23 11:09:00 +01:00
Mathias Baumann
bccedf791b
Add creationCode/runtimeCode contract creation detection to call graph
2021-03-22 15:44:23 +01:00
chriseth
7aa51bcb40
Test updates.
2021-03-18 08:42:49 +01:00
Leonardo
25b31111df
Merge pull request #11040 from ethereum/smt_fix_virtual_one_more_time
...
[SMTChecker] Fix bug in virtual functions called by constructor
2021-03-17 16:54:36 +01:00
Harikrishnan Mulackal
35da404ca9
Merge pull request #11091 from ethereum/modifierInvocationAST
...
Add "kind" field to ModifierInvocation AST json element.
2021-03-16 19:44:40 +01:00
chriseth
0519473059
Add "kind" field to ModifierInvocation AST json element.
2021-03-16 18:50:37 +01:00
Martin Blicha
432944d0b4
[SMTChecker] Small refactoring of defining SMT expressions for structs/tuples
2021-03-16 15:34:43 +01:00
Martin Blicha
2f52affcc2
[SMTChecker] Correctly resolve current scope contract in VariableUsage.
2021-03-15 13:55:14 +01:00
Martin Blicha
6aa6c5f5f9
[SMTChecker] Reset reference variables on assignment to a variable of reference type
2021-03-12 19:51:31 +01:00
Leonardo Alt
998346e599
Fix bug in virtual functions called by constructor.
2021-03-12 16:42:28 +01:00
Martin Blicha
0cb75293f9
[SMTChecker] fix handling of assignments of array/mapping state variable accessed using contract name
2021-03-12 14:01:07 +01:00
Daniel Kirchner
6d19a25705
Fix compilation error with GCC 8.
2021-03-12 12:28:18 +01:00
Leonardo Alt
6fd76e830d
Fix CHC cex order
2021-03-11 10:36:40 +01:00
chriseth
89946b15d2
Merge pull request #10863 from ethereum/isoltestGasCosts
...
[isoltest] Add gas costs to function call expectations
2021-03-10 15:11:20 +01:00
Djordje Mijovic
b73e9f3eef
Update tests.
2021-03-10 14:22:30 +01:00
Djordje Mijovic
63017bd510
Not showing gas used if it is equal to m_gas(in case of out of gas failures).
2021-03-10 14:22:30 +01:00
Djordje Mijovic
06171a3100
Changing enforceGasCost functionality.
2021-03-10 14:22:26 +01:00
Djordje Mijovic
2b14efbbcc
Adding debug info on gas costs when updating gas values.
...
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2021-03-09 21:48:11 +01:00
Djordje Mijovic
14a3731182
Don't run gas for ir if it is not explicitely added to expectations.
2021-03-09 21:27:44 +01:00
Djordje Mijovic
2c575db0ea
Show both expected and obtained gas expectations when failure happens.
2021-03-09 21:27:38 +01:00
Djordje Mijovic
12ef273d06
Setting metadata has and version type for semantic tests to be empty.
2021-03-09 21:26:45 +01:00
Djordje Mijovic
cf59d7fc13
Making order of gas expectations deterministic.
2021-03-09 21:26:45 +01:00
Djordje Mijovic
aed3832b27
Implementing enforcing gas expectations in isoltest.
...
Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>
2021-03-09 21:26:45 +01:00
Djordje Mijovic
515f15f7a3
Small style fix for SemanticTest constructor.
2021-03-09 21:26:45 +01:00
Djordje Mijovic
5ea97a5d43
Running gas tests only on tests having expectations.
2021-03-09 21:26:45 +01:00
Djordje Mijovic
6d51dfb617
[isoltest] Adding gas used as semantic tests expectation.
2021-03-09 21:26:36 +01:00
Martin Blicha
4285c2803b
[SMTChecker] Fix ICE on array.pop nested inside 1-tuple
2021-03-09 20:00:51 +01:00
Leonardo
5677df86af
Merge pull request #11069 from blishko/smt-array-slice-fix
...
[SMTChecker] Use same sort name for array slice as for the underlying array
2021-03-09 16:39:12 +01:00
Daniel Kirchner
a75424eec4
Drop support for evm15 and eip-615.
2021-03-09 15:56:03 +01:00
Martin Blicha
5af01f6896
[SMTChecker] Use same sort name for array slice as for the underlying array.
2021-03-09 11:06:22 +01:00
Martin Blicha
385a664f3c
[SMTChecker] Fix public getter for array of structs.
2021-03-08 17:34:20 +01:00
Leonardo
d42d0faf41
Merge pull request #11052 from blishko/issue-10986
...
[SMTChecker] Correct handling of FixedBytes constants initialized with string literal
2021-03-04 16:51:22 +01:00
Martin Blicha
0340510c53
[SMTChecker] correct handling of FixedBytes constants initialized with string literal
2021-03-04 15:14:47 +01:00
Alexander Arlt
94895822d2
[isoltest] Add support for builtin functions.
2021-03-04 08:49:59 -05:00
Martin Blicha
9e81c81560
[SMTChecker] updated tests
2021-03-03 17:11:42 +01:00
chriseth
d2023f5f95
Check for invalid tags.
2021-03-02 16:53:31 +01:00
chriseth
5690020d88
Allow custom natspec tags.
2021-03-02 16:13:28 +01:00
chriseth
2a25d04896
Merge pull request #11023 from ethereum/natspecparsinglocations
...
Provide locations for docstring parsing errors.
2021-03-02 14:03:42 +01:00
chriseth
f4050e81c6
Provide locations for docstring parsing errors.
2021-03-01 17:34:25 +01:00
chriseth
5e94fce7df
Provide selector for some internal functions.
2021-03-01 16:19:59 +01:00
Kamil Śliwak
186d14d97f
FunctionCallGraph: Tests for constants, immutables and accessing function selectors
2021-02-25 16:00:53 +01:00
chriseth
eacf7c1cf9
Merge pull request #11009 from ethereum/properlyParseAddressMember
...
Properly parse address member.
2021-02-24 17:12:00 +01:00
chriseth
3d97e9a77b
Properly parse address member.
2021-02-24 16:44:16 +01:00
chriseth
5e9637bc39
Mapping access with multi-slot keys.
2021-02-24 13:44:23 +01:00
chriseth
2d48052ae5
Merge pull request #11003 from ethereum/ir-bug-incorrect-return-variable-count
...
Fix IR bug on deleting storage variables of function type.
2021-02-24 13:24:31 +01:00
hrkrshnn
2c2c7a4473
Fix IR bug on deleting storage variables of function type.
...
Calling the zeroing function assumed that the stack slots needed for the type was always 1. This is
false for function types.
2021-02-24 12:43:33 +01:00
Kamil Śliwak
e87cd0afdf
Check that there is an interface type before querying validity of location.
2021-02-24 11:22:40 +01:00
chriseth
1220d8df7b
Merge pull request #10998 from ethereum/clean-up-function-external-type-tests
...
Minor cleanup in syntax tests for function types
2021-02-23 17:59:26 +01:00
chriseth
e33c058a60
Merge pull request #10896 from ethereum/issue-10870
...
Fix issue with pop on storage array.
2021-02-23 17:49:17 +01:00
hrkrshnn
66d6d20f65
Converted hash collision error into a fatal type error.
...
The check is performed during ContractLevelChecker. However, the TypeChecker throws in certain cases
when it encounters functions, whose hashes collide.
2021-02-23 17:09:40 +01:00
Kamil Śliwak
cf2847afc4
Remove duplicate syntax tests for functions taking internal struct types
2021-02-23 16:46:49 +01:00
Kamil Śliwak
fc7a091bfb
Move several tests related to function types from nameAndTypeResolution/ to more specific directories
2021-02-23 16:46:49 +01:00
chriseth
596e8dd9b6
Merge pull request #10959 from ethereum/assert-too-strict
...
Loosened up a really strict assert from ABIFunctions.cpp
2021-02-23 14:59:14 +01:00
chriseth
02b27bdc64
Merge pull request #10976 from ethereum/fix-boost-filesystem-bug
...
Tests: Do not remove filename from boost filesystem path for corner cases
2021-02-23 14:43:55 +01:00
Alexander Arlt
ae6996efc1
Fix issue with pop on storage array.
2021-02-23 14:26:55 +01:00
chriseth
3dcba53595
Merge pull request #10993 from ethereum/fixModuleMemberNames
...
Fix module member names for importing with renaming.
2021-02-23 14:20:28 +01:00
Harikrishnan Mulackal
148e1150f2
Merge pull request #10992 from ethereum/detectAssignToFunction
...
Detect assignment to function in inline assembly.
2021-02-23 13:26:45 +01:00
chriseth
d586b7b57a
Merge pull request #10991 from ethereum/bareCallNoReturndatacopy
...
[Sol->Yul] Fix bare call wihout returndatacopy.
2021-02-23 13:24:50 +01:00
chriseth
c91cffa4ec
Fix module member names for importing with renaming.
2021-02-23 13:15:32 +01:00
chriseth
9c7b1e9c3f
Detect assignment to function in inline assembly.
2021-02-23 11:47:12 +01:00
Kamil Śliwak
54eb34d6fd
Move call graphs from CompilerStack to ContractDefinitionAnnotation
2021-02-23 10:47:02 +01:00
Kamil Śliwak
6c28120f19
Move CallGraph structure to a separate module
2021-02-23 10:47:02 +01:00
Kamil Śliwak
051995a373
Test suite for FunctionCallGraph
2021-02-23 10:46:28 +01:00
chriseth
e9b3dd21d0
Fix bare call wihout returndatacopy.
2021-02-23 10:45:01 +01:00
chriseth
e75e3fc2e3
Merge pull request #10977 from ethereum/replace-throw-with-boost-macro
...
Replace raw throw with BOOST_THROW_EXCEPTION.
2021-02-22 16:18:13 +01:00
Bhargava Shastry
1ddfc7463a
Tests: Do not remove filename from boost filesystem path for corner
...
cases.
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2021-02-22 10:32:41 +01:00
Harikrishnan Mulackal
6fd5ea01d1
Merge pull request #10971 from ethereum/onlyWarnAboutVariables
...
Only warn about variables being shadowed in inline assembly.
2021-02-19 16:17:02 +01:00
chriseth
78a097a012
Only warn about variables being shadowed in inline assembly.
2021-02-19 14:29:22 +01:00
Alexander Arlt
ae6710f4e7
test/libsolidity/util/ContractABIUtils.cpp: use std::bind.
2021-02-18 20:26:26 -05:00
Alexander Arlt
c44bb7e7ef
Replace raw throw with BOOST_THROW_EXCEPTION.
2021-02-18 20:23:59 -05:00
hrkrshnn
f336a68009
Added syntax tests for constructors with function parameter
2021-02-17 17:12:02 +01:00
Alex Beregszaszi
346344dc7b
Add missing test case for try/Catch
2021-02-16 12:33:55 +00:00
hrkrshnn
e24a23edcd
Semantic test where constructor has a function as parameter
2021-02-15 14:16:28 +01:00
Djordje Mijovic
6e62cbf156
Run metadata tests for every metadata format.
2021-02-12 10:38:03 +01:00
Djordje Mijovic
b598948211
Run gas tests on NoMetadata format only.
2021-02-12 10:38:03 +01:00
hrkrshnn
a76ff8af1d
Added tests for modifiers whose input is a function return value
2021-02-11 16:48:00 +01:00
chriseth
1716dcfb57
Merge pull request #10950 from ethereum/removeChecks
...
[SolYul] Remove (hopefully) unnecessary checks.
2021-02-11 14:10:05 +01:00
chriseth
45dc705683
Remove unnecessary checks.
2021-02-11 13:08:03 +01:00
chriseth
f4790971ae
Add test.
2021-02-11 10:50:54 +01:00
Christian Parpart
9ca389d6cd
MemberList.Member's last argument (declaration) made mandatory to avoid accidental missing out during construction.
2021-02-11 10:46:14 +01:00
chriseth
cbb197f7fa
Merge pull request #10833 from ethereum/ast-precise-name-locations
...
Extend the Solidity AST for precise locations of names
2021-02-11 10:44:58 +01:00
chriseth
70aa111dbf
Update AST Json expectations.
2021-02-11 10:11:24 +01:00
Harikrishnan Mulackal
215233d5c8
Merge pull request #10945 from ethereum/constructor-modifier-bugfix
...
Fix IR bug about calling the wrong modifier during construction
2021-02-10 21:42:45 +01:00
hrkrshnn
2f30fdaa21
Fix IR bug about calling the wrong modifier during construction
2021-02-10 20:53:11 +01:00
Christian Parpart
32ba5f5ae7
libsolidity: Extend the AST for named AST nodes in order to get precise locations for names.
...
The actual SourceLocation on an ASTNode is representing the whole
ASTNode whereas in an LSP (for example) you are also interested in the
SourceLocation of a name of a construct (e.g. variable decarlation, function definition, ...).
This also properly encodes non-existend sources as `-1` in the JSON output (eliminating the use of `numeric_limits<size_t>::max()`).
2021-02-10 18:13:09 +01:00
Daniel Kirchner
cb74a45fd6
Add inlining for old optimizer.
2021-02-09 19:08:58 +01:00
chriseth
e777cad78a
Merge pull request #10924 from ethereum/exportDocs
...
Export statement documentation.
2021-02-09 18:23:45 +01:00
chriseth
fcdb5e0b40
Export statement documentation.
2021-02-09 17:33:01 +01:00
hrkrshnn
8167029dc1
Updating tests after improving Yul error reporting
2021-02-09 16:55:33 +01:00
Djordje Mijovic
706f5d9874
[Sol2Yul] Fixing setLValue for calldata types.
2021-02-08 12:42:10 +01:00
chriseth
d4ce896582
Merge pull request #10886 from ethereum/issue-10874
...
OverrideSpecifier: Check for null before dereferencing
2021-02-04 14:12:07 +01:00
Mathias Baumann
3a8a74cbc7
OverrideSpecifier: Check for null before dereferencing
2021-02-04 13:17:28 +01:00
Daniel Kirchner
5faefdea65
Merge pull request #10893 from ethereum/string2BytesSol2Yul
...
[Sol->Yul] Fixing string calldata to bytes calldata conversion.
2021-02-04 10:33:40 +01:00
Djordje Mijovic
530435439d
[Sol->Yul] Fixing string calldata to bytes calldata conversion.
2021-02-04 09:30:19 +01:00
Leonardo
7405dc5b7f
Merge pull request #10836 from ethereum/smt_fix_cex_inheritance
...
Fix inheritance bug in CHC cex
2021-02-03 18:49:25 +01:00
Martin Blicha
4bcdac71df
[SMTChecker] updates to the tests
2021-02-03 15:53:58 +01:00
Leonardo Alt
665ce27c18
Fix inheritance bug in CHC cex
2021-02-02 18:06:32 +01:00
Martin Blicha
a49950cdf3
[SMTChecker] Added transaction constraints also for contract deployment
2021-02-01 16:46:34 +01:00
chriseth
c7d1e1911e
Merge pull request #10369 from ethereum/ewasm-polyfill-address-balance
...
[ewasm] Polyfill: balance, address.
2021-02-01 16:19:23 +01:00
Leonardo Alt
545305a31f
[SMTChecker] Fix super and virtual
2021-01-28 18:51:29 +01:00
Martin Blicha
deb90d84a6
[SMTChecker] added missing type constraints for Address
2021-01-27 20:39:24 +01:00
Martin Blicha
484e67815a
[SMTChecker] Basic support for inline assembly using over-approximating analysis
2021-01-26 16:20:50 +01:00
chriseth
4697beeab2
Merge pull request #10769 from ethereum/allocationCleanup
...
Cleanup allocation.
2021-01-26 11:58:11 +01:00
Leonardo
22ad64a0fd
Merge pull request #10845 from ethereum/smt_z3_4-8-10
...
Update smtCheckerTests for z3 4.8.10
2021-01-26 11:37:03 +01:00
hrkrshnn
133bc72970
Tests and changelog for <address>.code.length shortcut
2021-01-26 11:08:39 +01:00
Leonardo Alt
40221a90c4
Update smtCheckerTests for z3 4.8.10
2021-01-26 10:18:52 +01:00
hrkrshnn
ec57c791ef
Fix infinite loop when accessing circular constants from inline assembly.
2021-01-26 09:22:05 +01:00
Mathias Baumann
07a1d230cd
Fix missing error when accessing unintialized variables.
2021-01-25 14:44:15 +01:00
Kamil Śliwak
4ad0b4338a
Fix the 'intheritance' typo in the name of the of the subdirectories in semanticTests/
2021-01-25 11:17:06 +01:00
Leonardo Alt
a612daa783
Add msgvalue to cex
2021-01-21 19:05:44 +01:00
Leonardo
a75b87c80e
Merge pull request #10813 from ethereum/smt_targets_option
...
Add CLI and JSON option to select SMTChecker targets
2021-01-20 18:37:08 +01:00
chriseth
bbd29b24ab
Update tests.
2021-01-20 18:25:27 +01:00
chriseth
3cc07694ed
Cleanup allocation.
2021-01-20 18:25:27 +01:00
Leonardo Alt
3b23cadbdc
Add CLI and JSON option to select SMTChecker targets
2021-01-20 17:35:37 +01:00
chriseth
60cb8726f1
Enable test.
2021-01-20 14:02:35 +01:00
chriseth
aad7297b58
Merge pull request #10818 from ethereum/explainDisabled
...
Enable via yul or explain why disabled.
2021-01-20 14:01:09 +01:00
Alexander Arlt
f928107181
[ewasm] Polyfill: balance & address: Update Tests.
2021-01-19 13:04:45 -05:00
Alexander Arlt
87e3fbee6c
[ewasm] Polyfill: balance & address.
2021-01-19 13:03:40 -05:00
Leonardo
0b023b893e
Merge pull request #10817 from ethereum/splitShiftBytesTest
...
Split shift bytes test.
2021-01-19 16:16:45 +01:00
chriseth
06d19a9203
Enable via yul or explain why disabled.
2021-01-19 16:12:53 +01:00
chriseth
1fcc76a562
Fix empty packed encoder.
2021-01-19 15:50:04 +01:00
chriseth
52511a2163
Split shift bytes test.
2021-01-19 14:55:18 +01:00
chriseth
9caf671607
Merge pull request #10808 from ethereum/uninitializedInternal
...
Update expectations for uninitialized internal function.
2021-01-19 13:02:33 +01:00
chriseth
c3d3415207
Update expectations for uninitialized internal function.
2021-01-19 12:37:30 +01:00
Leonardo
9bde92ca20
Merge pull request #10807 from ethereum/fixIRReasonStrings
...
Properly omit require revert strings in IR code generator if requested.
2021-01-19 10:31:15 +01:00
Leonardo
957e9995a0
Merge pull request #10801 from blishko/issue-10793
...
[SMTChecker] Gather local variables also from nested try/catch clauses
2021-01-18 22:37:16 +01:00
chriseth
185e129657
Merge pull request #10776 from ethereum/fixABIEncoderWithSignature
...
Fix abi encode with signature shortcut.
2021-01-18 19:07:56 +01:00