Commit Graph
100 Commits
Author SHA1 Message Date
Alex Beregszaszi 4db0e3049e Move snark.sol in tests to externalContracts 2021-01-14 13:55:36 +00:00
Alex Beregszaszi c15c6d26b7 Fix YulUtilFunctions::negateNumberWrappingFunction 2021-01-13 21:29:37 +00:00
Alex Beregszaszi fce6d99900 Merge pull request #10655 from ethereum/semver-empty
Mark the empty version pragma as invalid
2021-01-04 20:09:33 +00:00
Alex Beregszaszi 8edfa26f0a Mark the empty version pragma as invalid 2021-01-04 19:28:36 +00:00
Alex Beregszaszi 67712d50ba Merge pull request #10665 from smarteasy/develop
Update introduction-to-smart-contracts.rst
2020-12-20 13:39:41 +00:00
Alex Beregszaszi 7e20a095a8 Merge pull request #10652 from ethereum/smt_constants_inplce
[SMTChecker] Replace constants by their value in-place
2020-12-18 14:22:32 +00:00
Alex Beregszaszi d5014ea081 Merge pull request #10642 from ethereum/semver-parser
Report meaningful error if parsing a version pragma failed
2020-12-18 13:09:06 +00:00
Alex Beregszaszi 0425936c8a Rename AsmScope* to Scope* 2020-12-18 11:55:17 +00:00
Alex Beregszaszi b14a6a10cc Report meaningful error if parsing a version pragma failed 2020-12-18 11:50:37 +00:00
Alex Beregszaszi 97173247c0 Improve the Error class with a constructor for secondaryLocation
Remove occurances of Error construction using the boost helpers.
2020-12-17 13:50:04 +00:00
Alex Beregszaszi 2fa0e3c88a Merge pull request #10641 from ethereum/yul-error
Simplify StackTooDeepError in Yul
2020-12-17 12:46:26 +00:00
Alex Beregszaszi 9230faf9a3 Simplify StackTooDeepError in Yul 2020-12-16 20:35:11 +00:00
Alex Beregszaszi 2be078b4d0 Merge pull request #10637 from ethereum/remove99
Remove version pragmas using `.99`.
2020-12-16 20:14:44 +00:00
Alex Beregszaszi 953d18c6cb Output runtime object in IR 2020-12-16 19:23:10 +00:00
Alex Beregszaszi a993ab4db7 Merge pull request #10638 from ethereum/setver081
Set version to 0.8.1.
2020-12-16 19:23:03 +00:00
Alex Beregszaszi b764e06c76 Merge pull request #10621 from ethereum/smt_fix_breaking_again
SMTChecker fix breaking again
2020-12-15 20:30:37 +00:00
Alex Beregszaszi cad4f74012 Unary minus is not implemented for fixed point type 2020-12-15 18:02:10 +00:00
Alex Beregszaszi edbdff8619 Update tests 2020-12-14 19:32:31 +00:00
Alex Beregszaszi 15237c8404 Disable the type byte 2020-12-14 19:18:25 +00:00
Alex Beregszaszi 34cab95446 Do not insert SPDX line if it is already present (in semantic tests) 2020-12-14 14:25:58 +00:00
Alex Beregszaszi 3a7a0e4256 Add test cases for the deposit contract 2020-12-14 13:11:57 +00:00
Alex Beregszaszi b97a12c299 Initial import of syntaxTests/externalContracts/deposit_contract.sol
Imported from https://github.com/axic/eth2-deposit-contract/tree/r2
2020-12-14 12:19:07 +00:00
Alex Beregszaszi aa042ccb87 Disallow leading zeroes in sized-types
Also avoid using boost::lexical_cast for parseSize.
2020-12-14 11:40:14 +00:00
Alex Beregszaszi 4bffd040e2 Add tests for weirdly sized types
e.g. bytes00001
2020-12-14 11:40:11 +00:00
Alex Beregszaszi 33ff2b16ff Fix crash with oversized address literals 2020-12-11 23:45:23 +00:00
Alex Beregszaszi 4a7f2ddc6d Properly print sources in ASTJSONTest 2020-12-11 15:28:54 +00:00
Alex Beregszaszi ccd1f283aa Merge pull request #9360 from ethereum/rich-function-type
Improve error message when assigning builtin functions
2020-12-11 15:25:59 +00:00
Alex Beregszaszi bcaefb57b8 Add evmAssembly and evmRuntimeAssembly pointer in CompilerStack
This is a preparation for allowing those outputs to be served from the IR too
2020-12-11 14:53:29 +00:00
Alex Beregszaszi 98d8174d31 Simplify Compiler/CompilerContext by removing extra layers of indirection 2020-12-11 14:43:51 +00:00
Alex Beregszaszi b40b82535c Add comprehensive tests for FixedHash
Also explicitly disallow FixedHash<0>, given most functions were not working with it, and it is not very useful.
2020-12-11 12:20:37 +00:00
Alex Beregszaszi 7b347b9ec2 Introduce address(...).code 2020-12-11 03:00:30 +00:00
Alex Beregszaszi 03e805ab5a Reformat FixedHash.h for readability 2020-12-10 22:49:40 +00:00
Alex Beregszaszi fa37e69c25 Improved error messages when converting to/from builtin functions 2020-12-10 22:38:15 +00:00
Alex Beregszaszi ff7e45f417 Add test cases for assigning builtins/bound functions to function types 2020-12-10 22:18:52 +00:00
Alex Beregszaszi 5a541e72be Merge pull request #10537 from ethereum/extra-warnings
Enable more C++ compiler warnings
2020-12-10 21:44:54 +00:00
Alex Beregszaszi bd641a5206 Enable more C++ compiler warnings 2020-12-10 21:03:58 +00:00
Alex Beregszaszi 4b410b8731 Merge pull request #10571 from ethereum/smt_fix_breaking
Fix SMT tests on breaking
2020-12-10 20:05:50 +00:00
Alex Beregszaszi 7cd05bf603 Introduce block.chainid 2020-12-10 17:07:54 +00:00
Alex Beregszaszi 7d60ac6dcd Changelog entry 2020-12-10 17:18:15 +01:00
Alex Beregszaszi c032ad3379 Update tests 2020-12-10 17:18:15 +01:00
Alex Beregszaszi 2b09fa14e1 Disallow using reserved identifiers in Yul 2020-12-10 17:10:38 +01:00
Alex Beregszaszi 7df986539f Disallow using reserved identifiers in NameDispenser/VarNameCleaner 2020-12-10 17:10:38 +01:00
Alex Beregszaszi 3a687c34e4 Add reservedIdentifier to dialect 2020-12-10 17:10:38 +01:00
Alex Beregszaszi f9d6abf69b Add more tests for state access (block, msg, tx, etc.)
Move some of them out of SolidityEndToEndTests. Additionally this ensures the deterministic values of the testing infrastructure.
2020-12-09 20:46:01 +00:00
Alex Beregszaszi 32f1f16b8a Merge pull request #10542 from ethereum/fixConstantEv
Fix bug in constant evaluator.
2020-12-09 16:04:42 +00:00
Alex Beregszaszi ad6739d0f6 Support address().codehash 2020-12-09 14:58:27 +00:00
Alex Beregszaszi 47b10fd751 Report warning if contract uses abicoder v1, but IR is requested 2020-12-09 01:20:58 +00:00
Alex Beregszaszi 7e88ba8da0 Enable the -Wconversion warning 2020-12-08 16:45:24 +00:00
Alex Beregszaszi 66ee3ec533 Remove the \b, \f, \v escape sequences from the Scanner 2020-12-07 21:10:03 +00:00
Alex Beregszaszi a8197788d0 Replace the inconsistent use of u160/Address/h160 with h160 only 2020-12-07 16:44:59 +01:00
Alex Beregszaszi 1e2bfbd6b2 Enable the -Wextra-semi warning 2020-12-04 17:21:19 +01:00
Alex Beregszaszi a9be2e4bb8 update tests 2020-12-03 17:15:45 +01:00
Alex Beregszaszi 61ed1f1986 cleanup 2020-12-03 17:15:45 +01:00
Alex Beregszaszi 6c0a3bd043 Ensure that builtins must be executed 2020-12-03 17:15:44 +01:00
Alex Beregszaszi e2a756a705 Remove dead code 2020-12-03 17:15:44 +01:00
Alex Beregszaszi 43353bb6ca update tests 2020-12-03 17:15:43 +01:00
Alex Beregszaszi baa7251f1d More clean up 2020-12-03 17:14:49 +01:00
Alex Beregszaszi 75e0057388 Rename parseElementaryOperation to parseLiteralOrIdentifier 2020-12-03 17:14:49 +01:00
Alex Beregszaszi 3da2b67b67 simplify parser 2020-12-03 17:14:49 +01:00
Alex Beregszaszi 4044817255 Drop old SourceReferenceFormatter 2020-12-01 16:09:46 +01:00
Alex Beregszaszi 1dedba8538 Only use SourceReferenceFormatterHuman 2020-12-01 16:09:46 +01:00
Alex Beregszaszi 1126838a31 Remove --old-reporter from solc 2020-12-01 16:09:46 +01:00
Alex Beregszaszi d22434ee57 Change ABIEncoderV1 to not pad empty strings 2020-12-01 14:32:18 +00:00
Alex Beregszaszi 04cf4867fe [ewasm] Clean up opcodes/builtins in the binary encoder
Also make sure that `i32.drop/i64.drop` won't silently drop its arguments, as they may have side-effects.
2020-12-01 12:50:54 +00:00
Alex Beregszaszi a29a7ad680 [ewasm] Properly encode i32/i64.select in the text format 2020-12-01 11:22:38 +00:00
Alex Beregszaszi 7e7a42c6ad Merge pull request #10441 from ethereum/fix-version-pragma-replacement-in-external-tests
Fix command for stripping version pragmas in external tests
2020-11-30 15:24:20 +00:00
Alex Beregszaszi a7ee1355bd [ewasm] Use select instruction where appropriate 2020-11-30 12:10:32 +00:00
Alex Beregszaszi 9640cfd77e [ewasm] Add i32.select/i64.select 2020-11-30 11:58:33 +00:00
Alex Beregszaszi 06af2fb38a [ewasm] Change eq() in polyfill to branch-less version 2020-11-27 22:47:55 +00:00
Alex Beregszaszi 28e65bac46 Add unimplemented assert for modifiers in the IR
Also improved relevant tests for modifiers to be more strict and detect if the modifier body was skipped.
2020-11-27 18:34:17 +00:00
Alex Beregszaszi e64bf748f2 Merge pull request #10425 from ethereum/update-hera-in-buildpacks
buildpack-deps: Update hera to 0.3.2.
2020-11-27 18:22:50 +00:00
Alex Beregszaszi cbae5ca324 Support BitNot on FixedBytes in IR 2020-11-26 13:20:02 +00:00
Alex Beregszaszi a22077f736 Rename AsmData -> AST
Also attempt to only include ASTForward where appropriate.
2020-11-25 17:58:02 +00:00
Alex Beregszaszi 8d9c332593 Properly terminate definitions using define() in IRGenerateForStatements
The lack of termination can result in unparseable output.
2020-11-25 16:41:39 +00:00
Alex Beregszaszi b283a2f894 Merge pull request #10400 from ethereum/fixAbiCoderV2Pragmas
Fixing pragmas to abicoder v2.
2020-11-25 14:45:54 +00:00
Alex Beregszaszi 159f50e189 Turn on semantic tests for the old codegen where possible
These were marked IR-only, but they do pass on the old codegen too.

