Commit Graph

2111 Commits

Author SHA1 Message Date
Marenz
49b4e77d6b Prevent crash when translating yul->ewasm with @use-src annotations 2021-11-11 13:43:57 +01:00
Kamil Śliwak
cffb7fec27 Set version to 0.8.11 2021-11-09 17:23:33 +01:00
chriseth
45c9dbe174 Sort changelog and set release date. 2021-11-08 17:28:53 +01:00
chriseth
1633e367c9
Merge pull request #12199 from ethereum/expose-parsingAndImporting
Expose "parsingAndImporting" setting to user
2021-11-08 17:06:20 +01:00
Kamil Śliwak
44f7065fc9
Merge pull request #12074 from ethereum/output-selection-in-assembler-mode
CLI output selection in assembler mode
2021-11-08 16:59:57 +01:00
Marenz
fc224f74c7 Evaluate absolute paths for imports in 'parsing' stage 2021-11-08 16:34:02 +01:00
chriseth
a1aa9d2d90 Skip extcodesize check if return data is expected. 2021-11-08 14:58:09 +01:00
chriseth
f9ba1bf3c8
Merge pull request #12227 from ethereum/smt_fix_gas
Fix ICE in CHC when using gas in the function options
2021-11-08 11:54:20 +01:00
Daniel Kirchner
a7688a0eaf Update emscripten to version 2.0.33. 2021-11-04 19:24:12 +01:00
Kamil Śliwak
1a19d9a5cf New CLI output in assembly mode: --ewasm-ir 2021-11-04 18:23:11 +01:00
Kamil Śliwak
affeff18f5 Don't ignore output selection in assembly mode 2021-11-04 18:23:11 +01:00
Daniel Kirchner
e7deedb707 Pass emscripten linker options only when linking. 2021-11-04 15:32:04 +01:00
Daniel Kirchner
8e87c17671 Remove old compatibility patch to soljson.js. 2021-11-04 11:44:31 +01:00
Daniel Kirchner
45b87d41f7 Add missing changelog entry. 2021-11-03 16:40:08 +01:00
Leo Alt
dff280cadc Fix ICE in CHC when using gas in the function options 2021-11-03 15:40:54 +01:00
chriseth
be6fb5f3d6 Changelog entry. 2021-11-02 11:59:01 +01:00
chriseth
8e208f23cb Fix assignment of return variables from modifiers. 2021-11-01 14:14:50 +01:00
hrkrshnn
9428dbc94f Moved storage size assert to TypeChecker from DeclarationTypeChecker 2021-10-26 18:43:04 +02:00
Marenz
f588dd34a9 Sort bugfixes in changelog 2021-10-26 15:41:42 +02:00
Leo Alt
902a2e232b Changelog 2021-10-26 11:30:30 +02:00
chriseth
e6e30f82ca
Merge pull request #12139 from ethereum/nonamedlabelsifnotunique
Do not use named function labels if function names are not unique.
2021-10-25 17:50:29 +02:00
shikharvashistha
cf005368d8 Added different colors for warning & error
Co-authored-by: shikharvashistha <shikharvashistha@yandex.com>
Co-authored-by: cameel <kamil.sliwak@codepoets.it>
2021-10-25 11:16:51 +01:00
Kamil Śliwak
72b88dabca
Merge pull request #11909 from Midhun07/develop
Template code for disallowing options in input modes that do not support them (handles `--error-recovery`)
2021-10-20 18:18:43 +02:00
soroosh-sdi
816d8021e4 Remove linking to unqualified library name
- SemanticTests accepts fully qualified library name and also unqualifed library name when
the library is defined in the same file for convenience.
- commandline tests are added!

