Commit Graph

4408 Commits

Author SHA1 Message Date
Daniel Kirchner
953bc9fed2
Merge pull request #12983 from ethereum/hint-via-ir
Recommend `via-ir` whenever a stack too deep error is encountered.
2022-05-20 12:26:25 +02:00
Daniel Kirchner
a2f768d29a Remove empty settings. 2022-05-19 20:23:28 +02:00
Daniel Kirchner
58d21f1e9d Remove // compileViaYul: also 2022-05-19 20:23:28 +02:00
Daniel Kirchner
788dc6b4c8 Remove canEnableViaYul logic and default to compiling also via yul. 2022-05-19 20:23:28 +02:00
Daniel Kirchner
e93ad30e43 Remove obsolete enforce-via-yul logic and CI run. 2022-05-19 20:23:28 +02:00
nishant-sachdeva
7ff4cab0b9 issue has already been fixed. Adding test cases for confirmation 2022-05-19 15:36:59 +05:30
Matheus Aguiar
33ea6a679d Fixed bug that added a superfluous empty slot for data when encoding an empty string coming from storage.
Added tests covering empty string, uninitialized string, emptry string literal, byte arrays and explicit call to `abi.encode`.
2022-05-18 14:50:26 -03:00
Marenz
ca3af4b2a2 LSP: Implement semantic tokens 2022-05-18 14:54:16 +02:00
chriseth
dfa0bcf760 More strict override check for data locations. 2022-05-17 13:02:12 +02:00
Daniel Kirchner
12ee9aed50
Merge pull request #13013 from ethereum/revert-disallow-returndatacopy-in-pure-functions
Revert "Disallow RETURNDATASIZE and RETURNDATACOPY in inline assembly blocks in pure functions"
2022-05-13 18:52:37 +02:00
Leo Alt
6a126f6ccb Update tests and hashes for z3 4.8.17 2022-05-13 15:25:10 +02:00
Matheus Aguiar
35661479b6 Revert "Disallow RETURNDATASIZE and RETURNDATACOPY in inline assembly blocks in pure functions"
This reverts commit f567eb1fb2.