Also add old codegen version of semantictests/revertStrings/function_entry_checks.
2020-11-25 14:33:39 +00:00
Alex Beregszaszi c4fd7e4003 Remove/update tests 2020-11-25 11:40:33 +00:00
Alex Beregszaszi 3bce2a2294 Remove the legacy AST JSON output 2020-11-25 11:40:33 +00:00
Alex Beregszaszi 53b635a21f Add more tests for getters 2020-11-24 22:37:42 +00:00
Alex Beregszaszi 98d93b95a1 Add Ether as an exception to codespell 2020-11-23 17:19:01 +00:00
Alex Beregszaszi 8bf455bb49 Merge pull request #10368 from ethereum/ewasm-polyfill-calldataload-calldatacopy-tests
[ewasm] Polyfill: calldataload & calldatacopy: Enable Tests.
2020-11-21 14:45:27 +00:00
Alex Beregszaszi f76ac0a753 [wasm] Document what StringLiteral is 2020-11-20 21:16:56 +00:00
Alex Beregszaszi 5b283f4a08 Merge pull request #10364 from ethereum/bytecode-comparison-with-model-checker-engine-none
Disable SMT checker instead of stripping SMT pragmas in bytecode comparison
2020-11-20 20:00:27 +00:00
Alex Beregszaszi 60fa3bfa2f Merge pull request #10365 from ethereum/breaking-fix
Fix test failures due to merge conflict (from develop to breaking)
2020-11-20 18:55:08 +00:00
Alex Beregszaszi 8228b5b0b8 Fix test failures due to merge conflict (from develop to breaking) 2020-11-20 18:21:21 +00:00
Alex Beregszaszi 3ef4736fd8 Merge pull request #10357 from ethereum/ast-interfaceid
Change AST::interfaceId() to uint32_t
2020-11-20 12:48:14 +00:00
Alex Beregszaszi 82997fbf5e Change AST::interfaceId() to uint32_t 2020-11-19 23:33:08 +00:00
Alex Beregszaszi 9a5fc1118f Document coreutils as a testing dependency 2020-11-17 23:09:15 +00:00
Alex Beregszaszi d7814358a6 Merge pull request #10292 from ethereum/cli-check-for-duplicate-libraries
[CLI] Reject duplicates in --libraries
2020-11-16 21:12:00 +00:00
Alex Beregszaszi a3381d7260 Add settings.viaIR to standard json 2020-11-12 22:38:44 +00:00
Alex Beregszaszi e074582bf1 Add --experimental-via-ir option to solc 2020-11-12 22:34:31 +00:00
Alex Beregszaszi 301d7ea39e Add viaIR option to CompilerStack
It also sets the experimental flag in the metadata to true.
2020-11-12 22:34:31 +00:00
Alex Beregszaszi fcedaba7f7 [ewasm] Allow compiling abstract/interface contracts 2020-11-12 15:26:11 +00:00
Alex Beregszaszi a63d850f50 Improve ewasm commandline tests 2020-11-12 15:25:54 +00:00
Alex Beregszaszi 826ed58b2f Merge pull request #10262 from ethereum/smt-conversion
[SMTChecker] Avoid implicit conversion
2020-11-11 17:03:49 +00:00
Alex Beregszaszi 2f899bbffa [SMTChecker] Avoid implicit conversion 2020-11-11 16:29:03 +00:00
Alex Beregszaszi 6f6bcdd526 [ewasm] Display custom sections as hex string in the text output 2020-11-10 23:48:24 +01:00
Alex Beregszaszi e5396e42c3 Add wasm support to libyul/ObjectCompilerTest 2020-11-10 23:24:49 +01:00
Alex Beregszaszi 81c448fb4c Rework TestFileParser 2020-11-10 13:09:07 +01:00
Alex Beregszaszi c002fcc39f Untangle headers and namespaces in TestFileParser 2020-11-10 13:09:07 +01:00