Commit Graph

4277 Commits

Author SHA1 Message Date
chriseth
704820cc6e Update tests. 2021-08-16 22:24:06 +02:00
Alexander Arlt
866617b353 [isoltest] Add support for fixed point types. 2021-08-16 13:07:22 +02:00
chriseth
d7a802e4bf
Merge pull request #11682 from ethereum/fixedPointTypes
Fixed point types for isoltest
2021-08-13 09:37:29 +02:00
Leo Alt
937af7d722 Fix SMT test 2021-08-12 22:34:18 +02:00
Alexander Arlt
d6b9b4175b [isoltest] Add support for fixed point types. 2021-08-12 21:27:51 +02:00
chriseth
fe0d027d45
Merge pull request #11785 from ethereum/someMoreBaseFees
Some more base fees.
2021-08-12 19:48:10 +02:00
Leo Alt
6ee60aa628 Fix false positive on external calls from constructors 2021-08-12 18:51:55 +02:00
chriseth
c87c0f02bd Test updates. 2021-08-12 16:56:12 +02:00
chriseth
90c4623460 Some more base fees. 2021-08-12 16:37:21 +02:00
chriseth
ccdc11ea5b
Merge pull request #11741 from ethereum/shadowing_inlineasm_fix_yul_codegen
Fixed inline assembly external identifier access.
2021-08-12 14:38:24 +02:00
Leo Alt
10397e440c Fix ICE in constants 2021-08-12 10:53:01 +02:00
chriseth
a4c94a1b5b Fixed inline assembly external identifier access. 2021-08-11 18:18:29 +02:00
hrkrshnn
892700d769 Tests for basefee as identifier in inline assembly
Also added basefee to `EVMVersion::hasOpcode(...)`
2021-08-11 10:46:40 +02:00
hrkrshnn
7f1a2be0fe Allow basefee as Yul identifier for EVMVersion < london
This was done to prevent basefee from being a breaking change. This change will be removed in 0.9.0.

