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
Kamil Śliwak
00c2f511d3
cmdlineTests: Remove superfluous output from script-based tests and adjust the rest
2023-06-02 16:10:40 +02:00
Kamil Śliwak
c1df8ed563
cmdlineTests: Remove unnecessary subshells
...
- Whitespace-only change, separated out to make it easy to diff.
2023-06-02 16:10:40 +02:00
Kamil Śliwak
6b061ba696
cmdlineTests: Extract script-based test out of cmdlineTests.sh
...
- Just extraction, with as few changes to the code as possible.
2023-06-02 16:10:40 +02:00
Kamil Śliwak
dd10334754
cmdlineTests: Support tests that contain a script to run as an alternative to input.* files
2023-06-02 16:09:11 +02:00
Kamil Śliwak
72a384f4fe
cmdlineTests: Ensure that leading symbols in names affect the sort order
2023-06-02 16:09:11 +02:00
Kamil Śliwak
4773b0b1e4
Merge pull request #14291 from ethereum/drop-gp2
...
Disable gp2 tests
2023-06-02 14:08:42 +02:00
Kamil Śliwak
5306838920
Merge pull request #14290 from ethereum/oz-fix
...
Remove unnecessary line from OZ external test script
2023-06-02 13:02:48 +02:00
r0qs
a518310af9
Disable gp2 tests
2023-06-02 12:50:28 +02:00
r0qs
824e59dec2
Remove unnecessary line from OZ external test script
2023-06-02 12:09:53 +02:00
Kamil Śliwak
14d2ae2dfa
Merge pull request #14282 from ethereum/fixOpenZeppelinExtTest
...
Remove sed commands targeting deleted files in openzeppelin external test
2023-05-31 12:17:56 +02:00
Matheus Aguiar
d657e77f1e
Remove problematic sed commands in openzeppelin external test
2023-05-31 02:11:33 -03:00
Nuno Santos
3eedc635c4
Misspelling and terms inconsistencies ( #14280 )
...
* Installing solidity tweeks
* A few more misspells
* More inconsistencies fixed
* Removed contractions according to our guide.
2023-05-30 20:49:25 +01:00
Leo
a0933fa80a
Merge pull request #14276 from ethereum/smtchecker-fix-ice
...
SMTChecker: External function call with struct member is not getter
2023-05-30 13:46:35 +02:00
Leo
ceab4dfee5
Merge pull request #14269 from blishko/smtchecker-fix-analysis-external-calls
...
[SMTChecker] Remember verification targets from trusted external calls
2023-05-30 13:45:37 +02:00
Nikola Matić
4449f07df4
Merge pull request #14262 from davidBar-On/issue-14259-help-text-about-standard-input-usage
...
Fix help text about standard input usage
2023-05-29 15:53:58 +02:00
David Bar-On
cf106c44fe
Fix issue 14259 - help text about standard input usage
2023-05-29 13:30:39 +02:00
Kamil Śliwak
38468d03f4
Merge pull request #14272 from ethereum/fixInlinerDocs
...
Fix mistake about default value for inliner setting in docs
2023-05-26 17:02:38 +02:00
Matheus Aguiar
2260c23ce1
Fix mistake about default value for inliner setting
2023-05-26 10:25:26 -03:00
Martin Blicha
8ca453f82e
SMTChecker: External function call with struct member is not getter
...
if a struct has a member that is a function pointer with `external`
attribute, and such a member is called, it is currently incorrectly
treated as a public getter in SMTEncoder.
The proposed fix is to make SMTEncoder::publicGetter more strict in
deciding whether an expression is a public getter.
The added condition, that the access happens on a state variable, is
exactly what is checked later with an assertion that is currently
failing.
2023-05-26 14:23:45 +02:00
Nikola Matić
477b621f2e
Merge pull request #14274 from ethereum/enable-access-to-foreign-events
2023-05-26 13:49:13 +02:00
Kamil Śliwak
37506b1a90
Merge pull request #14177 from GiokaMarkella/develop
...
Add support for Yul ASTs output
2023-05-26 13:25:54 +02:00
Martin Blicha
b0419da654
[SMTChecker] Remember verification targets from trusted external calls
...
Previously, we did not remember trusted external calls for later phase
when we compute possible verification targets for each function.
This led to false negative in cases where verification target can be
violated, but not by calling a public function directly, but only when
it is called as an external function from other function.
The added test cases witnesses this behaviour. The underflow in
`dec` cannot happen in any other way except what the `dec` is called
from `f`.
The same problem did not occur when the functions are called internally,
because for such cases, we have already been remembering these calls in
the callgraph in the CHC engine.
2023-05-26 13:03:44 +02:00