Commit Graph

6415 Commits

Author SHA1 Message Date
chriseth
1f8f1a3db9
Merge pull request #11484 from ethereum/fix-unreachable-code-anaysis
Fix revert pruner modifying function flows wrong
2021-06-04 12:44:35 +02:00
chriseth
8da5d6a854 Update test expectations. 2021-06-04 12:04:04 +02:00
chriseth
a8ffa6c08d
Merge pull request #11482 from ethereum/fixUnreachable2
Fix control-flow handling of modifiers without body.
2021-06-03 16:56:05 +02:00
chriseth
2e3ee4c156 Fix control-flow handling of modifiers without body. 2021-06-03 13:31:15 +02:00
hrkrshnn
c3eef8af91 Fix ICE related to receive function having parameters. 2021-06-03 13:08:57 +02:00
chriseth
a30cf6c3e8
Merge pull request #11480 from ethereum/event-mapping-fatal-error
Errors about nested mapping in event parameter are fatal.
2021-06-03 11:39:26 +02:00
hrkrshnn
2309ae3edd Added tests for internal or recursive types as event / error param
After converting the error about mapping parameter in event / error into a fatal type error, we were
missing tests that reached the "internal or recursive types" error.
2021-06-03 11:02:27 +02:00
hrkrshnn
cc915f023e Errors about nested mapping in event parameter are fatal.
(Also applies for error parameters.)
2021-06-03 11:02:27 +02:00
chriseth
c55d173a28
Merge pull request #11479 from ethereum/fix-ice-when-assigning-implicitly-convertible-function-array-to-storage
Fix ICE when assigning implicitly convertible function array to storage
2021-06-03 10:52:21 +02:00
chriseth
b00027724a
Merge pull request #11478 from ethereum/fix-ice-when-calling-invalid-external-function-type
Treat invalid external function type as a fatal error
2021-06-03 09:00:38 +02:00
chriseth
93936129f1
Merge pull request #11476 from ethereum/fix-ice-on-library-bound-to-literal
Fix ICE in IR when a library is bound to a literal
2021-06-03 08:58:00 +02:00
Kamil Śliwak
ccf658b0e8 Fix assertion preventing assignment of arrays of implicitly convertible function types 2021-06-03 08:56:02 +02:00
Kamil Śliwak
4a19c7e495 Treat invalid external function type as a fatal error to prevent the type from being used
- `returnParameterTypesWithoutDynamicTypes()` assumes it won't encounter such types.
2021-06-02 21:44:39 +02:00
Kamil Śliwak
d96cc3469a FunctionDefinition.resolveVirtual(): Skip unimplemented functions when lookup happens via super 2021-06-02 16:16:15 +02:00
Kamil Śliwak
67e87147b4 Extra asserts, test renaming, test for super in modifiers 2021-06-02 16:15:51 +02:00
Kamil Śliwak
3c7112ed2b Remove the assertion against functions bound to types for which should not be possible
- The list was wrong - we do support string and int literals
- The assertion was meant to guard against silently skipping over types for which there is no special handling. The current code handles everything in a generic way though and likely will not have to be adjusted for newly added types so the risk of that happening is low.
2021-06-02 13:59:42 +02:00
chriseth
4cbf9ff74c
Merge pull request #10143 from ethereum/issue-10084
ControlFlowAnalyser: Also consider called functions in a flow
2021-06-01 19:34:56 +02:00
Leo Alt
bf21cd400c Fix conversion from bytes to fixed bytes 2021-06-01 17:55:18 +02:00
Mathias Baumann
56ebea8b2f ControlFlowAnalyser: Also consider called functions in a flow 2021-06-01 15:54:37 +02:00
Leo Alt
547a6915ad Fix ICE on external calls from constructor 2021-06-01 14:21:48 +02:00
Leo Alt
97a7c5429b Add SMTChecker tests with modules 2021-06-01 13:35:44 +02:00
Leo Alt
8eb28b10cb Add SMTChecker tests with modules 2021-06-01 13:35:10 +02:00
chriseth
0623658ddd Properly set source location of bare blocks. 2021-05-31 18:28:17 +02:00
Alexander Arlt
376836a7fb Fix typo. 2021-05-31 10:07:26 -05:00
Harikrishnan Mulackal
8ecf79474b
Merge pull request #11458 from ethereum/event_indexed_mixed
Add test with event where indexed parameters are not the first.
2021-05-31 16:19:52 +02:00
chriseth
3dfa68a574
Merge pull request #11456 from ethereum/ice-abstract-contract-mapping-constructor
Fix ICE related to mapping types in abstract contract constructor
2021-05-31 15:35:26 +02:00
chriseth
28aad7e0b4 Add test with event where indexed parameters are not the first. 2021-05-31 15:19:56 +02:00
hrkrshnn
138873d918 Fix ICE related to mapping types in abstract contract constructor 2021-05-31 14:56:49 +02:00
chriseth
c09dc6144c
Merge pull request #11050 from ethereum/isoltest-effects-events
[isoltest] Add support for events using call side-effects.
2021-05-31 14:38:14 +02:00
chriseth
6dd5bcd3f0
Merge pull request #11454 from ethereum/data-location-error
Error message: try-catch parameter cannot be in storage.
2021-05-31 14:31:01 +02:00
hrkrshnn
f582d48f7b Error message: try-catch parameter cannot be in storage. 2021-05-31 11:25:08 +02:00
chriseth
29a995b937
Merge pull request #11433 from ethereum/panic-dedup
Insert a call to panic function in legacy codegen (and not inline it every single time)
2021-05-31 11:23:30 +02:00
Alexander Arlt
85e3fcb1bf [isoltest] Extract event specific end-to-end tests. 2021-05-27 23:21:55 -05:00
Alexander Arlt
ec86e3e9ae [isoltest] Add support for events using call side-effects. 2021-05-27 23:21:55 -05:00
Alex Beregszaszi
47167a42a7 Update tests 2021-05-27 18:31:54 +01:00
Alex Beregszaszi
cc8d341e28 Include utility functions in ExpressionCompiler tests 2021-05-27 18:31:54 +01:00
Leo Alt
d828aeee23 Update test nondet 2021-05-26 22:12:49 +02:00
Leo Alt
cb017b95cf update tests 2021-05-26 22:12:49 +02:00
Alexander Arlt
3c57ede026 Fix for boost v1.76. 2021-05-26 08:44:23 -05:00
chriseth
caa833909d
Merge pull request #11244 from ethereum/berlin-gas-update
Change default EVM version to Berlin and update Gas costs.
2021-05-26 13:34:04 +02:00
hrkrshnn
dc15e31605 Increased the tolerance for two GasMeter tests. 2021-05-26 12:23:06 +02:00
hrkrshnn
97c9d21376 Force two tests to go out of gas. 2021-05-26 12:23:06 +02:00
hrkrshnn
4d6c951396 Isoltest gas update after Berlin gas cost changes 2021-05-26 12:23:06 +02:00
hrkrshnn
180e00f56d Updated tests after changing EVM version to Berlin 2021-05-26 12:23:06 +02:00
hrkrshnn
d5564a0304 Set default EVM version to Berlin 2021-05-26 12:23:06 +02:00
hrkrshnn
7d28ea3746 Updated gas costs for Berlin 2021-05-26 11:36:43 +02:00
chriseth
6640fb8c8a
Merge pull request #11048 from ethereum/isoltest-effects
[isoltest] Add support for call side-effects.
2021-05-25 17:24:34 +02:00
hrkrshnn
d80a92752a Added a gas test for storage costs 2021-05-25 12:42:32 +02:00
hrkrshnn
1839d195be Clears EIP-2929 account and storage access indicator on new blocks.
For semantic tests each test (in the same test file) happens on a new block, however the storage and
account access indicators were not reset.
2021-05-25 12:32:59 +02:00
Alexander Arlt
66099fe938 [isoltest] Remove storage command left overs. 2021-05-24 08:36:46 -05:00
Alexander Arlt
e9ee571b35 [isoltest] Add support for call side-effects. 2021-05-22 00:12:07 -05:00
Kamil Śliwak
29c8f282e4
Merge pull request #11419 from ethereum/sc-inline
Properly support inliner in settings.optimizer.details
2021-05-21 17:51:39 +02:00
Alex Beregszaszi
cb2c246a7b Move contracts/FixedFeeRegistrar to semanticTests/externalContracts 2021-05-21 13:51:19 +01:00
Alexander Arlt
799106acfe [isoltest] Add account builtin.
Co-authored-by: Alex Beregszaszi <alex@rtfs.hu>
2021-05-21 12:38:05 +01:00
Alex Beregszaszi
75c72cd54d Properly support inliner in settings.optimizer.details 2021-05-20 20:22:34 +01:00
Alex Beregszaszi
13388e283e
Merge pull request #11385 from ethereum/temporary-working-directory-helper
TemporaryWorkingDirectory helper
2021-05-20 20:06:03 +01:00
Kamil Śliwak
4a2080b3aa TemporaryDirectory: Use boost::filesystem::equivalent() instead of == in path comparisons 2021-05-20 00:07:42 +02:00
Kamil Śliwak
828b15b34f Implement TemporaryWorkingDirectory test helper 2021-05-20 00:07:42 +02:00
Kamil Śliwak
d85cc6c06a Fix dangling reference produced by temporary passed to TestFileParser going out of scope
- This fixes the `stack-use-after-scope` error reported by asan.
2021-05-19 23:27:41 +02:00
Kamil Śliwak
752483b92f Minor style tweaks in test TestFileParser (names and wrapping) 2021-05-19 23:27:41 +02:00
Leonardo
dac24294c7
Merge pull request #11384 from ethereum/expose-temporary-directory-helper
Expose TemporaryDirectory helper
2021-05-18 12:44:10 +02:00
Harikrishnan Mulackal
21af5408d9
Merge pull request #11397 from ethereum/v1-test-cleanup
Cleanup ABICoder V1 tests
2021-05-17 16:20:22 +02:00
Martin Blicha
9c98ab59f0 SMTChecker: fixed struct constructor where FixedBytes member is initialized with a string literal 2021-05-17 13:52:37 +02:00
Alex Beregszaszi
3e8e5f3bf9 Fix v1/v2 tests to behave like they did pre-0.8.0 2021-05-17 12:37:10 +01:00
Alex Beregszaszi
299873182b Cleanup ABICoder V1 tests
Include the pragma explicitly, rename the file to have a _v1 suffix, and also add V2 counterparts where missing.
2021-05-17 12:37:10 +01:00
Harikrishnan Mulackal
85552b58d8
Merge pull request #11392 from ethereum/evmc-transfer
EVMHost: Fix selfdestruct with non-zero value at beneficiary and value-transfers with insufficient funds
2021-05-17 12:27:41 +02:00
Harikrishnan Mulackal
e76a8cbc31
Merge pull request #11395 from ethereum/prbmath
Fix prbmath.exp tests
2021-05-17 11:28:15 +02:00
Alex Beregszaszi
e73ee468a8 Update tests 2021-05-14 19:56:26 +01:00
Alex Beregszaszi
bb7f500bb1 Add sanity check into SemanticTest for not allowing ABIEncoderV1Only and compileViaYul together 2021-05-14 19:56:26 +01:00
Alex Beregszaszi
7dc514847a Fix prbmath.exp tests 2021-05-14 15:29:12 +01:00
Alex Beregszaszi
a54699f452 EVMHost: Fix selfdestruct with non-zero value at beneficiary and value-transfers with insufficient funds
Create a helper for transfering balance between two accounts. Check sufficient funds are available during a call-with-value.
2021-05-14 00:10:49 +01:00
Alex Beregszaszi
3172d28c56 Upgrade hera to v0.3.2-evmc8 2021-05-13 13:15:13 +01:00
Kamil Śliwak
cdebbb0dbb TemporaryDirectory: Expose boost::filesystem::path in class interface 2021-05-12 18:08:17 +02:00
Kamil Śliwak
5619702d31 Extract TemporaryDirectory test helper from yulPhaser's tests into a more general location 2021-05-12 17:16:29 +02:00
Alex Beregszaszi
99354a3b59 Upgrade evmone to 0.7.0 2021-05-12 16:56:23 +02:00
Alex Beregszaszi
c66c5c9f1d EVMHost: properly populate implicit access list for Berlin 2021-05-12 16:49:04 +02:00
Alex Beregszaszi
5bfd26287c Upgrade to EVMC 8.0.0 2021-05-12 16:49:04 +02:00
Daniel Kirchner
98e2b4e5ed
Merge pull request #11374 from ethereum/semanticTestVMLoadingAndFailures
Change loading of VMs and error messages during test.
2021-05-12 16:47:16 +02:00
Daniel Kirchner
06a9199967 Change loading of VMs and error messages during test. 2021-05-12 14:48:37 +02:00
Leo Alt
880a2fffb6 tests 2021-05-11 21:20:42 +02:00
Daniel Kirchner
6104ac1cdf Remove more imports of ranges namespace. 2021-05-07 15:42:17 +02:00
Djordje Mijovic
53e3081e81 Update gas costs in tests. 2021-05-05 11:33:09 +02:00
Djordje Mijovic
f0c5cdca9f [Sol->Yul] Adding util function to copy literal to storage.
Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>

