Commit Graph

23695 Commits

Author SHA1 Message Date
Kamil Śliwak
712229a5c6 Fix StandardCompiler returning an incomplete AST in Standard JSON in case of an early exit during analysis 2023-06-15 10:50:04 +02:00
Kamil Śliwak
f50820fcae Tests checking outputs produced in presence of errors 2023-06-15 10:49:19 +02:00
Daniel
374a6fd50e
Merge pull request #14311 from ethereum/StackToMemoryDeterminism
Deterministically choose memory slots for variables during stack-to-memory.
2023-06-14 17:31:32 +02:00
Daniel
ca8db58edd
Merge pull request #14322 from ethereum/stackLayoutsForUnassignedReturnVariables
Account for unassigned return variables in stack layout generation.
2023-06-14 17:30:57 +02:00
Kamil Śliwak
c2e97369d9
Merge pull request #14327 from ethereum/cmdline-tests-sanitize-metadata-in-standard-json-output
Sanitize metadata in Standard JSON output in command-line tests
2023-06-14 17:01:00 +02:00
Kamil Śliwak
e45e6cc31d CLI tests for metadata output 2023-06-14 16:04:33 +02:00
Kamil Śliwak
e6b1f5ccee cmdlineTest.sh: Remove compiler version from metadata in Standard JSON output as well 2023-06-14 16:04:33 +02:00
Kamil Śliwak
4e113820c9
Merge pull request #14321 from ethereum/fix-bash-syntax-error-on-expectation-update-in-cli-tests
Fix Bash syntax error that shows up in CLI test output when updating expectations
2023-06-14 16:03:40 +02:00
Kamil Śliwak
25f329e4a1
Merge pull request #14323 from ethereum/stop-after-parsing-disallow-outputs-that-require-analysis
Disallow `--stop-after parsing` with CLI outputs that require analysis
2023-06-14 16:02:37 +02:00
Kamil Śliwak
e87333f20f More CLI tests for --stop-after parsing 2023-06-14 14:22:38 +02:00
Kamil Śliwak
f8a1af8bd5 CommandLineParser: Fix some outputs not being properly disallowed with --stop-after parsing 2023-06-14 14:22:38 +02:00
Kamil Śliwak
0713adde04 Fix bad indentation in handleCombinedJSON() 2023-06-14 14:22:38 +02:00
Kamil Śliwak
f4217bdc2c Fix Bash syntax error that shows up in CLI tests when updating expectations 2023-06-14 14:22:10 +02:00
Daniel Kirchner
aa01223398 Account for unassigned return variables in stack layout generation. 2023-06-14 11:43:46 +02:00
Nikola Matić
e44b8b9097
Merge pull request #14324 from ethereum/zeppelin-via-ir-workaround
Workaround open-zeppelin expectRevertCustomError bug
2023-06-14 10:58:01 +02:00
r0qs
28573dc71b
Workaround open-zeppelin expectRevertCustomError bug 2023-06-14 09:49:38 +02:00
Daniel
53c305ea80
Merge pull request #14310 from ethereum/moreRobustSemanticsTests
Do not let low-level semantic test calls depend on a well-defined contract ABI.
2023-06-12 17:32:21 +02:00
Daniel Kirchner
b7abd9bba4
Deterministically choose memory slots for variables independently of names that may depend on AST IDs. 2023-06-12 17:28:01 +02:00
Daniel
6c4e40bcef
Merge pull request #14317 from ethereum/bump-node-cimg
Bump circleci cimg/node version
2023-06-12 16:26:12 +02:00
r0qs
54c0ca99c3
Bump circleci cimg/node version 2023-06-12 15:15:03 +02:00
Daniel
d32aef3fea
Merge pull request #14313 from junaire/fix-wrong-cmake-variable
Fix incorrect CMAKE_SOURCE_DIR usage
2023-06-12 14:46:24 +02:00
Kamil Śliwak
2f484431da
Merge pull request #14243 from ethereum/do-not-optimize-yul-twice
Remove redundant Yul optimization from `IRGenerator`
2023-06-12 12:26:55 +02:00
Jun Zhang
8c5ecd1c01
Fix incorrectly CMAKE_BINARY_DIR usage
Similiar to CMAKE_SOURCE_DIR. Using CMAKE_BINARY_DIR will put the
generated header (stdlib.h) in build/include/solidity/libstdlib but it
should start with build/third-party/solidity or the library can't find
the header.

Signed-off-by: Jun Zhang <jun@junz.org>
2023-06-10 00:35:24 +08:00
Jun Zhang
74a38fc3d8
Fix incorrect CMAKE_SOURCE_DIR usage
When using solidity as a third-party library (include it into our
project using FetchContent), we encountered a strange compilation error.
For some reason, cmake considers the root directory of the project as
the root directory of the dependency (solidity). This is because
solidity is incorrectly using CMAKE_SOURCE_DIR variable, which should be
PROJECT_SOURCE_DIR (The former one refers to the top-level source
directory that contains a CMakeLists.txt, while the latter refers to the
source directory of the most recent project() command)