Signed-off-by: soroosh-sdi <soroosh.sardari@gmail.com>
2021-10-20 18:11:58 +03:30
chriseth
9f48b7419c Do not use named function labels if function names are not unique. 2021-10-19 18:33:00 +02:00
Midhun07
b28e5c881e Disallowed --error-recovery in Standard json, Assembly and Linker input modes 2021-10-15 18:57:16 +02:00
chriseth
ff052a3161
Merge pull request #12125 from ethereum/fix-zero-return-on-linker-write-error
Don't return zero exit code when writing linked files to disk fails
2021-10-13 11:45:20 +02:00
Kamil Śliwak
01327d6ef1 CommandLineInterface: Don't return zero exit code when writing linked files to disk fails 2021-10-12 18:23:16 +02:00
Christian Parpart
b1dd0d0d02 Properly compute source mappings for immutables. 2021-10-12 17:56:17 +02:00
chriseth
49d7b78466
Merge pull request #12123 from ethereum/empty-switch-12068
CodeGen: Only output switch when it has cases
2021-10-12 17:42:49 +02:00
Mathias Baumann
454860d1f5 CodeGen: Only output switch when it has cases 2021-10-12 17:40:31 +02:00
Kamil Śliwak
a9e794c872 Expose --debug-info/settings.debug.debugInfo option 2021-10-11 20:34:48 +02:00
Kamil Śliwak
b0a5b92fe9
Merge pull request #12071 from ethereum/cli-validate-output-selection
Validate selected compiler outputs on the CLI
2021-10-11 17:52:32 +02:00
Kamil Śliwak
b9b2c69d24 CommandLineParser: Validate compiler output selection 2021-10-06 20:09:33 +02:00
Kamil Śliwak
620ec47efb OptimizerSuite: Rewrite runSequence() with support for nested brackets 2021-10-06 19:15:02 +02:00
Marenz
4368da0201 Fix ICE when printing an error message related to mappings 2021-10-06 17:02:36 +02:00
TerranCivilian
020ecc2131 Preserve original newlines in solidity::util::readUntilEnd() 2021-10-05 20:24:24 +02:00
Leo Alt
4c2b661eaa [SMTChecker] Report values for block, msg and tx variables in counterexamples 2021-10-05 15:19:10 +02:00
Marenz
98dd78362e Add `.address and .selector` in inside assembly for external function pointers 2021-10-04 18:05:57 +02:00
Leo Alt
d81ebe97c3 Fix magic access 2021-10-01 12:57:06 +02:00
chriseth
82287bd883 Set version to 0.8.10. 2021-09-29 17:12:04 +02:00
chriseth
1a7faef0db Set release date. 2021-09-29 14:00:57 +02:00
hrkrshnn
6109b5c3a1 UserDefinedValueType.storageBytes() is correctly set
Previously it returned 32 bytes for all types, which was wasteful. This commit changes it to return
the storage bytes of the underlying type.
2021-09-29 11:41:47 +02:00
chriseth
7e7c68e5bf Changelog entry. 2021-09-29 10:12:25 +02:00
chriseth
b6e62d61ec Export canonicalName 2021-09-28 12:00:30 +02:00
chriseth
3dc4191441 Update version number. 2021-09-27 19:43:47 +02:00
chriseth
4e28020ff5 Set release date. 2021-09-27 15:43:59 +02:00
chriseth
8bcbf891e5
Merge pull request #12007 from ethereum/include-path-option
`--include-path` option (revived)
2021-09-27 15:40:14 +02:00
chriseth
39eb182ccc
Merge pull request #11688 from ethereum/fix-and-document-allow-paths
Fix and document `--allow-paths`
2021-09-27 15:39:14 +02:00
Kamil Śliwak
c8a7a1da7c Add --include-path option 2021-09-27 13:14:23 +02:00
Kamil Śliwak
60b2f2b913 Documentation for --allow-paths and changelog entry for fixes 2021-09-27 13:14:10 +02:00
chriseth
ddcd515a3d Sort changelog. 2021-09-27 13:00:19 +02:00
Harikrishnan Mulackal
4a6b22885e Clarification in changelog 2021-09-27 12:27:12 +02:00
Harikrishnan Mulackal
55d609d354
Merge pull request #11990 from ethereum/smt_user_types
[SMTChecker] Support user types
2021-09-22 15:40:49 +02:00
Marenz
7a51acc5fe Correct wrong error message referencing .slot and .offset when .length was used 2021-09-21 18:28:38 +02:00
Marenz
0f326ada5c Sort changelog "bugfixes" alphabetically 2021-09-21 18:01:12 +02:00
Leo Alt
e74f853c6b [SMTChecker] Support user types 2021-09-21 13:23:17 +02:00
Kamil Śliwak
fc8c4b046c StandardCompiler: Do not discard non-fatal errors that happened before a fatal error 2021-09-16 20:29:03 +02:00
Leo Alt
a1bea368cb [SMTChecker] Support constants via modules 2021-09-16 14:35:05 +02:00
chriseth
4284499180
Merge pull request #11888 from ethereum/spdx-license-handling-10145
Properly detect multiple licenses and validate them.
2021-09-16 14:18:17 +02:00
Marenz
c81814915c Properly detect multiple licenses and validate them. 2021-09-16 11:18:26 +02:00
Leo Alt
b731957e65 Fix BMCs constraints on internal functions 2021-09-15 14:42:39 +02:00
chriseth
535e1ecdb2
Merge pull request #11895 from ethereum/doNotRunEvmCodegenIfNotAsked
Do not run evm codegen if not asked.
2021-09-14 17:12:06 +02:00
chriseth
8735d3fb6c
Merge pull request #11930 from ethereum/calldataStructInlineAssembly
Fix inline assembly assignments to calldata structs and statically-sized calldata arrays.
2021-09-14 16:16:48 +02:00
Kamil Śliwak
7a36a1d1db Reject optimizer options as invalid in linker and Standard JSON modes 2021-09-13 15:35:11 +02:00
Daniel Kirchner
fc37b18e88 Fix inline assembly assignments to calldata structs and statically-sized arrays. 2021-09-13 15:22:46 +02:00
Daniel Kirchner
b934ef6c6e Only run evm bytecode generation if required. 2021-09-10 12:32:48 +02:00
Harikrishnan Mulackal
8a37f56e98
Merge pull request #11806 from ethereum/user-defined-types
User defined value types
2021-09-09 10:28:35 +02:00
hrkrshnn
fbb1b884b2 Documentation and Changelog 2021-09-08 21:19:30 +02:00
chriseth
59faffcd5f Changelog entry. 2021-09-08 12:26:06 +02:00
chriseth
3fe52d9869 Run the optimizer only once. 2021-09-07 15:06:31 +02:00
hrkrshnn
4d52e873e7 Move changelog item to bugfix. 2021-09-06 17:44:45 +02:00
hrkrshnn
2cdd3b2081 Resolving Keccak-256: check if arguments are identifiers early.
Previously, the check on whether the optimization was useful gas wise was done before checking if
the keccak256 opcode had identifier as arguments. Since the gas meter crashes when encountering
certain Yul opcodes (create, dataoffset, etc.), this optimizer step crashed.
2021-09-06 13:48:07 +02:00
Daniel Kirchner
8447b32d52
Merge pull request #11861 from ethereum/smt_value
[SMTChecker] Support `value` in CHC for external function calls
2021-09-03 14:00:21 +02:00
chriseth
9c2ab1ff2f
Merge pull request #11881 from ethereum/unsuable-symbol-11855
Properly export symbols from aliased imports.
2021-09-02 16:39:16 +02:00
Leo Alt
106c591dde Support the external call option 2021-09-01 20:18:37 +02:00
Marenz
4700c2b973 Properly export symbols from aliased imports. 2021-09-01 19:55:30 +02:00
Marenz
2b28f87abf Add type().min/max for enums 2021-09-01 15:02:02 +02:00
Kamil Śliwak
d07b796675 Disallow modifier declarations and definitions in interfaces 2021-08-31 15:25:08 +02:00
chriseth
f7916f2940 Add override exception for interface functions. 2021-08-31 10:45:31 +02:00
Kamil Śliwak
525b4c70e7
Merge pull request #11853 from Midhun07/develop
Disallow `--experimental-via-ir` in Standard JSON, assembler and linker modes
2021-08-30 19:02:36 +02:00
Midhun07
11065c6e79 Disallowed option --experimental-via-ir in Assembler, Linker and StandardJson input modes 2021-08-30 19:58:55 +05:30
Leo Alt
16bc15acac Fix false negative on storage array references returned by internal functions 2021-08-28 09:30:53 +02:00
Leo Alt
60b866f9d8 Fix ICE on multi-source use of abi.* 2021-08-27 18:55:36 +02:00
Kamil Śliwak
13f46ebb1e FileReader: Normalize base path and strip it from normalized source paths 2021-08-27 15:10:46 +02:00
Leo Alt
61160aa0e7 Add constraints correlating address(this).balance and msg.value 2021-08-25 21:10:08 +02:00
Leo Alt
55d197f092 Changelog 2021-08-19 16:34:16 +02:00
Marenz
121fd40f74 Allow reading of immutables during construction time 2021-08-19 13:59:05 +02:00
Leo Alt
6ee60aa628 Fix false positive on external calls from constructors 2021-08-12 18:51:55 +02:00
Leo Alt
5d7a2f37ea Start 0.8.8 2021-08-11 15:30:11 +02:00
hrkrshnn
2c0c27c6d4 Set the release date and updated bugs_by_version.json 2021-08-11 12:13:07 +02:00
hrkrshnn
2577670e38 Sort changelog for 0.8.7 release 2021-08-11 10:52:13 +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
Leo Alt
08c065ee04 Add option divModWithSlacks 2021-08-06 15:50:25 +02:00
Leo Alt
01c01ea421 Changelog 2021-08-04 13:54:50 +02:00
jaa2
c627e6af10 CommandLineParser: Handle --optimize-runs option in assembly mode
Fixes #11708.
2021-07-29 18:15:57 +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
Ladislav Sladecek
9bbeea58c8 Make --pretty-json work with Standard JSON output 2021-07-26 16:00:46 +02:00
Christian Parpart
f9f32c910d Fix source location for `if` statements. 2021-07-07 17:37:01 +02:00
chriseth
6ba298c82b Include locations with empty source name. 2021-07-07 12:13:52 +02:00
chriseth
8d5e82b406 Fix source location of builtin function calls. 2021-07-06 16:54:29 +02:00
Alex Beregszaszi
847e30e6ff Optimise libevmasm in yul 2021-07-05 13:46: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
Daniel Kirchner
17d69e2b99 Changelog entries. 2021-06-28 18:11:57 +02:00
Kamil Śliwak
ca0b1bf3f3 Fix crash when passing zero to bytes.concat() 2021-06-25 21:26:28 +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
chriseth
ef0e902db3 Set version to 0.8.7. 2021-06-22 15:14:53 +02:00
chriseth
c502158c69 Prepare release of 0.8.6. 2021-06-22 11:39:15 +02:00
chriseth
0df8a38e55 Support metadata via IR. 2021-06-21 18:20:31 +02:00
Kamil Śliwak
59957b18dc Make missing settings.optimizer.enabled key in Standard JSON equivalent to setting it to false 2021-06-15 16:06:22 +02:00
Kamil Śliwak
38f2987994 solc-js changelog entry for the behavior change without --optimize flag 2021-06-14 18:14:57 +02:00
chriseth
5b4a2f66e1 Directly restart processing calling functions. 2021-06-14 13:54:05 +02:00
chriseth
1718e58ec1 Set version to 0.8.6. 2021-06-10 17:36:24 +02:00
chriseth
45bb1e881a Sort changelog. 2021-06-10 11:07:41 +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
a3d4
f59145f21f Fix shadowing struct types by struct member names 2021-06-09 12:37:11 +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
chriseth
a3976198ea Changelog entry for modifier fix. 2021-06-03 16:57:19 +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
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
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
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
chriseth
0623658ddd Properly set source location of bare blocks. 2021-05-31 18:28:17 +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
hrkrshnn
138873d918 Fix ICE related to mapping types in abstract contract constructor 2021-05-31 14:56:49 +02:00
Alex Beregszaszi
c436785686 Insert a call to panic function in legacy codegen (and not inline it every single time) 2021-05-27 18:29:46 +01:00
hrkrshnn
d5564a0304 Set default EVM version to Berlin 2021-05-26 12:23:06 +02:00
Alex Beregszaszi
75c72cd54d Properly support inliner in settings.optimizer.details 2021-05-20 20:22:34 +01: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
Leo Alt
9c61c62f85 Changelog 2021-05-11 15:30:19 +02:00
chriseth
9d156b52c4
Merge pull request #8868 from ethereum/functionEntryPoints
Note function entry points.
2021-05-05 11:08:44 +02:00
chriseth
e7708b6006 Properly treat utf8-non-encodable yul literals. 2021-05-05 10:28:23 +02:00
chriseth
f9c94d7c42 Note function entry points. 2021-05-04 17:15:13 +02:00