TODO revert this commit in breaking.
2021-08-11 10:46:08 +02:00
hrkrshnn
79733fca48 Set default EVM version to London. 2021-08-11 09:54:14 +02:00
hrkrshnn
43605d9299 Tests and Changelog for basefee. 2021-08-11 09:51:12 +02:00
Leo Alt
ee6285d6d7 Do not create VCs for underoverflow by default for Sol >=0.8 2021-08-09 14:12:31 +02:00
chriseth
db85849648
Merge pull request #11737 from ethereum/fix_shift_cleanup
Yul: Fix cleanup for left shift of bytes types.
2021-08-05 12:55:42 +02:00
chriseth
6b888b531b Refactor conversion function. 2021-08-05 11:48:35 +02:00
chriseth
0112fed73b Yul: Fix cleanup for left shift of bytes types. 2021-08-05 10:54:48 +02:00
Leo Alt
3c1f555f71 Tests 2021-08-04 13:54:50 +02:00
chriseth
ffc5cfd9a5 Remove scanner from compiler stack. 2021-08-03 15:43:17 +02:00
Leo Alt
6c8ecfa82c Add option to choose solver 2021-07-27 17:14:21 +02:00
Kamil Śliwak
9a7c364c71 Process input files in Standard JSON mode just like in other modes
- This makes `-` for stdin work.
- `--ignore-missing` now works with `--standard-json`, though it's not very useful because there can be at most one input file.
- Separate errors for situations where there are no input files on the command line (this can be detected in the parser) and where they are not present on disk.
2021-07-27 15:54:32 +02:00
Leo Alt
e46abd0ca1 Update tests due to nondeterminism 2021-07-19 15:20:11 +02:00
Leo Alt
20e23171da Update tests to z3 4.8.12 2021-07-16 14:43:52 +02:00
chriseth
f75b55071e Remove CharStream from SourceLocation. 2021-07-14 15:12:07 +02:00
Daniel Kirchner
0a6fc89da2 Fix negation function name collision. 2021-07-08 10:47:29 +02:00
chriseth
09578e7e22
Merge pull request #11550 from ethereum/runs-constant
Constant for default --runs
2021-07-06 10:44:07 +02:00
Kamil Śliwak
105b4b4c8b Update tests 2021-07-05 13:46:53 +02:00
Kamil Śliwak
9d08b5001f Add sstore to linker tests to prevent the address from being optimized out 2021-07-01 16:54:09 +02:00
hrkrshnn
b628b115ae Manually enabled gas statistics for erc20 token test. 2021-06-30 16:35:53 +02:00
chriseth
54b1c667f1
Merge pull request #11595 from ethereum/issue-11526
Fix yul codegen bug when using binary negation.
2021-06-30 11:55:42 +02:00
Mathias Baumann
c47d02066c Fix yul codegen bug when using binary negatition. 2021-06-29 17:41:03 +02:00
chriseth
eaac16c779
Merge pull request #11590 from ethereum/disallow-non-hex-zero-and-fix-bytes32-literals-in-bytes-concat
Disallow non-hex zero literals and fix 32-byte hex literals in `bytes.concat()`
2021-06-29 16:34:26 +02:00
Kamil Śliwak
6a50d088a0 Fix ICE for 32-byte hex literals and zero literals in bytes.concat() by disallowing them 2021-06-29 14:48:42 +02:00
Kamil Śliwak
fa3696878b Fix crash when passing empty strings to bytes.concat() 2021-06-29 13:52:01 +02:00
Kamil Śliwak
19fada966f Do not use \b, \v and \f escapes in string literals in generated Yul code 2021-06-28 14:13:47 +02:00
Kamil Śliwak
6ad6fa2382 Do not hard-code the default 'runs' value as 200 in code that fills out optimizer settings 2021-06-28 14:12:28 +02:00
Kamil Śliwak
ca0b1bf3f3 Fix crash when passing zero to bytes.concat() 2021-06-25 21:26:28 +02:00
Alexander Arlt
8accf420ea [yul] Functions: Remove dependency on AST ID. 2021-06-23 16:15:25 +02:00
chriseth
c5923f7fcf Prevent calls to unimplemented modifiers. 2021-06-22 17:08:28 +02:00
Kamil Śliwak
98e83303b1 Remove assertions preventing calldata->calldata conversion when cleanup is needed 2021-06-22 16:10:16 +02:00
hrkrshnn
eb04dfcd3e Updated expectation of FixedFeeRegistrar.sol 2021-06-17 10:09:47 +02:00
chriseth
614683019b
Merge pull request #11426 from ethereum/test-fixedfee
Move contracts/FixedFeeRegistrar to semanticTests/externalContracts
2021-06-16 18:34:10 +02:00
chriseth
5b4a2f66e1 Directly restart processing calling functions. 2021-06-14 13:54:05 +02:00
chriseth
e5500b9f20
Merge pull request #11471 from ethereum/funcdef-unimplemented-modifier
Reports an error on unimplemented modifiers in a function definition.
2021-06-09 13:54:05 +02:00
Christian Parpart
a14ac1923d Fixes ICE when overriding an implemented modifier with an unimplemented one. 2021-06-09 13:15:20 +02:00
Kamil Śliwak
362fc6650d Extra tests for shadowing within function parameter lists 2021-06-09 12:37:12 +02:00
a3d4
f59145f21f Fix shadowing struct types by struct member names 2021-06-09 12:37:11 +02:00
a3d4
70b8b1c834 Do not warn about shadowing parameters in functions without implementation 2021-06-09 12:35:26 +02:00
Mathias Baumann
001a25db95 Fix crash in ControlFlowGraph related to free functions. 2021-06-09 11:10:33 +02:00
chriseth
3eaa37030a Fix infinite recursion in function call graph generator due to recursive constant references. 2021-06-08 16:39:30 +02:00
Mathias Baumann
354f9d1015 Fix: Allow multiple @return tags on public state variables 2021-06-07 15:16:46 +02:00
Mathias Baumann
aae9d347aa Split DocStringParsing in two stages
one requiring type info in the next step
2021-06-07 14:49:46 +02:00
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
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
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
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
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
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
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
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
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
aded56b5b9 Update tests 2021-05-03 18:28:43 +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
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
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
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
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
Alexander Arlt
8239eaa1b8 Fix test builtins & add simple smoke test. 2021-04-26 07:51:43 -05:00
chriseth
659da4bdc7
Merge pull request #11047 from ethereum/bytesToBytesNNConversion
Bytes to bytesNN conversion
2021-04-26 11:51:41 +02:00
Alex Beregszaszi
60189b4f61 Remove obsolete Error constructor 2021-04-23 23:55:22 +01:00
Alex Beregszaszi
f952f851b7 Enable more semantic tests for Ewasm 2021-04-23 17:00:01 +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
hrkrshnn
3d29ae73e7 Isoltest: updated the gas tests. 2021-04-22 18:19:47 +02:00
hrkrshnn
221292c278 Tests and changelog 2021-04-22 18:19:47 +02:00
chriseth
ec4558a245 Update gas costs. 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
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
Djordje Mijovic
9fcf16900d Update gas costs in smeantic tests. 2021-04-21 11:01:22 +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
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
Kamil Śliwak
7b467a49d7 Disable assertion that gives non-deterministic results in in slice tests for SMTChecker 2021-04-15 17:14:21 +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
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
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
Leonardo Alt
8a7e94c06f Keep pragma in smoke test for bytecode compare script 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
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
Daniel Kirchner
6fc4b04d1d Update test expectations. 2021-04-06 13:41:26 +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
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