I've created a repo for demonstration (https://github.com/junaire/test-solidity-fetch-content)

Signed-off-by: Jun Zhang <jun@junz.org>
2023-06-08 19:17:34 +08:00
Kamil Śliwak
b1a773be2f IRGenerator: Leave IR optimization up to the caller to avoid unnecessarily doing it twice 2023-06-07 19:44:40 +02:00
Kamil Śliwak
facc38097d
Merge pull request #14149 from ethereum/enable-minimal-yul-optimizations-by-default
Minimal Yul optimizations by default
2023-06-07 18:26:00 +02:00
Kamil Śliwak
3aaa207162 Enable unoptimized presets in those external tests where they now pass 2023-06-07 16:45:45 +02:00
Daniel Kirchner
0ea06e1c71 Do not let low-level semantic test calls depend on a well-defined contract ABI. 2023-06-07 13:40:14 +02:00
Kamil Śliwak
5e32a728fe Update test expectations 2023-06-07 12:13:39 +02:00
Kamil Śliwak
51cd87c94d YulStack: Don't enable stack optimizations in unoptimized mode when msize is present 2023-06-07 12:13:39 +02:00
Kamil Śliwak
25be38905f YulStack: When Yul optimization is not requested, run Yul optimizer with a minimal sequence instead of disabling it 2023-06-07 12:13:38 +02:00
Kamil Śliwak
dff774d82f Overload MSizeFinder::containsMSize() for Yul objects 2023-06-07 12:12:00 +02:00
Kamil Śliwak
8e35e8dd8e Command-line tests checking behavior of msize without optimizer 2023-06-07 12:12:00 +02:00
Kamil Śliwak
7ab730d410 Update tests that would become ineffective with minimal optimizations applied 2023-06-07 12:12:00 +02:00
Kamil Śliwak
811b8e565b
Merge pull request #14288 from ethereum/cli-and-standard-json-equivalence-tests
CLI and Standard JSON equivalence tests
2023-06-07 12:10:38 +02:00
Kamil Śliwak
64ef9d581b Command-line test for equivalence of optimizer options on the CLI and in Standard JSON 2023-06-07 10:29:45 +02:00
Kamil Śliwak
e6716e3208 Helpers for removing decorations form solc output 2023-06-07 10:29:45 +02:00
Kamil Śliwak
25c78be73e Give error_message in msg_on_error an initial value to make it compatible with set -u 2023-06-07 10:29:45 +02:00
Kamil Śliwak
c7372f3f22
Merge pull request #14268 from ethereum/resurrect-yul-optimizer-cli-options
Resurrect Yul optimizer CLI options
2023-06-07 10:28:16 +02:00
Daniel
09038ce4cb
Merge pull request #14249 from ethereum/experimental-stdlib
Experimental standard library
2023-06-06 18:08:34 +02:00
Nikola Matic
47969adf91 Experimental standard library
Change import syntax and cover with tests
2023-06-06 17:16:23 +02:00
Kamil Śliwak
2769bb52f6 Make --optimize-yul work again 2023-06-06 09:54:07 +02:00
Kamil Śliwak
42a068b449 CommandLineParser: Store the state of EVM assembly and Yul optimizer explicitly
- Does not change the meaning of CLI options, just the way we map them to internal variables.
2023-06-06 09:54:07 +02:00
pgebal
f1d2eda795 Merge pull request #14116 from pgebal/pgebal/add_option_to_add_bounds_to_unroll_loops_in_bmc
Add optional bounds to unroll loops in BMC model checker
2023-06-05 12:01:08 +02:00
Pawel Gebal
f15b826431 Add optional bounds to unroll loops in BMC model checker 2023-06-02 18:32:38 +02:00
Kamil Śliwak
dcecf00e30
Merge pull request #14292 from ethereum/command-line-test-docs
Document the command-line tests
2023-06-02 18:28:22 +02:00
Kamil Śliwak
f5a531fd71
Merge pull request #14289 from ethereum/script-based-cmdline-tests
Move hard-coded tests out of `cmdlineTests.sh`
2023-06-02 17:30:25 +02:00
Kamil Śliwak
0e48e1251d Document the command-line tests 2023-06-02 16:11:04 +02:00
Kamil Śliwak
f397b9a083 cmdlineTests: Add prefixes for temporary files/dirs 2023-06-02 16:10:40 +02:00
Kamil Śliwak
5c5f8e8dad cmdlineTests: Remove superfluous set and temporary dirs 2023-06-02 16:10:40 +02:00