Co-authored-by: chriseth <chris@ethereum.org>
2021-05-05 11:33:03 +02:00
chriseth
9d156b52c4
Merge pull request #8868 from ethereum/functionEntryPoints
Note function entry points.
2021-05-05 11:08:44 +02:00
chriseth
6d41ed024a Update existing tests. 2021-05-05 10:28:23 +02:00
chriseth
e7708b6006 Properly treat utf8-non-encodable yul literals. 2021-05-05 10:28:23 +02:00
Djordje Mijovic
8f6d94dbd2 Update gas expectations in semantic tests. 2021-05-05 08:53:40 +02:00
chriseth
f9c94d7c42 Note function entry points. 2021-05-04 17:15:13 +02:00
chriseth
faca036837
Merge pull request #11294 from ethereum/yulAstDebugDataRefactor
Removing location in favor of debugData in yul AST structures
2021-05-04 17:05:40 +02:00
Djordje Mijovic
e404b6e7a6 Refactoring yul source locations. 2021-05-04 16:05:23 +02:00
chriseth
aded56b5b9 Update tests 2021-05-03 18:28:43 +02:00
chriseth
2e274a0b26 Add commandline test to show debug strings. 2021-05-03 18:28:39 +02:00
Leo Alt
1642c10f6e Fix ICE in free functions 2021-05-03 10:57:11 +02:00
chriseth
996f3d31d5
Merge pull request #11321 from ethereum/test-prbmath
Add semantictest using prbmath
2021-05-03 10:36:30 +02:00
Alexander Arlt
68f0f36a2d [soltest] Improve Builtin Initialization. 2021-05-02 22:13:40 -05:00
chriseth
426d60f07b Commandline test updates. 2021-04-29 16:46:25 +02:00
chriseth
fcc98d12b8 Gas updates. 2021-04-29 16:45:05 +02:00
chriseth
f30ef06d62 Update tests. 2021-04-29 15:08:54 +02:00
Alexander Arlt
19ad9fac99 [isoltest] Add support to query balance. 2021-04-28 16:19:05 +02:00
chriseth
e1ae4e37a0 Allow user-defined functions called like builtins. 2021-04-28 16:16:32 +02:00
chriseth
5c02837485
Merge pull request #10982 from ethereum/storage_builtin
[isoltest] Replace storage command with storage builtin.
2021-04-28 15:38:29 +02:00
chriseth
2cd0bb11dc
Merge pull request #11316 from ethereum/verbatimdata-tests
Added a few optimizer tests for Verbatim
2021-04-28 10:19:19 +02:00
hrkrshnn
8b4eaeabbf Added a few optimizer tests for Verbatim 2021-04-28 09:56:45 +02:00
Alexander Arlt
ed27c77def [isoltest] Ignore gas checks on isoltest builtins. 2021-04-27 16:28:37 -05:00
Alexander Arlt
1f2711b0aa [isoltest] Replace storage command with 'storage_empty' builtin. 2021-04-27 16:28:37 -05:00
Alex Beregszaszi
0b3f3dff60 Add ramanujan's pi approximation as a semantic test 2021-04-27 20:47:42 +01:00
Alex Beregszaszi
484a4398a7 Add semantic tests using prb-math 2021-04-27 20:23:13 +01:00
Alex Beregszaszi
ada046ba9a Import prb-math for testing
From 62021c1abc
2021-04-27 20:08:33 +01:00
Alex Beregszaszi
5852972ec1
Merge pull request #11309 from ethereum/test-stringutils
Add some semantic tests using stringutils
2021-04-27 18:12:37 +01:00
Alex Beregszaszi
5331bc679a Fix some issues regarding checked arithmethics in stringutils 2021-04-27 17:05:40 +01:00
Alex Beregszaszi
6b3357be50 Add semantic tests using stringutils 2021-04-27 17:02:54 +01:00
chriseth
3548049c61
Merge pull request #10356 from ethereum/isoltest-add-enforce-ewasm
[test] Add support for --enforce-compile-to-ewasm.
2021-04-27 17:51:33 +02:00
Kamil Śliwak
43de99dee5 Use 'optimizationPreset: none' for objectCompiler tests that rely on things that could get optimized out 2021-04-27 14:07:04 +02:00
Kamil Śliwak
a51d72fb89 ObjectCompilerTest: Replace 'optimize' setting with 'optimizationPreset' 2021-04-27 14:06:56 +02:00
Kamil Śliwak
9c6f8c011f TestCaseReader: Add enumSetting() 2021-04-27 14:06:56 +02:00
Kamil Śliwak
28b9d27fae SoltestErrors: Qualify runtime_error with std:: to make it possible to use in in headers 2021-04-27 13:43:07 +02:00
Alex Beregszaszi
1a556aaa7f Move compilationTests/stringutils to semanticTests/externalContracts 2021-04-27 11:21:14 +01:00
chriseth
f72592549b
Merge pull request #11110 from ethereum/issue_10475_isoltest_external_sources
[isoltest] Add support for external sources.
2021-04-27 10:54:39 +02:00
Alexander Arlt
da38149f57 [test] Add support for --enforce-compile-to-ewasm. 2021-04-26 20:31:03 -05:00
chriseth
2b5a24e82e Add function side effects test. 2021-04-26 19:56:44 +02:00
chriseth
cb1af8b88a Make verbatim compatible with KnownState. 2021-04-26 19:56:44 +02:00
chriseth
e2d8005737 Add verbatim builtin. 2021-04-26 19:56:44 +02:00
Alexander Arlt
481971cbcf [isoltest] Add support for external sources. 2021-04-26 08:27:30 -05:00
chriseth
2969bc0f3e
Merge pull request #11302 from ethereum/drop-u160
Drop the util::u160 type
2021-04-26 15:12:20 +02:00
Alexander Arlt
8239eaa1b8 Fix test builtins & add simple smoke test. 2021-04-26 07:51:43 -05:00
chriseth
d9df3d50e2
Merge pull request #11311 from anurag-git/issue_10738-3
Use range-v3 loops(remove_erase, remove_erase_if)
2021-04-26 14:18:15 +02:00
chriseth
659da4bdc7
Merge pull request #11047 from ethereum/bytesToBytesNNConversion
Bytes to bytesNN conversion
2021-04-26 11:51:41 +02:00
anurag4u80
c4cf412fed Replaced boost remove_erase and remove_erase_if 2021-04-24 08:10:41 +05:30
Alex Beregszaszi
60189b4f61 Remove obsolete Error constructor 2021-04-23 23:55:22 +01:00
Kamil Śliwak
173a511809
Merge pull request #11303 from ethereum/noncopyable
Remove the usage of boost::noncopyable
2021-04-23 22:38:49 +02:00
Alex Beregszaszi
f952f851b7 Enable more semantic tests for Ewasm 2021-04-23 17:00:01 +01:00
Alex Beregszaszi
73b804aff4 Update tests 2021-04-23 15:54:10 +01:00
Alex Beregszaszi
e39433198d Remove the usage of boost::noncopyable
Prior to this half of the codebase used explicit deleted copy constructors, the others used boost::noncopyable.
2021-04-23 14:57:01 +01:00
Alex Beregszaszi
ac192ff4c1 Drop the util::u160 type 2021-04-23 14:35:06 +01:00
Alex Beregszaszi
37be1b3ed9 Remove dependency on util::160 in yulInterpreter
Instead apply explicit truncation or masking for readability.
2021-04-23 14:35:05 +01:00
Djordje Mijovic
eb457064b1 Adding semantic tests for bytes to bytesNN conversion. 2021-04-23 13:30:19 +02:00
Djordje Mijovic
ece42c07df Adding syntax test for bytes to bytesNN conversion. 2021-04-23 13:19:19 +02:00
Harikrishnan Mulackal
f162c484ca
Merge pull request #11026 from ethereum/resolve-keccak
Evaluate ``keccak256(a, const)``, when the value at memory location ``a`` is known at compile time and ``const <= 32``
2021-04-22 19:18:19 +02:00
hrkrshnn
b599235b8d Skip resolving Keccak if AST contains msize.
Also a refactoring changing `m_optimizeMLoad` to `m_containsMSize`.
2021-04-22 18:19:47 +02:00
hrkrshnn
3d29ae73e7 Isoltest: updated the gas tests. 2021-04-22 18:19:47 +02:00
hrkrshnn
b636ef881e Added command line tests for keccak optimization with low runs
The value of keccak256(0, 32) should not be replaced by the big constant
2021-04-22 18:19:47 +02:00
hrkrshnn
221292c278 Tests and changelog 2021-04-22 18:19:47 +02:00
hrkrshnn
1f5b874eaf Optimizer context has parameter expectedExecutionsPerDeployment 2021-04-22 17:27:57 +02:00
chriseth
a6a3af58a0 Add test. 2021-04-22 17:23:56 +02:00
chriseth
ec4558a245 Update gas costs. 2021-04-22 16:54:02 +02:00
chriseth
314f361d07 Update commandline tests. 2021-04-22 16:54:02 +02:00
chriseth
00fb2d390b Do not replace zeros by return variable. 2021-04-22 16:54:02 +02:00
Đorđe Mijović
8840fb6ffd
Merge pull request #11270 from ethereum/addingBoundsByteArraySolYul 2021-04-22 15:41:32 +02:00
chriseth
e408b708ac Use "for objects" dialect for function side effects test. 2021-04-22 14:37:51 +02:00
Djordje Mijovic
3a4233f3ad [Sol->Yul] Adding bounds check when increasing size of byte array. 2021-04-22 11:42:46 +02:00
chriseth
35b651103d Adjust cost of literal zero. 2021-04-22 11:42:42 +02:00
Alex Beregszaszi
8fb7a18800 Small refactorings for isoltest 2021-04-22 01:04:34 +01:00
Alex Beregszaszi
f1aaae36ee Upgrade to EVMC 7.5.0
One important change: MockedAccount.storage is a map and not unordered_map
2021-04-21 21:05:40 +01:00
Leonardo
7bbf3a694b
Merge pull request #11261 from ethereum/smt_choose_target
[SMTChecker] Add option to choose contracts to be analyzed
2021-04-21 13:11:33 +02:00
chriseth
c3d73982ea
Merge pull request #11268 from ethereum/refactorByteArrayPopSol2Yul
[Sol->Yul] Refactor ByteArrayPop to use unchecked index access
2021-04-21 13:05:00 +02:00
chriseth
e2120f1f2f
Merge pull request #11272 from ethereum/replace-boost-with-rangev3-solgen
Remove most boost usages in Yul proto converter
2021-04-21 12:21:57 +02:00
Djordje Mijovic
d03744489f Update cmdline tests. 2021-04-21 11:01:22 +02:00
Djordje Mijovic
9fcf16900d Update gas costs in smeantic tests. 2021-04-21 11:01:22 +02:00
Leonardo Alt
dd1865873e Choose contracts to be analyzed by the SMTChecker 2021-04-21 10:34:14 +02:00
Bhargava Shastry
69dd1771b7 Remove as many boost usages as possible in protoToYul.cpp 2021-04-20 18:46:19 +02:00
Alex Beregszaszi
4177270562 Trivial isoltest updates: comments always on the same line 2021-04-20 17:38:29 +02:00
Alex Beregszaszi
1be07c2b36 Trivial isoltest updates: missing // ---- at the end 2021-04-20 17:38:29 +02:00
Alex Beregszaszi
84c05d35f3 Trivial isoltest updates: normalized whitespace 2021-04-20 17:38:29 +02:00
Alex Beregszaszi
45c6bbe02b Trivial isoltest updates: directives sorted alphabetically 2021-04-20 17:21:56 +02:00
chriseth
cf7f814a4e
Merge pull request #10921 from ethereum/issue-10881
Natspec: Don't copy from base function if return parameters differ
2021-04-20 15:33:48 +02:00
Leonardo Alt
a39a6e26da update tests 2021-04-19 19:23:18 +02:00
Leonardo Alt
80892c8a21 Fix nondeterminism 2021-04-19 19:23:18 +02:00
Leonardo Alt
36def3ef6e tests for free constants 2021-04-19 19:23:18 +02:00
Leonardo Alt
fd8b4afb76 new free function tests 2021-04-19 19:23:18 +02:00
Leonardo Alt
095d337140 Basic support to free constants 2021-04-19 19:23:18 +02:00
Leonardo Alt
6ae82fcec2 Add tests for the library bug 2021-04-19 19:23:18 +02:00
Leonardo Alt
4e34359063 Basic support to free functions 2021-04-19 19:23:18 +02:00
chriseth
6a0a51110d
Merge pull request #11256 from ethereum/smt_target_array
Change settings.modelChecker.targets to take an array instead of string
2021-04-19 18:47:06 +02:00
Leonardo Alt
e3abde43f5 Change settings.modelChecker.targets to take an array instead of string 2021-04-19 17:53:03 +02:00
Kamil Śliwak
0d4871ad10 Prevent adding '-' CLI flag to allowed paths as if it was an actual file
- This resulted in a bug where using stdin was effectively disabling allowed path checks.
2021-04-19 16:58:48 +02:00
Kamil Śliwak
2abd3073d4
Merge pull request #11235 from ethereum/cmdline-tests-for-stdin
Allow using stdin in cmdlineTests
2021-04-19 16:21:43 +02:00
chriseth
1feca5dddb
Merge pull request #11259 from ethereum/exportErrorsInAst
Export used errors in the AST.
2021-04-19 15:53:32 +02:00
Mathias Baumann
1737bd7ded Natspec: Don't copy from base function if return parameters differ 2021-04-19 15:20:30 +02:00
chriseth
8eb0d5edf6 Export used errors in the AST. 2021-04-19 14:15:50 +02:00
Bhargava Shastry
14d2170b46
Merge pull request #11238 from ethereum/yul-interpreter-storage-state
Permit Yul interpreter vs Evmone storage comparison.
2021-04-19 12:22:59 +02:00
Kamil Śliwak
7b467a49d7 Disable assertion that gives non-deterministic results in in slice tests for SMTChecker 2021-04-15 17:14:21 +02:00
Bhargava Shastry
6941143613
Merge pull request #11216 from ethereum/fix-abiv2-fuzzer-bug
Fix use of const ref in Abiv2 and other proto fuzzers.
2021-04-14 15:03:57 +02:00
Bhargava Shastry
15bf6af77a Remove output parameters from function call since they are generated on the fly in the converter. 2021-04-14 13:53:37 +02:00
Bhargava Shastry
7c806217fb Changes to yul proto mutator. 2021-04-14 13:53:37 +02:00
Bhargava Shastry
cf08c9b255 Correct use of emplace_back 2021-04-14 13:53:37 +02:00
Bhargava Shastry
1709b2924b Changes to how function calls are generated. 2021-04-14 13:53:37 +02:00
Christian Parpart
81c7b30a6a
Merge pull request #11234 from ethereum/fix-file-reader-compiler-stack-source-unit-name-mismatch
Use identical source unit names in FileReader and CompilerStack
2021-04-14 13:46:14 +02:00
chriseth
11b227e33e
Merge pull request #11205 from ethereum/fix-docstring-bug
Fix docstring bug
2021-04-14 13:18:33 +02:00
Djordje Mijovic
ea5cda08c8 Adding tests for bytes.concat with fixed bytes arguments. 2021-04-14 11:21:24 +02:00
Bhargava Shastry
b1392ac988 Fix use of const ref in Abiv2 and other proto fuzzers. 2021-04-13 19:38:43 +02:00
Kamil Śliwak
59ef75cf5a cmdlineTests: Allow providing content of the standard input when not testing via Standard JSON 2021-04-13 13:37:12 +02:00
Kamil Śliwak
4e4f46cde5 cmdlineTests: Allow tests with no input file 2021-04-13 13:37:12 +02:00
Kamil Śliwak
cc65b426d0
Merge pull request #11237 from ethereum/fix-wrong-exit-code-update-in-cmdline-tests
Fix exit code update in cmdlineTests
2021-04-13 13:34:57 +02:00
Kamil Śliwak
6a41b417a3 FileReader: Store files loaded by the callback under their source unit name 2021-04-13 13:25:59 +02:00
Kamil Śliwak
b9b483a0c3 cmdlineTests.sh: Make regex for stripping version from test output match even if there's no whitespace after colon 2021-04-13 13:25:32 +02:00
chriseth
0289994da5
Merge pull request #11221 from ethereum/fixCalldataDecodingOverflowBug
Fix calldata decoding overflow bug
2021-04-12 18:11:29 +02:00
chriseth
4912bfe639
Merge pull request #11229 from ethereum/antlrPath
Fix import paths in grammar and grammar testing details.
2021-04-12 16:30:41 +02:00
Daniel Kirchner
6fdfd8b62b Fix import path grammar and grammar testing details. 2021-04-12 14:54:36 +02:00
chriseth
2ed17e4b43 Update tests. 2021-04-12 13:43:56 +02:00
chriseth
72d0a56a72 Fix array decoding offset overflow. 2021-04-12 13:43:51 +02:00
chriseth
32b8332867 Refactor array decoding. 2021-04-12 13:43:51 +02:00
Bhargava Shastry
033ee0e2bc Permit Yul interpreter vs Evmone storage comparison. 2021-04-12 10:39:23 +02:00
hrkrshnn
382c488edd Fix missing error when events are used without an emit statement.
Whenever there was a proper invocation of events, the compiler assumed that all the subsequent
invocations were proper.
2021-04-12 10:23:05 +02:00
Kamil Śliwak
7d37e37d95 cmdlineTests.sh: Fix error code update using the wrong value 2021-04-10 22:58:49 +02:00
Leonardo Alt
8a7e94c06f Keep pragma in smoke test for bytecode compare script 2021-04-08 21:03:39 +02:00
Leonardo Alt
ad10bee8f0 update command line tests 2021-04-08 21:03:39 +02:00
Leonardo Alt
0a4afa71bd Update old tests 2021-04-08 21:03:39 +02:00
Leonardo Alt
d617ef461e Add new tests 2021-04-08 21:03:38 +02:00
chriseth
0cc0cabd30
Merge pull request #11224 from ethereum/lastAllocationUnbounded
Use unbounded allocation before returning.
2021-04-08 19:32:40 +02:00
Daniel Kirchner
96c8123b6b Use unbounded allocation before returning. 2021-04-08 18:37:24 +02:00
hrkrshnn
e96a161115 Tests and changelog 2021-04-08 17:06:24 +02:00
chriseth
2856f56525
Merge pull request #10942 from ethereum/returnSlotAllocation
Delayed return slot allocation.
2021-04-08 16:42:07 +02:00
chriseth
f04adde664 Allow hex string literals in Yul. 2021-04-08 15:03:33 +02:00
chriseth
6d6112a81b
Merge pull request #11210 from anurag-git/issue_10738-2
Use range-v3 loops(transform)
2021-04-08 14:56:15 +02:00
anurag4u80
b2ca7916aa Replaced boost::adaptors::transformed 2021-04-08 17:38:14 +05:30
Harikrishnan Mulackal
c060bd5633
Merge pull request #11211 from ethereum/someTests
Add some bytecode reference tests.
2021-04-08 09:29:51 +02:00
Christian Parpart
a5cae64a48
Merge pull request #11113 from ethereum/filereader
Extracts import file reading & remapping logic out of CommandLineInterface into their own classes.
2021-04-06 22:38:19 +02:00
chriseth
47728a083f Add some bytecode reference tests. 2021-04-06 16:25:02 +02:00
Christian Parpart
3490577140 Extract import-file remapping logic out of CompilerStack into ImportRemapper. 2021-04-06 14:28:53 +02:00
Bhargava Shastry
6f3095a199
Merge pull request #11141 from ethereum/compilation-framework-fuzzer
Enable multi-source fuzzing.
2021-04-06 14:00:11 +02:00
Daniel Kirchner
6fc4b04d1d Update test expectations. 2021-04-06 13:41:26 +02:00
Daniel Kirchner
4b0f8383a6 Reuse function argument slots and defer allocation of return variable slots in EVMCodeTransform. 2021-04-06 13:38:05 +02:00
Daniel Kirchner
04a051d380 Add test cases for return slot allocation. 2021-04-06 13:31:22 +02:00
chriseth
98a8640928
Merge pull request #11203 from anurag-git/issue_10738-1
Use range-v3 loops (reverse, keys, values)
2021-04-01 12:19:40 +02:00
anurag4u80
bbcdddeed9 Replaced keys, values and reverse with ranges 2021-03-31 23:33:04 +05:30
Djordje Mijovic
aeba059192 Fixing auto update for macos. 2021-03-31 16:51:01 +02:00
Martin Blicha
330fb8f4d0 [SMTChecker] Assignment refactoring 2021-03-31 13:36:50 +02:00
Leonardo
78d94737a4
Merge pull request #11188 from blishko/issue-11181
[SMTChecker] Fix crash when analysing try-catch clauses with function call.
2021-03-31 11:24:36 +02:00
Mathias Baumann
e590a99f39 Detect circular references for library and free functions 2021-03-30 23:06:30 +02:00
chriseth
79d7466e19 NatSpec for errors. 2021-03-30 21:16:58 +02:00
chriseth
517cd17a6f Add errors to the ABI. 2021-03-30 21:16:58 +02:00
chriseth
e877e2bba7 Use all referenced errors. 2021-03-30 21:15:46 +02:00
chriseth
1057fd5355 Take revert statement into account in control flow graph. 2021-03-30 21:15:46 +02:00
chriseth
d5669696d5 Code generation for errors. 2021-03-30 21:15:46 +02:00
chriseth
fb67051467 Revert statement. 2021-03-30 21:15:46 +02:00
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
Bhargava Shastry
f3f1ccc34f Fix false positive caused by early termination due to nested expressions. 2021-03-26 13:35:57 +01:00
Đorđe Mijović
d75a132f33
Merge pull request #11166 from ethereum/cmdLineTestsDevVersionFix 2021-03-25 19:06:26 +01:00
Djordje Mijovic
08993a3282 Enabling running cmd line tests on currently unreleased version.
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2021-03-25 17:11:31 +01: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
hrkrshnn
4fbf5a3f12 Added few more tests for low level inliner. 2021-03-24 13:50: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
Leonardo
70c1720903
Merge pull request #11129 from blishko/smt-ci-tests
Run SMTChecker tests for all EVM versions
2021-03-24 10:31:44 +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
Bhargava Shastry
f9182e9f88 Minor changes to Solidity compilation framework fuzzer. 2021-03-23 13:17:41 +01:00
Martin Blicha
145a03bdd6 Run SMTChecker tests on all EVM versions 2021-03-23 12:51:52 +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
baf2ff2a6e Proof. 2021-03-18 08:42:49 +01:00
chriseth
2c8540b1f9 Yul optimizer test updates. 2021-03-18 08:42:49 +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
hrkrshnn
6d9e9e1b1e Fix small bug in GasMeter calculation in creation context
Old calculation did not ignore `optimize-runs` parameter, when creation code gas computations were
done. This would lead to expanding values such as `shl(180, 1)` inside constructor code, even for
the default value for `--optimize-runs`, i.e., 200.
2021-03-17 12:33:10 +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
Alex Beregszaszi
7fd1a3132d
Merge pull request #11098 from ethereum/isoltest-yes
isoltest: add --accept-updates option
2021-03-15 19:10:02 +00:00
Kamil Śliwak
5376a3deb6
Merge pull request #10879 from ethereum/silence-remaining-shellcheck-warnings-and-remove-ignore-list
Silence remaining shellcheck warnings and remove ignore list
2021-03-15 19:58:42 +01:00
Alex Beregszaszi
1c176cc1ee isoltest: add --accept-updates option 2021-03-15 14:31:01 +00:00
Martin Blicha
2f52affcc2 [SMTChecker] Correctly resolve current scope contract in VariableUsage. 2021-03-15 13:55:14 +01:00
Kamil Śliwak
8e44b59251 Disable shellcheck in the remaining situations where it's either wrong or the problem is not worth fixing 2021-03-15 12:16:43 +01:00
Kamil Śliwak
7929175db6 Add shellcheck source directive in places where it can't find sourced files on its own 2021-03-15 12:16:43 +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
1265b39904
Merge pull request #11095 from ethereum/fixGcc8
Fix compilation error with GCC 8.
2021-03-12 13:25:25 +01:00
Daniel Kirchner
6d19a25705 Fix compilation error with GCC 8. 2021-03-12 12:28:18 +01:00
Bhargava Shastry
788eb02825 EVMHost: Use std::map for storage so that slots are stored in some order. 2021-03-12 09:39:15 +01:00
Leonardo Alt
6fd76e830d Fix CHC cex order 2021-03-11 10:36:40 +01:00
Bhargava Shastry
a30b071a5d Update test/EVMHost.cpp
Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>
2021-03-10 18:10:20 +01:00
Bhargava Shastry
8023fdb537 Extract state printing to a separate class. 2021-03-10 17:41:03 +01:00
Bhargava Shastry
24f42c5541 Filter false positives due to EVM errors.
Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>
2021-03-10 17:41:03 +01:00
Bhargava Shastry
34c08ea2c6 EVMHost: Add tracing features needed for fuzzing. 2021-03-10 17:41:03 +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
chriseth
ad5d34df74
Merge pull request #11071 from ethereum/fixCRInSourceRefFor
Fix handling of carriage return.
2021-03-09 17:52:34 +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
chriseth
5c2cd8d553
Merge pull request #11073 from ethereum/extractStackReuseTests
Extract StackReuseCodegen tests.
2021-03-09 15:52:23 +01:00
Daniel Kirchner
e99da7e015 Extract StackReuseCodegen tests. 2021-03-09 15:47:24 +01:00
chriseth
eb85a4414c Fix handling of carriage return. 2021-03-09 15:33:12 +01:00
chriseth
40c27ccc22 Move AND with constant inside OR. 2021-03-09 15:26:19 +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
Kamil Śliwak
093ea4612b
Merge pull request #10586 from ethereum/shellcheck-fixes-part1
Fixes for shellcheck warnings, part 1
2021-03-05 17:13:46 +01:00
Daniel Kirchner
acd3084076 Fuzzer for stack optimiser/code generator. 2021-03-04 17:35:56 +01:00
Bhargava Shastry
ca267e50d3
Merge pull request #11053 from ethereum/protoConverter-opcode-filter-flag
Proto yul converter: Provide a flag to filter stateful instructions.
2021-03-04 17:31:52 +01:00
Kamil Śliwak
c8fc241be5 Avoid using $? in conditions and do && exit 1 instead if ! 2021-03-04 16:57:25 +01:00
Kamil Śliwak
e8a70e8e4b Prefix globs with ./ or use -- to make commands safe with files named like command-line options 2021-03-04 16:57:25 +01:00
Kamil Śliwak
a05f3a608d Don't use $ on variables inside (()) 2021-03-04 16:53:05 +01:00
Kamil Śliwak
2784135c37 Use read with the -r option 2021-03-04 16:53:05 +01:00
Kamil Śliwak
75b87d159d Declare variables separately when assigning the result of $() 2021-03-04 16:53:05 +01:00
Kamil Śliwak
4c186321c8 Replace some older shell syntax with newer and/or more reliable equivalents 2021-03-04 16:53:05 +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
Bhargava Shastry
a34308e4cb Proto yul converter: Provide a flag to filter stateful instructions. 2021-03-04 15:20:19 +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
ce5c5970d6
Merge pull request #11015 from ethereum/fixSelectorForInternal
[Sol->Yul] Provide selector for some internal functions.
2021-03-02 12:24:53 +01:00
Bhargava Shastry
e96a3e01f8 EVMHost: Add function to print storage at all addresses in the host. 2021-03-01 20:00:55 +01:00
Bhargava Shastry
069ac9c9a9
Merge pull request #10878 from ethereum/refactor-solProtoFuzzer
Fuzzer: Refactor utility methods shared by proto fuzzers.
2021-03-01 19:56:10 +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
Harikrishnan Mulackal
58e0977647
Merge pull request #10994 from ethereum/remove-remains-of-ast-json-option
Remove the last remains of --ast-json option
2021-02-24 10:21:30 +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
chriseth
7d0ecd9406
Merge pull request #10535 from ethereum/removeNumbers
Improve generated names.
2021-02-23 13:29:18 +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
Kamil Śliwak
01f8005d04 Remove the last remains of --ast-json option 2021-02-23 12:39:19 +01:00
Bhargava Shastry
c9f1b55073
Merge pull request #10967 from ethereum/proto-mutator
Proto mutator: Add control flow to basic blocks
2021-02-23 12:03:52 +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
758d159d87 yul proto mutator: Add control flow to block statements. 2021-02-22 15:10:41 +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
Bhargava Shastry
91b7d60301 Optimiser fuzzer: Disable reasoning based simplifier runs. 2021-02-18 10:48:49 +01:00
hrkrshnn
f336a68009 Added syntax tests for constructors with function parameter 2021-02-17 17:12:02 +01:00
chriseth
612d8184d1 Update tests. 2021-02-16 15:50:48 +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
Bhargava Shastry
febccdd96a Fuzzer: Refactor utility methods shared by proto fuzzers.
Co-authored-by: Leonardo <leo@ethereum.org>
Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>
2021-02-10 11:43:57 +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
chriseth
2e699e8865
Merge pull request #10923 from ethereum/improve-error-reporting
Improve error reporting
2021-02-09 17:18:44 +01:00
hrkrshnn
8167029dc1 Updating tests after improving Yul error reporting 2021-02-09 16:55:33 +01:00
Bhargava Shastry
75e7e1bee7 Consistent use of returns documentation tag. 2021-02-09 12:51:36 +01:00
Bhargava Shastry
896de75bcb Solidity fuzzer: Add test state. 2021-02-09 12:49:35 +01:00
chriseth
c82c2189d4
Merge pull request #10877 from ethereum/bash-arrays-for-arg-variables
Use Bash arrays for argument lists in shell scripts
2021-02-08 13:31:31 +01:00
Bhargava Shastry
8843890785
Merge pull request #10902 from ethereum/unified-solc-fuzzer
Unify solc fuzzers.
2021-02-08 13:25:52 +01:00
Djordje Mijovic
706f5d9874 [Sol2Yul] Fixing setLValue for calldata types. 2021-02-08 12:42:10 +01:00