Commit Graph

4017 Commits

Author SHA1 Message Date
Mathias Baumann
b8e2baf5f4 Use yul::AstWalker to resolve assembly symbols 2020-01-28 17:57:48 +01:00
Mathias Baumann
2f1f8e25c1 TestFramework: Remove headers from Options.h 2020-01-28 17:29:22 +01:00
rodiazet
f1004e712c [WASM] Add div, sdiv, mod, smod, exp, lt, sar, addmod, mulmod, signextend 2020-01-28 13:32:43 +01:00
Mathias Baumann
1027f6f78f Extract some semantic tests 2020-01-28 11:59:44 +01:00
Bhargava Shastry
8cbe1d4b1d yul proto fuzzer: Make function call generation optional 2020-01-24 12:31:43 +05:30
Bhargava Shastry
a335fed189 yul proto fuzzer: Add EVM version field 2020-01-24 12:31:20 +05:30
chriseth
790c6d2cae Tests for salted create. 2020-01-23 21:20:01 +01:00
chriseth
2fa586beac Test that uses function call options on overloaded function. 2020-01-23 21:20:01 +01:00
Mathias Baumann
a3f23d3158 Implement new with CREATE2 and function call options. 2020-01-23 21:20:01 +01:00
chriseth
679f729f2f Implement create2 for evmhost. 2020-01-23 21:20:01 +01:00
pinkiebell
bb6fb675e0 libsolidity/codegen: Use calldatacopy to cheaply zero memory instead of
codecopy.

Motiviation:
  Zero'ing memory is commonplace in contracts, but with the upcoming
  Layer-2 EVM translation layers and other on-chain verification
  mechanisms, using `codecopy` becomes a `costly` operation in those
  sandboxes. Using `calldatacopy` achieves the same thing, gas costs
  are also the same as codecopy, and is significantly cheaper in the `sandbox` situation.