Correcting Bugfixes section of Changelog.
2022-05-13 08:35:21 -03:00
Daniel Kirchner
aafda389ea
Merge pull request #12907 from ethereum/calldataReencodeValidationBug
Calldatasize-check during ABI encoding from calldata values with nested dynamic arrays.
2022-05-12 17:56:44 +02:00
Daniel Kirchner
352a3c5f4b Bug list entry, changelog entry and tests. 2022-05-12 13:08:30 +02:00
Leo Alt
cbaba6f913 update tests 2022-05-11 20:02:31 +02:00
Daniel Kirchner
d3a837b340 Bugfix. 2022-05-11 18:17:47 +02:00
Daniel Kirchner
d92ed3fd29 Test case for the buggy behaviour. 2022-05-11 18:17:47 +02:00
Kamil Śliwak
0e0d1972f9 Disable non-deterministic counterexamples in some SMT tests
- The counterexamples sometimes do appear and the tests fail.
2022-05-10 12:48:01 +02:00
Marenz
893122eb89 lsp.py: Support subdirectories 2022-05-09 14:54:55 +02:00
hrkrshnn
5ae17c8e65 Recommend via-ir whenever a stack too deep error is encountered. 2022-05-05 19:22:03 +02:00
Leo Alt
201c6c6819 fix smt flaky test 2022-05-05 11:38:16 +02:00
Leo Alt
cba3d18f66 adjust for osx nondeterminism 2022-05-04 19:04:54 +02:00
Leo Alt
4fd7de36f1 update smt tests z3 4.8.16 2022-05-03 14:23:27 +02:00
chriseth
df29ea72f0
Merge pull request #12836 from ethereum/fixUsingGlobal
Fix using global with libraries.
2022-05-02 12:41:34 +02:00
chriseth
505fa7763f Fix checks for "using for ... global" for libraries. 2022-05-02 12:40:56 +02:00
Alexey Shekhirin
cb24e5d545
fix(parser): error for unexpected token 2022-04-29 16:13:04 +04:00
chriseth
d55b84ff63
Merge pull request #12861 from ethereum/disallow-returndatacopy-in-pure-functions
Disallow RETURNDATACOPY and RETURNDATASIZE in inline assembly in pure functions
2022-04-28 13:15:04 +02:00
Marenz
afd9feead4 LSP.py: Implement simple send/respond framework 2022-04-13 13:22:05 +02:00
Leo Alt
f9fa76c9d3 smt encode call 2022-04-11 12:19:41 +02:00
Joshua Quinones
e1a59397c6 Renamed AssemblyStack to YulStack
All files, references, variables, comments, etc. were renamed to YulStack.
2022-04-08 20:28:55 +02:00
Kamil Śliwak
f567eb1fb2 Disallow RETURNDATASIZE and RETURNDATACOPY in inline assembly blocks in pure functions 2022-04-08 14:48:35 +02:00
Kamil Śliwak
fb7c969ce8 Tests for assembly instructions allowed with mutable/view/pure functions 2022-04-08 14:47:32 +02:00
Kamil Śliwak
0bb885dab2 Bring soltestAssert() up to date with solAssert()
- Allow omitting description.
- Provide a default description.
- Use a custom exception type derived from util::Exception rather than std::exception.
2022-04-06 22:26:10 +02:00
Ryan
3a17274691 Improve error message for static array with size too large 2022-04-05 17:36:37 +02:00
Aisultan Kali
96376264e8 Set handlers use unified jsonPrint with prettifier if needed 2022-04-04 20:17:11 +02:00
chriseth
755e043a6d Use error message for unary operators. 2022-04-04 16:53:36 +05:30
nishant-sachdeva
4c6066bfad typeCheckAbiEncodeCallFunction should type check the arguments on functionPointerType->asExternallyCallableFunction instead of teh plain function type 2022-03-24 18:53:46 +05:30
Marenz
0bf674b442 LSP test: Minor refactoring and better exception reporting 2022-03-21 13:23:02 +01:00
Daniel Kirchner
4b9c01752d Test updates. 2022-03-16 15:34:38 +01:00
Daniel Kirchner
5cd98006d4 Fill in junk in stack layouts on terminating control flow paths. 2022-03-15 18:36:55 +01:00
Daniel Kirchner
8cb01a9953 Fix and updated test. 2022-03-15 10:23:09 +01:00
Daniel Kirchner
db27051024 Test for old behaviour. 2022-03-15 10:23:09 +01:00
chriseth
9188519f11 Using for with global binding. 2022-03-14 17:39:14 +01:00
chriseth
7f360e61fc
Merge pull request #12781 from ethereum/fixImportDirectiveVisits
Fix import directive visits in type checker and view pure checker.
2022-03-14 15:35:37 +01:00
chriseth
3d8fc6b126
Merge pull request #12760 from ethereum/viaIRNonExperimental
Mark viaIR code generation as non-experimental.
2022-03-14 15:30:15 +01:00
Daniel Kirchner
0f1a63c3fa Fix import directive visits in type checker and view pure checker. 2022-03-14 14:53:06 +01:00
Daniel Kirchner
e58c0b561d Mark viaIR code generation as non-experimental. 2022-03-14 14:48:00 +01:00
wechman
8a254b7a7f Use sol file to validate test variants 2022-03-14 14:21:30 +01:00
wechman
4c1224e3bf Generate ASTJSONTest variants only if a file with expected result exists 2022-03-14 14:21:30 +01:00
wechman
371a531381 Add "fail after parsing" scenario to ASTJSON tests 2022-03-14 14:21:30 +01:00
wechman
f431c6f058 Support compilation fail scenarios in ASTJSON tests 2022-03-14 14:21:06 +01:00
wechman
38639417e1 Non-fatal erros do not stop ASTJSON test execution 2022-03-14 14:21:06 +01:00
wechman
5f7ff667b9 Fix syntax errors in ASTJSON tests 2022-03-14 14:21:06 +01:00
wechman
d609409624 Add not_existing_import.json to ASTJSON tests 2022-03-14 14:21:06 +01:00
chriseth
3f6beaa0ad
Merge pull request #12121 from ethereum/extend-using-statement
Extend using statement
2022-03-14 14:10:16 +01:00
hrkrshnn
672951ccc7 Extend using-for. 2022-03-14 12:33:44 +01:00
Christian Parpart
2b2f8acc12 LSP: Implements goto-definition. 2022-03-14 11:59:41 +01:00
nishant-sachdeva
b7a9daa2f8 Generate warning when rational numbers are converted to their mobile type without explicit requests 2022-03-14 14:04:46 +05:30
Daniel Kirchner
09f667948b
Merge pull request #12746 from tfire/fix/remove-namespace-ast-annotations
Remove use of `using namespace` in header file
2022-03-11 12:49:13 +01:00
nishant-sachdeva
624d2d3968 Error messages from abi encodecall are giving more details about the types of the involved variables 2022-03-11 16:14:55 +05:30
Tyler
3357567453 Fix CommonSyntaxTest.cpp and others 2022-03-10 18:16:12 -05:00
Tyler
1c58b91075 Merge branch 'develop' of github.com:tfire/solidity into fix/remove-namespace-ast-annotations 2022-03-10 17:39:29 -05:00
Tyler
1653b6c5b7 more qualifying 2022-03-10 17:36:46 -05:00
chriseth
4f02be110c Unused store eliminator. 2022-03-10 18:25:28 +01:00
chriseth
b3fe042884 Optimize eq iszero jumpi to xor jumpi and remove double jump. 2022-03-10 14:41:41 +01:00
Tyler
047034544e Merge branch 'develop' of github.com:tfire/solidity into fix/remove-namespace-ast-annotations 2022-03-09 18:55:22 -05:00
Daniel Kirchner
e7a3814977 Unit test. 2022-03-09 17:53:28 +01:00
Daniel Kirchner
0a9d752b8b Add test case and adjust tests. 2022-03-09 17:53:28 +01:00
Daniel Kirchner
ce0a3e93f2 Store whether an evmasm Assembly is creation code. 2022-03-09 17:42:29 +01:00
Tyler
519e1c9402 Specify namespaces
Fix references into solidity::util
2022-03-08 00:09:17 -05:00
chriseth
77c40cd2af
Merge pull request #12740 from ethereum/remove-locale-dependent-operations
Replace all locale-dependent operations with locale-agnostic counterparts
2022-03-07 17:56:58 +01:00
wechman
52dfccca98 Replace all locale-dependent operations with locale-agnostic counterparts 2022-03-07 17:23:08 +01:00
chriseth
57e012da98
Merge pull request #12663 from ethereum/assemblyAnnotationDialectString
Assembly annotation as memory-safe using assembly flags.
2022-03-07 13:03:08 +01:00
chriseth
79eba921b8
Merge pull request #12659 from paarthmadan/pm/base-64-test-cases
Add Base64 test cases with and without inline assembly
2022-03-07 12:57:49 +01:00
chriseth
4f19d68ee9
Merge pull request #12620 from ethereum/assemblyAnnotation
Memory-safety annotation for inline assembly.
2022-03-07 12:48:41 +01:00
Paarth Madan
17fa85a2fb Add Base64 test cases with and without inline assembly
Adds two implementations of Base64 encoding as specified in RFC4648.
Implementation (1) uses inline assembly, while Implementation (2) is
written purely in Solidity.