2020-01-22 17:56:56 +01:00
Jason Cobb
595f569e97
Update tests for interface inheritance 2020-01-22 09:40:40 -05:00
Jason Cobb
573a054d5d
Prohibit interfaces inheriting from non-interfaces 2020-01-22 09:40:40 -05:00
chriseth
1b19524036
Merge pull request #8150 from ethereum/isoltest-alignment-output
[isoltest] Proper output of alignment in obtained test results
2020-01-20 12:38:12 +01:00
Bhargava Shastry
9befb4bdf0 yul proto fuzzer: Do not generate infinite for loops and limit total
number of for loops per test program to two
2020-01-20 16:27:01 +05:30
chriseth
470c19eb8c
Merge pull request #8165 from imapp-pl/yulopti-missing-step
yulopti: Add missing ConditionalUnsimplifier step
2020-01-20 11:45:29 +01:00
Alex Beregszaszi
004f01a388 Add test case for gas metering of exp(n, 0) 2020-01-17 14:24:55 +01:00
cameel
bf5e62931d fixup! [yulopti] Fix typo: (f)flatten -> (f)latten 2020-01-17 12:38:45 +01:00
cameel
49ca1f8534 [yulopti] Add missing ConditionalUnsimplifier to the list of available optimizations 2020-01-17 08:01:39 +01:00
cameel
4262eebdc4 [yulopti] Fix typo: (f)flatten -> (f)latten 2020-01-17 08:01:31 +01:00
Daniel Kirchner
ee5ff4df4e Clean up visibility via contract name and fix ICE on calling unimplemented base function. 2020-01-16 19:13:04 +01:00
Alex Beregszaszi
4d8758fcc3 Remove operator~ from FixedHash 2020-01-16 17:18:03 +00:00
Alex Beregszaszi
3c88d295b3 Remove FixedHash(unsigned) constructor 2020-01-16 16:18:08 +00:00
Erik Kundt
ae67cbde7d Fixes missing alignment output in isoltest. 2020-01-15 18:18:16 +01:00
chriseth
c017072bac
Merge pull request #8013 from ethereum/warnings
Enable more warnings in the build system
2020-01-15 18:00:14 +01:00
chriseth
5fb8e76931
Merge pull request #8136 from imapp-pl/polyfill-mstore8
mstore8 polyfill
2020-01-15 17:02:40 +01:00
Alex Beregszaszi
eafcb42be7 Enable more compiler warnings in the build system
"-pedantic -Wno-unknown-pragmas -Wimplicit-fallthrough"
2020-01-15 14:33:27 +00:00
chriseth
6ab8802601
Merge pull request #8132 from ethereum/drop-lll
Remove the LLL compiler
2020-01-15 15:15:22 +01:00
Alex Beregszaszi
9c19b93c37 Remove LLL specific features from libevmasm 2020-01-15 13:27:51 +00:00
chriseth
ed87b08911
Merge pull request #8066 from ethereum/removeAsmFlavour
Remove asm flavour
2020-01-15 14:21:54 +01:00
Alex Beregszaszi
1ee4b9dc3b Remove the LLL compiler 2020-01-15 13:18:18 +00:00
rodiazet
3760e90582 [WASM] mstore8 function implementation added. 2020-01-15 14:06:43 +01:00
chriseth
9d9a7ebe25
Merge pull request #7765 from ethereum/fix-7626
yul proto fuzzer: permit variable declarations inside for-init block
2020-01-15 11:21:23 +01:00
chriseth
0149220e0d
Merge pull request #8140 from nventuro/patch-1
Fix error message suggestion for receive
2020-01-14 23:36:09 +01:00
Nicolás Venturo
9649c92e12 Fix error message suggestion for receive 2020-01-14 23:24:27 +01:00
Mathias Baumann
21611f6b6f Add test for incorrect evm version when importing an ast tree 2020-01-14 18:42:43 +01:00
chriseth
b3fe84a6ea
Merge pull request #7153 from djudjuu/newImportAST
import ast from JSON
2020-01-14 17:56:53 +01:00
chriseth
0f014144c8 Test for true/false in inline assembly. 2020-01-14 17:16:09 +01:00
chriseth
123ea0a250 Remove asm flavour. 2020-01-14 17:16:09 +01:00
djudjuu
e8556fa1b2 Ast-Import from standard-json 2020-01-14 17:15:53 +01:00
Mathias Baumann
adc4774d4a ASTJSON: Export evm version 2020-01-14 12:51:21 +01:00
Christian Parpart
abb9f1eed7 CMake: Renaming devcore static library to solutil (to match source code paths) 2020-01-13 15:52:46 +01:00
Bhargava Shastry
49a05b5935 Permit variable declarations inside for init block 2020-01-13 16:17:33 +05:30
chriseth
a4e34b378a
Merge pull request #8105 from ethereum/functionTypeRefactor
Add a new Function Type referring to FunctionDefinition's without calling context and use it to allow selector lookup.
2020-01-09 17:15:46 +01:00
Daniel Kirchner
9535c0f520 Introduce FunctionKind::Declaration and allow accessing function signatures via contract name. 2020-01-09 15:40:41 +01:00
Daniel Kirchner
b845595cbd Ignore empty options to (i)soltest 2020-01-09 14:49:11 +01:00
chriseth
5ca3abd7cb
Merge pull request #8106 from random-internet-cat/move-contract-kind
Move ContractKind from ContractDefinition to file-scope
2020-01-08 13:06:26 +01:00
chriseth
e81e73345e
Merge pull request #8112 from ethereum/fixIndent
[tiny PR] Fix indentation in test/tools/CMakeLists.txt
2020-01-08 11:44:06 +01:00
Daniel Kirchner
61652366ab Fix indentation 2020-01-08 10:42:19 +01:00
chriseth
b5bd4787af
Merge pull request #7801 from ethereum/tuneRemat
Tune rematerializer
2020-01-08 10:41:32 +01:00
rodiazet
b8c59c56e0 [WASM] Add keccak256, balance, extcodecopy, blockhash, coinbase, log's, call, callcode, delegatecall, staticcall 2020-01-08 10:08:36 +01:00
chriseth
40c0602b5c Do not rematerialize in loops. 2020-01-08 09:56:08 +01:00
chriseth
25d3f27c11 Tune Rematerializer 2020-01-08 09:56:08 +01:00
chriseth
d1a7ff0fbc
Merge pull request #8008 from ethereum/large-code
Issue warning if codesize exceeds EIP-170 limits
2020-01-08 09:48:59 +01:00
Daniel Kirchner
70a2902714
Merge pull request #8100 from ethereum/deadTestArguments
Disallow dead positional arguments for (i)soltest
2020-01-07 16:56:10 +01:00
Daniel Kirchner
be0775da49
Merge pull request #8075 from ethereum/refactor-namespaces
Refactor namespaces
2020-01-07 16:52:20 +01:00
Mathias L. Baumann
a2141d3be2
Merge pull request #7869 from fulldecent/fix-kill
Reduce usage of word kill
2020-01-07 16:01:04 +01:00
Christian Parpart
345f9928ab Library libdevcore renamed to libsolutil. 2020-01-07 15:51:50 +01:00
Christian Parpart
8ac6258d31 lll: Adapted to namespace changes. 2020-01-07 15:51:50 +01:00
Christian Parpart
ed45b000d1 Adapt tests directory to C++ namespace changes. 2020-01-07 15:51:50 +01:00
Christian Parpart
6b23412fae C++ namespace cleanup (except tests). 2020-01-07 15:51:50 +01:00
Jason Cobb
529405deb6
Move ContractKind from ContractDefinition to file-scope 2020-01-07 09:11:29 -05:00
William Entriken
6d068b6331 Reduce usage of the word "kill" 2020-01-07 11:18:10 +01:00
Bhargava Shastry
49aec64caf abiv2 proto converter: Do not resize dynamic storage arrays by writing to the length field as it is now read only 2020-01-06 17:44:42 +01:00
Daniel Kirchner
3e714913a0 Disallow positional arguments for (i)soltest instead of ignoring 2020-01-06 15:28:20 +01:00
Leonardo Alt
d972a10b4f Review 1 2020-01-02 12:43:56 +01:00
chriseth
3994c9135f Tests. 2019-12-29 15:53:47 +01:00
Alex Beregszaszi
4d791b2679 Issue warning if codesize exceeds EIP-170 limits 2019-12-25 19:51:35 +01:00
Alex Beregszaszi
9c27e98b83 Rename EWasmBuiltinInterpreter to EwasmBuiltinInterpreter 2019-12-19 11:36:08 +00:00
Alex Beregszaszi
65e59ecd06 Rename EWasm/ewasm/eWasm to Ewasm 2019-12-19 11:36:08 +00:00
Alex Beregszaszi
8511012e95
Merge pull request #8060 from ethereum/yul-interp-fix
Fix getExternalCodeSize in the Yul Ewasm interpreter
2019-12-18 23:14:48 +00:00
Alex Beregszaszi
4cebe66f8c
Merge pull request #8059 from ethereum/dialectForOpt
Dialect setting for yul optimizer tests.
2019-12-18 22:56:35 +00:00
Alex Beregszaszi
47a8e5fbd1 Fix getExternalCodeSize in the Yul Ewasm interpreter 2019-12-18 22:54:34 +00:00
chriseth
1e59c19166 Dialect setting for yul optimizer tests. 2019-12-18 21:54:30 +01:00
rodiazet
d867f5339b [WASM] add i64.clz and i64.store8 to Wasm dialect and EWasm interpreter.
dsads
2019-12-18 19:51:27 +01:00
Alex Beregszaszi
7effc94f24 Rename EVMToEWasmTranslator to EVMToEwasmTranslator 2019-12-18 16:57:45 +00:00
Alex Beregszaszi
7d3ccee921 Fix implementation of getCodeSize in Ewasm 2019-12-18 14:58:28 +00:00
Alex Beregszaszi
b3caf35e88 Change writeU256/writeU128/writeAddress not to return anything in Yul Ewasm interpreter 2019-12-18 14:58:28 +00:00
Alex Beregszaszi
9f1e8086bb Fix returning code size in Yul Ewasm interpreter 2019-12-18 14:58:28 +00:00
chriseth
b74f357c5e
Merge pull request #8051 from ethereum/yul-interp-log
Fix tracing LOG instruction in the Yul Ewasm interpreter
2019-12-18 15:08:06 +01:00
Alex Beregszaszi
7d60cc1729 Fix tracing LOG instruction in the Yul Ewasm interpreter 2019-12-18 13:35:05 +00:00
rodiazet
7d8c4c24ee Add arithmetic test cases for most of EVM->Ewasm translator 2019-12-18 13:58:03 +01:00
chriseth
4b026fa633 Update gas costs. 2019-12-18 01:41:32 +01:00
chriseth
b6fc703a27 Merge remote-tracking branch 'origin/release' into HEAD 2019-12-17 19:47:59 +01:00
chriseth
85a503725c
Merge pull request #8015 from ethereum/yul-trace-unreachable
Add trace for unreachable in Yul Ewasm translation tests
2019-12-17 17:42:44 +01:00
chriseth
244b011a30 More test cases. 2019-12-17 17:08:27 +01:00
chriseth
143471fe87 Tests. 2019-12-17 15:47:32 +01:00
chriseth
bdd338a8de
Merge pull request #7921 from ghallak/func-selector-ast-json
Add function selector to FunctionDefinition AST JSON
2019-12-16 14:07:35 +01:00
Gaith Hallak
0396bc7beb Modify the tests to include the function selector 2019-12-16 15:16:54 +03:00
Alex Beregszaszi
2a808e4f32 Add trace for unreachable in Yul Ewasm translation tests 2019-12-15 13:28:38 +00:00
Erik Kundt
0620936506 Adds test for empty contract w/ error recovery. 2019-12-13 15:39:10 +01:00
Alex Beregszaszi
5db5382fac Remove boost <1.59 workaround from tests 2019-12-13 00:36:34 +00:00
chriseth
670b719773 Updates to control structures (2).
Co-Authored-By: Bhargava Shastry <bhargava.shastry@ethereum.org>
2019-12-12 17:01:57 +01:00
chriseth
b53629d3d0
Merge pull request #7977 from imapp-pl/yul-ewasm-tests-imapp
Add comparison test cases for most of EVM->Ewasm translator
2019-12-12 14:07:13 +01:00
chriseth
255f63e352
Merge pull request #7963 from ethereum/yul-ewasm-tests
Add bitwise test cases for most of EVM->Ewasm translator
2019-12-12 14:03:17 +01:00
chriseth
276c777af3
Merge pull request #7976 from ethereum/solc-api
Test solidity_free in tests too
2019-12-12 12:48:28 +01:00
Alex Beregszaszi
6e6bc9904f libsolc: change return type of compile to non-const 2019-12-12 11:26:16 +00:00
chriseth
c175a468ab Do not call ABIEncoderV2 experimental. 2019-12-12 10:59:07 +01:00
rodiazet
336b436d3e Add comparison test cases for most of EVM->Ewasm translator
Add comparison test cases for most of EVM->Ewasm translator
2019-12-11 23:23:35 +01:00
Alex Beregszaszi
2ccf3ea4ab Test solidity_free in tests too 2019-12-11 18:43:13 +00:00
Leonardo
b9c35916e5
Merge pull request #7975 from ethereum/solcjs-tests
Use master branch of solc-js
2019-12-11 19:02:00 +01:00
Alex Beregszaszi
9ce01b19b2 Use master branch of solc-js 2019-12-11 16:48:11 +00:00
chriseth
f22bd769ff
Merge pull request #7939 from ethereum/more_tests_override_stuff
Ambiguous override for public state variables
2019-12-11 17:16:59 +01:00
Bhargava Shastry
f5bd483dfa yul proto fuzzer: Target default evm version 2019-12-11 16:52:00 +01:00
Alex Beregszaszi
5998f31543 Use BOOST_REQUIRE instead of BOOST_CHECK in LibSolc tests where appropriate 2019-12-11 15:17:50 +00:00
Alex Beregszaszi
b7d6e44af7 Fix callback memory allocation in tests 2019-12-11 15:17:39 +00:00
Christian Parpart
8682af2216 libsolc: Overhauls memory management. 2019-12-11 15:17:39 +00:00
Leonardo Alt
1fb62b91d2 Add more override tests with public state variables 2019-12-11 15:15:51 +01:00
Alex Beregszaszi
8cb085ca0d Add bitwise test cases for most of EVM->Ewasm translator 2019-12-11 12:44:05 +00:00
Alex Beregszaszi
fbf946e493 Add also smoke tests for opcodes not part of Ewasm 2019-12-10 17:00:45 +00:00
Alex Beregszaszi
d8cf8e98bd Add basic test cases for most of EVM->Ewasm translator 2019-12-10 17:00:45 +00:00
chriseth
07d271e770 Merge remote-tracking branch 'origin/develop' into develop_060 2019-12-10 10:07:30 +01:00
Alex Beregszaszi
c9360421fc Move snark test from SolidityEndToEnd 2019-12-09 18:33:07 +00:00
chriseth
a5f7661075 Ambigous overrides for modifiers. 2019-12-09 18:43:59 +01:00
chriseth
152f42c6b2 Make ambigous override checker generic. 2019-12-09 18:41:39 +01:00
chriseth
6d2e59cc80 More tests. 2019-12-09 18:41:39 +01:00
chriseth
e1d6ce2b66 Override checks for modifiers. 2019-12-09 18:41:39 +01:00
Erik Kundt
1de27e0830 Adjusts solc-js DAO contracts to breaking natspec change. 2019-12-09 17:28:57 +01:00
chriseth
f6916a637e Merge remote-tracking branch 'origin/develop' into develop_060 2019-12-09 17:16:58 +01:00
Leonardo
2579a12bb8
Merge pull request #7894 from ethereum/smt_isoltest_choice
[SMTChecker] Create SMTSolver option in isoltest
2019-12-09 16:41:20 +01:00
chriseth
06e8e216b3 Some more tests. 2019-12-09 16:04:45 +01:00
Daniel Kirchner
4c7f9f9751 Do not require overriding for functions in common base with unique implementation. 2019-12-09 16:04:45 +01:00
chriseth
9c3503834d Fix semver matcher differently. 2019-12-09 15:45:01 +01:00
Leonardo Alt
beed0f6a27 Set tests that CVC4 can't handle to Z3 only 2019-12-09 15:32:08 +01:00
Leonardo Alt
8d5f5a5cbe Remove deprecated code 2019-12-09 15:32:08 +01:00
Leonardo Alt
77b9416d3e Extract SMTChecker mod test 2019-12-09 15:32:08 +01:00
Leonardo Alt
02343208ad Extract SMTChecker compound assignment division tests 2019-12-09 15:32:08 +01:00
Leonardo Alt
ae6cdc3442 Extract more SMTChecker division tests 2019-12-09 15:32:08 +01:00
Leonardo Alt
b870e4ea31 Extract SMTChecker division tests 2019-12-09 15:32:08 +01:00
Leonardo Alt
225041738e Add SMTCheckerTest for isoltest 2019-12-09 15:32:08 +01:00
Leonardo Alt
3e8584bd21 Pull SyntaxTest::run content into separate functions 2019-12-09 15:32:08 +01:00
chriseth
071a52f0ff Merge remote-tracking branch 'origin/develop' into develop_060 2019-12-09 14:43:53 +01:00
Alex Beregszaszi
b4a260d6e3 Test solc-js with v0.5.0
Reverts part of edd80a98
2019-12-09 13:17:38 +00:00
Mathias Baumann
e999409c89 Sync & update AST exporting according to AST changes 2019-12-09 10:42:24 +00:00
Christian Parpart
48dd1e398d test: Improve handling invalid EVMVersion syntax in test cases. 2019-12-09 10:14:27 +01:00
chriseth
e061f1e743 Merge remote-tracking branch 'origin/develop' into HEAD 2019-12-05 16:44:26 +01:00
chriseth
1fe1459b7d
Merge pull request #7583 from HenryRLee/issue5081
Version Checker: 0.5.x-prerelease will match `pragma solidity ^0.5` #5081
2019-12-05 14:59:58 +01:00
Mathias Baumann
b7d5de59c5 Implement overridding of functions by public variables 2019-12-05 12:48:52 +00:00
Gaith Hallak
4d90180e24 Support referencing other constants in inline assembly 2019-12-05 13:27:17 +03:00
chriseth
52467108ac
Merge pull request #7903 from ethereum/fixSuperFunction
Update missed tests for removal of superFunction.
2019-12-05 10:45:35 +01:00
chriseth
ac996d209f Fix gas cost test. 2019-12-05 10:17:09 +01:00
chriseth
c326641341 Update missed tests for removal of superFunction. 2019-12-05 09:37:52 +01:00
Daniel Kirchner
426f04b389 Implement and fix overriding unimplemented and implemented functions with unimplemented functions. 2019-12-05 09:26:43 +01:00
chriseth
2c72ee7017
Merge pull request #7902 from ethereum/fixTest
Fix test
2019-12-05 09:22:50 +01:00
chriseth
cf12e20e43 Fix test. 2019-12-05 09:12:05 +01:00
Daniel Kirchner
d3ba65968c Add new test. 2019-12-05 03:33:32 +01:00
Daniel Kirchner
7fab1c5e4a Update tests. 2019-12-05 03:33:32 +01:00
Henry Lee
628d219c94 Version Checker: 0.5.x-prerelease will match pragma solidity ^0.5
Basically, the pre-release rule is only applied when all remaining
version numbers equal to 0.
2019-12-05 09:07:20 +11:00
chriseth
d34b0b76b1
Merge pull request #7837 from ethereum/docstring-named-return
Report DocString error on named return paramater mismatch
2019-12-04 17:57:52 +01:00
chriseth
42d9a8e962 Merge remote-tracking branch 'origin/develop' into develop_060 2019-12-04 17:01:44 +01:00
Erik Kundt
19d466d6fb Fixes named return natspec errors in compilation tests. 2019-12-04 15:38:12 +01:00
Erik Kundt
e5cb0fe839 Reports doctring error on named return mismatch. 2019-12-04 15:38:11 +01:00
chriseth
bd26da8d37
Merge pull request #7892 from ethereum/fixArrayLoopBug
Increase loop size to account for net storage gas metering.
2019-12-04 15:31:17 +01:00
Mathias Baumann
12f18b0220 Fix commandline tests after "develop" -> "develop_060" merge 2019-12-04 13:54:06 +01:00
chriseth
4365b665f4 Increase loop size to account for net storage gas metering. 2019-12-04 13:13:05 +01:00
chriseth
af482470f9 Update gas costs. 2019-12-04 11:41:42 +01:00
chriseth
dc79274871 Set default EVM version to Istanbul. 2019-12-04 10:42:14 +01:00
chriseth
d0f9201ed4
Merge pull request #7866 from ethereum/considerInfiniteLoopsNonMovable
[Yul] Mark recursive functions and functions containing loops to be non-movable.
2019-12-03 22:02:20 +01:00
Leonardo Alt
d6e8ca4c54 Fix SMTChecker tests in 060 2019-12-03 21:44:10 +01:00
chriseth
f2790cc5e0
Merge pull request #7886 from ethereum/develop
Merge develop into develop_060
2019-12-03 21:41:49 +01:00
chriseth
f713b7e158 Remove trailing whitespace in test. 2019-12-03 21:38:20 +01:00
chriseth
bbeb093abf Detect loops in call graph generator. 2019-12-03 21:38:20 +01:00
chriseth
37d776a1a6
Merge pull request #7831 from ethereum/mocked-host
Use evmc::MockedHost moar
2019-12-03 21:27:50 +01:00
chriseth
e3ee67da6c
Merge pull request #7792 from ethereum/enableYulOptimizer
Enable yul optimizer by default.
2019-12-03 21:24:22 +01:00
chriseth
287b9be7af
Merge pull request #7872 from ethereum/smt_z3_4_8_7
Update to Z3 4.8.7
2019-12-03 21:23:40 +01:00
chriseth
2d42da3b7d
Merge pull request #7817 from ethereum/bail-on-shadowing-state-vars
Report error on shadowing state variables
2019-12-03 21:22:39 +01:00
Christian Parpart
7bbdfe070f Make shadowing of inherited state variables an error. 2019-12-03 21:20:03 +01:00
chriseth
2f11ac3590 Merge remote-tracking branch 'origin/develop' into develop_060 2019-12-03 21:17:15 +01:00
chriseth
19a6f09cc8 Merge commit '4d2f20570' into develop_060 2019-12-03 21:01:31 +01:00
chriseth
96d777d7f1 Merge commit 'a7d481fb9' into develop_060 2019-12-03 20:47:30 +01:00
Leonardo Alt
5337f58767 Update to Z3 4.8.7 2019-12-03 20:19:20 +01:00
Alex Beregszaszi
c644f43cde Update test expection in use_stack_optimization with YulException 2019-12-03 19:06:48 +01:00
Alex Beregszaszi
7156c908be Drop non-strict version of jsonParse* and always use jsonParseStrict 2019-12-03 16:20:23 +01:00
Daniel Kirchner
c1505d3f44 Fix solc-js tests. 2019-12-03 10:53:11 +01:00
Leonardo Alt
b1577f5e46 [SMTChecker] Fix ICE in array of structs type 2019-12-03 01:12:30 +01:00
Paweł Bylica
cdcfea73ab EVMHost: Remove unneeded methods 2019-12-02 23:22:27 +01:00
Paweł Bylica
0bd80ed958 EVMHost: Mark methods as final 2019-12-02 23:22:27 +01:00
Paweł Bylica
19f54857a6 EVMHost: Make m_currentAddress private 2019-12-02 23:22:27 +01:00
Paweł Bylica
eacc1753fd EVMHost: Remove unnecessary State struct 2019-12-02 23:22:27 +01:00
Paweł Bylica
7a0f311032 EVMHost: Use evmc::MockedAccount 2019-12-02 23:22:10 +01:00
Paweł Bylica
635e2fc9d3 EVMHost: Reuse tx_context from MockedHost 2019-12-02 23:04:02 +01:00
Paweł Bylica
2683c83ad2 EVMHost: Use recorded_logs from MockedHost 2019-12-02 23:04:02 +01:00
Alex Beregszaszi
1718250248 EVMHost: use evmc::MockedHost 2019-12-02 23:04:02 +01:00
Daniel Kirchner
05baa23e8a Require unimplemented functions to be virtual. 2019-12-02 21:59:00 +01:00
Alex Beregszaszi
c4012eee33 Update EVMHost to EVMC 7.1.0
Co-authored-by: Paweł Bylica <chfast@gmail.com>
2019-12-02 21:26:42 +01:00
Alex Beregszaszi
aba2ee0f68 Update EVMC to 7.1.0 2019-12-02 21:26:42 +01:00
Alex Beregszaszi
2a62425f0a EVMHost: mark precompiles as existing accounts in the constructor 2019-12-02 20:49:33 +01:00
Paweł Bylica
578d69983d EVMHost: Mark precompiles implementation as static methods 2019-12-02 20:41:50 +01:00
Alex Beregszaszi
fca0f6e2c1 Disable EndToEnd/snark test on <Byzantium (given the precompiles were introduced after) 2019-12-02 19:37:09 +01:00
Daniel Kirchner
77a9e91443 Enable yul optimizer by default. 2019-12-02 19:30:14 +01:00
Alex Beregszaszi
ddf6e067ed EVMHost: disallow Byzantium precompiles on earlier EVM versions 2019-12-02 19:11:18 +01:00
Erik Kundt
28ebe967a2 Force Gnosis PM fork of 0.6.0 2019-12-02 18:10:39 +01:00
Erik Kundt
1fbcf7bd8b Override Truffle version in Gnosis safe-contracts. 2019-12-02 18:10:39 +01:00
Erik Kundt
f13fa7ed82 Adjusts solc-js test to earlier override of soljson. 2019-12-02 18:10:39 +01:00
Erik Kundt
40b58adcdb Fixes solc path override in Truffle config. 2019-12-02 18:10:39 +01:00
Erik Kundt
3f00a0fc8c Fixes wrong URL of Zeppelin fork. 2019-12-02 18:10:39 +01:00
Erik Kundt
9f1348d7c7 Switches to Colony dappsys fork. 2019-12-02 18:10:39 +01:00
chriseth
c61ed0b22d
Merge pull request #7797 from ethereum/allowTranslationInAssemblyMode
Allow EVM to EWasm translation in assembly mode.
2019-12-02 13:15:06 +01:00
Leonardo
a7d481fb94
Merge pull request #7851 from ethereum/smt_fix_function_type
[SMTChecker] Fix ICE for arrays and mappings of functions.
2019-11-30 13:15:08 +01:00
Alex Beregszaszi
805d4d5a57 LLL: fix test cases after chaind/selfbalance was added 2019-11-30 11:56:22 +01:00
Leonardo
767ce4417f
Merge pull request #7850 from ethereum/smt_fix_typetype
[SMTChecker] Fix visit to IndexAccess that has type Type
2019-11-29 18:18:26 +01:00
Leonardo Alt
5adc2a40b9 [SMTChecker] Fix ICE for arrays and mappings of functions. 2019-11-29 18:06:44 +01:00
Leonardo Alt
9eda95caf9 [SMTChecker] Fix visit to IndexAccess that has type Type 2019-11-29 17:20:50 +01:00
Leonardo Alt
c09da092d2 [SMTChecker] Fix constructors with local vars 2019-11-29 16:59:15 +01:00
Leonardo Alt
84f806e75d Reenable push tests via Yul 2019-11-29 16:52:13 +01:00
Daniel Kirchner
edd80a986d Update emscripten to 1.39.3 2019-11-29 12:55:02 +01:00
Daniel Kirchner
909296582f Remove zeppelin truffle workaround 2019-11-28 21:31:12 +01:00
Daniel Kirchner
025a696bb0 Fix unrelated test failure. 2019-11-28 20:01:36 +01:00
Daniel Kirchner
7d1b0c6023 Fix Yul IR push 2019-11-28 18:11:38 +01:00
chriseth
bee2b9e120 Commandline test. 2019-11-28 16:22:24 +01:00
Leonardo Alt
a352abe00d [SMTChecker] Add support to constructors 2019-11-28 14:43:23 +01:00
chriseth
f7fc42d8c3
Merge pull request #7826 from ethereum/develop
Merge develop into develop_060
2019-11-28 13:37:19 +01:00
chriseth
301215f186
Merge pull request #7461 from sifmelcara/licm
[YulOpt] Implement loop-invariant code motion
2019-11-28 12:00:19 +01:00
mingchuan
db60d123d0 [YulOpt] Implement loop-invariant code motion 2019-11-28 11:59:29 +01:00
Leonardo Alt
240ff30878 [SMTChecker] Do not visit the name of a modifier invocation 2019-11-27 22:34:33 +01:00
chriseth
1ebcc757e1 Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-27 19:14:08 +01:00
chriseth
d207ae5dc7
Merge pull request #7798 from ethereum/evmc-literals
Use EVMC literals in EVMCHost
2019-11-27 19:12:07 +01:00
chriseth
80978293ab
Merge pull request #7818 from ethereum/evmc_vm
test: Use evmc::VM directly
2019-11-27 19:11:12 +01:00
Paweł Bylica
38a20190f4
test: Use evmc::VM directly
The evmc::VM works as a RAII wrapper similarly to unique_ptr, so there is no point in using additional unique_ptr.
2019-11-27 18:53:02 +01:00
Mathias Baumann
7bc6645218 Disallow use of virtual and private together 2019-11-27 18:52:41 +01:00
chriseth
0bb88dabb7 Restrict usage of plain "new". 2019-11-27 17:55:11 +01:00
chriseth
9e9b643b93 Tune the suite. 2019-11-27 11:56:11 +01:00
Alex Beregszaszi
e8b37c3bb5 Use EVMC literals in EVMCHost 2019-11-26 22:20:45 +01:00
Alex Beregszaszi
f14b7c7051 Update truffle* tests to use solc-js master_060 2019-11-26 19:11:28 +01:00
Alex Beregszaszi
1a4ee4ea34 Revert "Run solc-js tests against callback-context [REMOVE]"
This reverts commit 3133544313.
2019-11-26 19:11:11 +01:00
chriseth
7c063987c2
Merge pull request #7793 from ethereum/hex-tests
Add comprehensive tests to fromHex/toHex
2019-11-26 19:10:18 +01:00
Alex Beregszaszi
8fd95484fe Add comprehensive tests to fromHex/toHex 2019-11-26 17:34:50 +01:00
Bhargava Shastry
ea9e849ee4 Use pointer to string for efficiency 2019-11-26 17:12:56 +01:00
Bhargava Shastry
41bdc9b673 yul proto fuzzer: Generalize variable references 2019-11-26 17:12:56 +01:00
chriseth
400667fddf Update tests after merge from develop. 2019-11-26 16:27:07 +01:00
chriseth
b0db64ff5b Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-26 16:19:35 +01:00
chriseth
41177bc75c
Merge pull request #7770 from ethereum/yul_string_format
[Yul] Format string literals back to quoted string literals
2019-11-26 15:51:54 +01:00
chriseth
0973ae751a Do not warn about enabled ABIEncoderV2 anymore. 2019-11-26 15:49:42 +01:00
chriseth
d4d0df021d EWasm translation tests. 2019-11-26 15:46:33 +01:00
chriseth
6625f634fc Wasm Interpreter 2019-11-26 15:46:33 +01:00
Mathias L. Baumann
a45eed6dbf
Merge pull request #7584 from ethereum/callback-context
Introduce callback context in libsolc
2019-11-26 15:29:03 +01:00
Leonardo Alt
ce83bfb088 [Yul] Format string literals back to quoted string literals 2019-11-26 15:28:39 +01:00
Gaith Hallak
4a1e85436b Allow splitting string literals into multiple parts 2019-11-26 14:41:30 +03:00
chriseth
b6ad8f06e7
Merge pull request #7782 from ethereum/develop
Merge develop into develop_060
2019-11-25 17:58:09 +01:00
chriseth
78e4197cbc
Merge pull request #7764 from ethereum/ext-test-compile-split
[circleci] Splits out compilation only job for external tests
2019-11-25 17:30:15 +01:00
Alex Beregszaszi
3133544313 Run solc-js tests against callback-context [REMOVE] 2019-11-22 11:50:13 +00:00
Alex Beregszaszi
eedfafbbc4 Introduce callback context in libsolc 2019-11-22 11:42:39 +00:00
Leonardo Alt
ddc478e3e4 Add CallbackKind and use it for the SMT solver 2019-11-21 22:10:21 +00:00
chriseth
0201ff5a02
Merge pull request #7769 from ethereum/libsolc-doc
Document and clarify libsolc's interface
2019-11-21 22:57:32 +01:00
chriseth
a00f824479
Merge pull request #7773 from ethereum/develop
Merge develop into develop_060
2019-11-21 21:49:22 +01:00
Alex Beregszaszi
44c1f4a3bf Change the error message of empty callback/error in libsolc 2019-11-21 19:53:16 +00:00
chriseth
a26dd5a428 Remove trailing spaces in output. 2019-11-21 20:09:03 +01:00
chriseth
d5e9271592
Merge pull request #7350 from ethereum/array-length-rvalue
Make `length` member read-only
2019-11-21 19:22:42 +01:00
Alex Beregszaszi
65d4b82cbf Fix DAO test after recent solc-js updates
Updates on the "master_060" branch of solc-js removed the backwards compatibility.
2019-11-21 14:16:57 +00:00
Erik Kundt
26ab2d4c06 Splits out compilation only phase for external tests. 2019-11-21 00:00:27 +01:00
chriseth
8f2595957b
Merge pull request #7719 from ethereum/librarySignatuŕes
Add selector member to public and external library functions.
2019-11-20 18:43:14 +01:00
Leonardo Alt
72eff30778 Fix develop 060 merge 2019-11-20 13:49:40 +01:00
Leonardo Alt
389da5228e Merge remote-tracking branch 'origin/develop' into merge_develop_060 2019-11-20 12:27:40 +01:00
Erik Kundt
01705efb70 Adds and updates Yul tests for push() and pop(). 2019-11-20 12:04:47 +01:00
Daniel Kirchner
372df6b9e1 Implement array push and pop for yul and replace assignments in via yul tests. 2019-11-20 12:04:42 +01:00
chriseth
5deaac0849
Merge pull request #7740 from ethereum/istanbul
Enable support for Istanbul
2019-11-20 10:49:27 +01:00
Alex Beregszaszi
4d3aa6e99f Update to EVMC7
This file was missed in 92745c7bfc
2019-11-20 00:18:32 +01:00
Alex Beregszaszi
978fccd133 Remove obsolete file from test/evmc 2019-11-20 00:18:32 +01:00
Erik Kundt
c184fe8e5b Adjusts end-to-end tests to read-only array length. 2019-11-19 21:11:14 +01:00
Erik Kundt
7d6c0a50c2 Adjusts semantic tests to read-only array length. 2019-11-19 21:11:14 +01:00
Erik Kundt
d05afb34d6 Adjusts syntax tests to read-only array length. 2019-11-19 21:11:09 +01:00
chriseth
32f321e416
Merge pull request #7751 from ethereum/replace_boost_variant_std
Replace boost::variant by std::variant in libyul
2019-11-19 19:40:39 +01:00
chriseth
d696b3c92b
Merge pull request #7743 from ethereum/fixice-7558
Disallow conversion from ``super``
2019-11-19 18:52:33 +01:00
Alex Beregszaszi
2241c9181e Add README into the test/evmc directory 2019-11-19 17:42:26 +01:00
Leonardo Alt
be849b3c47 Replace boost::variant by std::variant in libyul 2019-11-19 17:23:18 +01:00
Mathias Baumann
23cad71c88 Disallow conversion from `super` 2019-11-19 17:14:11 +01:00
Alex Beregszaszi
17ed0f0898 Set costs to 0 for unreachable cases in GasCosts tests 2019-11-19 17:09:18 +01:00
Alex Beregszaszi
17f6a5a060 Update test expectations in GasCosts for ABIEncoderV2 2019-11-19 17:09:18 +01:00
Alex Beregszaszi
da50285ae3 Update test expectations in GasCostsTests 2019-11-19 17:09:18 +01:00
Alex Beregszaszi
cbb08ae3db Add semantic test for SELFBALANCE in inline assembly 2019-11-19 17:09:18 +01:00
Alex Beregszaszi
fc2af72a3d Add semantic test for CHAINID in inline assembly 2019-11-19 17:09:18 +01:00
chriseth
0033d63522 Run more tests on istanbul. 2019-11-19 17:09:18 +01:00
Alex Beregszaszi
840aba8929 Add new gas price for deployed bytecode (EIP2028) 2019-11-19 17:09:18 +01:00
Alex Beregszaszi
71a310a2ea Run fuzzer for istanbul 2019-11-19 17:09:18 +01:00
Mathias Baumann
eec1998a89 Update evmone version to v0.3.0 in docs and scripts 2019-11-19 16:49:43 +01:00
Erik Kundt
5020e186da Adjusts compilation tests to read-only array length. 2019-11-19 16:09:21 +01:00
Erik K
94272d44aa
Merge pull request #7745 from ethereum/develop
Merge develop into develop_060
2019-11-19 15:30:31 +01:00
chriseth
6797879128
Merge pull request #7647 from ethereum/virtual-5424
Implement virtual keyword
2019-11-19 13:21:27 +01:00
Alex Beregszaszi
9a124101ba Set chain_id in EVMHost 2019-11-19 12:28:18 +01:00
Alex Beregszaszi
6b198a261b Support Istanbul in EVMHost 2019-11-19 12:21:06 +01:00
Alex Beregszaszi
1432f0ad28 Adapt EVMHost for EVMC7 2019-11-19 12:21:03 +01:00
Erik Kundt
8faa6ffeaf Adjusts syntax and semantic tests to 0.6.0 2019-11-19 12:10:07 +01:00
chriseth
234513d0a4
Merge pull request #7735 from ethereum/cmdline-test-fix
Fix CLI test on 060
2019-11-19 11:59:35 +01:00
Erik Kundt
5f3fdc2476 Fixes failing commandline test. 2019-11-19 11:28:42 +01:00
Leonardo Alt
e500a262ea Fix SMTChecker tests for 060 2019-11-19 10:58:59 +01:00
Alex Beregszaszi
92745c7bfc Update EVMC to 7 2019-11-18 23:22:21 +01:00
Bhargava Shastry
62ae015552 docker: Add versioning and edit naming scheme 2019-11-18 15:16:53 +01:00
Bhargava Shastry
a8a50c4e0e Upgrade evmone to v0.2.0 and adapt fuzzer build 2019-11-18 15:16:53 +01:00
Leonardo Alt
d818746e0c [SMTChecker] Fix ICE in abi.decode 2019-11-18 13:15:10 +01:00
Bhargava Shastry
505b5deaf9 Add chainid and selfbalance opcodes to yul proto converter and enable it
in the yul proto differential fuzzer.
2019-11-18 09:26:00 +01:00
Daniel Kirchner
a0ae36ba70 Add selector member to public and external library functions. 2019-11-15 16:12:29 +01:00
chriseth
216e1749f4 Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-14 13:42:46 +01:00
chriseth
766309b6e4
Merge pull request #7713 from ethereum/no-lib-instance-7625
Disallow variables of library types
2019-11-14 13:39:56 +01:00
Mathias Baumann
0891b9451b Disallow variables of library types 2019-11-14 13:20:31 +01:00
chriseth
a667384517
Merge pull request #7712 from ethereum/fixIstanbulAsmParsing
Fix assembly parsing by passing evm version.
2019-11-14 13:20:15 +01:00
chriseth
b099374d8c Fix assembly parsing by passing evm version. 2019-11-14 13:06:36 +01:00
chriseth
8d46f39643
Merge pull request #7707 from ethereum/smt_ice_implicit_conversion
[SMTChecker] Fix ICE in string literal to fixed bytes conversion
2019-11-14 11:52:58 +01:00
Mathias Baumann
caa127e2a8 Make `abstract` keyword instead of reserved 2019-11-14 11:49:39 +01:00
Mathias Baumann
5b8ff78176 Implement virtual keyword 2019-11-14 11:49:39 +01:00
chriseth
f6191a7183
Merge pull request #7709 from ethereum/overloadMsgForMagic
Reconstruct function definition for magic variables in overload error message.
2019-11-14 11:24:54 +01:00