Assertions are added to replicate the test vectors specified in the RFC
for Base64 to ensure both implementations to specification.
2022-03-05 19:51:46 -05:00
nishant-sachdeva
beabc51c20 returnSize assigned according to truth value of returnInfo.dynamicReturnSize 2022-03-03 18:55:10 +05:30
Daniel Kirchner
93dd8ad553 Tests. 2022-03-02 17:07:11 +01:00
Daniel Kirchner
6b6e163be5 Tests. 2022-03-02 16:42:28 +01:00
Daniel Kirchner
e6848caac1 Allow annotating inline assembly as memory-safe. 2022-03-02 16:42:28 +01:00
chriseth
b0dcd7b915 Split out disassemble to remove numeric from instruction includes. 2022-03-02 15:30:41 +01:00
Leo Alt
bef69b595b Ignore cex in SMT test 2022-02-28 18:56:20 +01:00
chriseth
ebd584fcfb
Merge pull request #12206 from ethereum/extractExternalFunctionPart
Extract external function part
2022-02-28 13:04:14 +01:00
Kamil Śliwak
8962d53e3c
Merge pull request #12701 from a3d4/fix-running-tests-from-any-drive
Fix running path-related tests from any Windows drive
2022-02-28 12:58:45 +01:00
chriseth
ca4c983973
Merge pull request #12695 from ethereum/less-confusing-err
Make error message less confusing
2022-02-28 12:36:47 +01:00
a3d4
50ae21d1bf Fix running tests from any drive 2022-02-22 18:11:42 +01:00
nishant-sachdeva
195f72e844 Added errorSelector field for custom errors 2022-02-21 19:14:33 +05:30
chriseth
e9592c3f8e Update tests. 2022-02-21 14:32:52 +01:00
Marenz
175580fe90 Make error message less confusing 2022-02-17 16:52:36 +01:00
Leo
e3e77c0f01
Merge pull request #12551 from ethereum/natspec-test
Add test for fixed natspec ICE
2022-02-14 19:51:03 +01:00
Daniel Kirchner
c47da51eab Consider all grandparents in override analysis. 2022-02-14 15:31:31 +01:00
nishant-sachdeva
276851ff91 Added support for FunctionType::Kind::StringConcat and functions string.concat 2022-02-10 22:08:47 +05:30
Daniel Kirchner
290b9326e3 Move stray semantics test to proper directory. 2022-02-10 13:43:49 +01:00
Marenz
46075d04d9 Include used events in `--hashes` output 2022-02-09 13:50:42 +01:00
Marenz
3e7c68d9b0 Merge identifier query methods into one 2022-02-08 17:44:21 +01:00
a3d4
0a17495cf9 Treat root path in normalizeCLIPathForVFS as case insensitive on Windows 2022-02-05 11:51:11 +01:00
hrkrshnn
0fe5811459 Fixed a ICE on calldata to struct member copy 2022-01-31 17:26:11 +01:00
nishant-sachdeva
dec511aad8 Corresponding code in the .cpp file has been commented instead of begin removed pending preliminary reviews
Code generators needed fixing of the cleanup process during typecasting of bytes and integers
2022-01-28 19:56:15 +05:30
Marenz
a550048cf0 Fix too strict assert for calldata string -> bytes conversions 2022-01-20 15:11:26 +01:00
nishant-sachdeva
27d0480e96 Adding Stack Height Checker and modifying the number of POP instructions to appropriately provide the pointer address 2022-01-20 01:15:08 +05:30