Leo
58688bd9c1
Merge pull request #12167 from ethereum/smt_merge_query_entry_points
...
[SMTChecker] Merge all entry points for a target
2021-11-03 16:43:16 +01:00
Leo Alt
dff280cadc
Fix ICE in CHC when using gas in the function options
2021-11-03 15:40:54 +01:00
Daniel Kirchner
1a0605c594
Update tests.
2021-11-03 12:39:55 +01:00
Leo Alt
e40cf92b1d
[SMTChecker] Merge all entry points for a target
2021-11-03 11:12:58 +01:00
chriseth
5eb97fa6ee
Merge pull request #12219 from ethereum/precompile-extcodesize-check-test
...
Semantic test for high level call to precompiles.
2021-11-01 15:08:52 +01:00
hrkrshnn
7683442ce2
Semantic test for high level call to precompiles.
...
Because of the extcodesize check, the high level call will fail. Even though the low level call can
succeed and return data.
2021-11-01 14:22:48 +01:00
chriseth
8e208f23cb
Fix assignment of return variables from modifiers.
2021-11-01 14:14:50 +01:00
Kamil Śliwak
464ac18a1f
Rename negation_bug.yul to negation_bug.sol
2021-10-29 00:19:43 +02:00
David Dzhalaev
79ffa16a61
Improve error message for contract size limit error
2021-10-27 20:06:53 +02:00
Kamil Śliwak
f4421f1b69
Disable metadata in syntax tests
2021-10-27 20:06:53 +02:00
hrkrshnn
8815d6f5f0
Moved a check related to constants to TypeChecker
...
And added a proper error message when constant types containing (nested) mapping types are used.
2021-10-26 18:43:04 +02:00
hrkrshnn
51009c005d
Moved a canBeStored assert for struct members to TypeChecker
...
This is to avoid a assert from failing for forward declared user defined value types.
2021-10-26 18:43:04 +02:00
hrkrshnn
9428dbc94f
Moved storage size assert to TypeChecker from DeclarationTypeChecker
2021-10-26 18:43:04 +02:00
Leo Alt
38b0cf7f9c
SMTChecker tests
2021-10-26 11:30:30 +02:00
Leo Alt
37215ffcfd
Add SMTCheckerTest isoltest option to ignore invariants
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
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
chriseth
adc58c67b4
Merge pull request #11944 from ethereum/debug-info-selection
...
Debug info selection
2021-10-12 16:39:50 +02:00
Christian Parpart
591ba184e9
Adds some more version pragma test cases.
2021-10-12 15:15:54 +02:00
Kamil Śliwak
bcfefc79d9
Pass DebugInfoSelection down to the code handling assembly printing
2021-10-11 20:34:48 +02:00
Kamil Śliwak
2cd1c644b6
Remove unused includes and sort existing includes in a few places
2021-10-11 20:34:48 +02:00
Kamil Śliwak
a30348715b
Use boost::current_exception_diagnostic_information() to print extra info about exceptions caught by (...)
2021-10-07 17:41:25 +02:00
Marenz
4368da0201
Fix ICE when printing an error message related to mappings
2021-10-06 17:02:36 +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
Leo Alt
d25fb29178
Add isoltest option to ignore OS
2021-10-01 12:45:36 +02:00
hrkrshnn
14a678eb67
Fix gas stats
2021-09-29 13:50:51 +02:00
chriseth
e347c983b5
Update gas costs.
2021-09-29 13:25:37 +02:00
chriseth
78a1c1ca6d
Add one more test case.
2021-09-29 13:22:13 +02:00
chriseth
df9721f869
Merge pull request #12047 from ethereum/fixFixedBytesCompilerUtils
...
Properly handle fixed-byte-like types.
2021-09-29 12:23:15 +02:00
chriseth
13354c0b9a
Merge pull request #12050 from ethereum/signedImmutablesBug
...
Fix signed immutables bug.
2021-09-29 11:46:58 +02:00
chriseth
090a46c2a5
New tests.
2021-09-29 11:44:17 +02:00
hrkrshnn
7b7e38768c
Update tests.
2021-09-29 11:44:13 +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
8f7ba99e30
Merge pull request #12045 from ethereum/arrayTestsForUDFT
...
Fix array copying check.
2021-09-29 10:39:34 +02:00
chriseth
90f4ca1048
Do not store immutables packed.
2021-09-29 10:12:05 +02:00
chriseth
ed7884e341
Merge pull request #12043 from ethereum/exportCanonicalName
...
Export canonicalName
2021-09-29 10:11:30 +02:00
chriseth
bb4e3e191d
Fix array copying check.
2021-09-29 10:00:14 +02:00
hrkrshnn
41f9aab219
Tests for assembly access of user defined value types.
2021-09-28 14:50:08 +02:00
chriseth
b6e62d61ec
Export canonicalName
2021-09-28 12:00:30 +02:00
hrkrshnn
e24083a298
UserDefinedValueType: test for reading from dirty storage slots
2021-09-28 11:27:43 +02:00
Kamil Śliwak
77aa1707e1
Revert "Disable tests that fail on Windows due to a bug in Boost <= 1.76"
...
This reverts commit a801c12a8b89a7353a4339510aedc94739e9c46f.
2021-09-27 13:15:57 +02:00
Kamil Śliwak
d4d778de77
Disable tests that fail on Windows due to a bug in Boost <= 1.76
2021-09-27 13:14:10 +02:00
Kamil Śliwak
a436abfb25
normalizeCLIPathForVFS(): Add an option for resolving symlinks
2021-09-27 13:14:10 +02:00
Alex Beregszaszi
3c8846e669
Merge pull request #11976 from ethereum/json-cleanup
...
Some cleanup and testing for JSON
2021-09-24 19:03:45 +01:00
chriseth
1531863835
Split Common.h into Numeric.h.
2021-09-23 15:27:29 +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
chriseth
d9ad047c21
Merge pull request #12001 from ethereum/cmdline-test-for-asm-json
...
Command-line test for `--asm-json`
2021-09-22 11:09:02 +02:00
Marenz
7a51acc5fe
Correct wrong error message referencing .slot
and .offset
when .length
was used
2021-09-21 18:28:38 +02:00
Kamil Śliwak
b1351f4807
Fix typo in test name: leave_items_on_tack.sol
-> leave_items_on_stack.sol
2021-09-21 16:28:16 +02:00
Leo Alt
e74f853c6b
[SMTChecker] Support user types
2021-09-21 13:23:17 +02:00
Alex Beregszaszi
69e9531181
Add JSON tests for unicode, all types, and conformance to ECMA-262/ECMA-404
...
Also avoid using toStyledString
2021-09-21 10:49:13 +01: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
chriseth
91ef1ceb51
Merge pull request #11954 from ethereum/userdefinedvaluetype-multisource-test
...
Added a multisource test for UserDefinedValueTypes and imports
2021-09-16 13:59:22 +02:00
chriseth
ff0e433635
Merge pull request #11965 from ethereum/userdefined-changed-toString
...
User defined value types changed toString()
2021-09-16 13:58:55 +02:00
Marenz
c81814915c
Properly detect multiple licenses and validate them.
2021-09-16 11:18:26 +02:00
Alex Beregszaszi
c1070fabc0
Merge pull request #11906 from ethereum/smt_fix_bmc
...
[SMTChecker] Fix BMCs constraints on internal functions
2021-09-15 21:01:29 +01:00
hrkrshnn
15fb427a99
Added a multisource test for UserDefinedValueTypes and imports
...
Testing if `import {MyType} from "source";` works
2021-09-15 17:48:53 +02:00
hrkrshnn
48e16ceb88
Changing the UserDefinedValueType::toString to userdefined <name>
2021-09-15 17:25:23 +02:00
chriseth
34e516ea1b
Merge pull request #11963 from ethereum/slightABIDecodeImprovement
...
Improve abi decoding functions for arrays.
2021-09-15 15:42:13 +02:00
Leo Alt
b731957e65
Fix BMCs constraints on internal functions
2021-09-15 14:42:39 +02:00
Daniel Kirchner
d1c0b428fc
Improve abi decoding functions for arrays.
2021-09-15 13:50:19 +02:00
hrkrshnn
42c8310a63
Updated tests.
2021-09-15 12:56:29 +02:00
Daniel Kirchner
0fa24c786b
Merge pull request #11956 from ethereum/userDefinedTypesContractAccess
...
Allow accessing user defined value type members via contract name.
2021-09-14 17:14:04 +02:00
Daniel Kirchner
be29ef70a7
Allow accessing user defined value type members via contract name.
2021-09-14 16:24:14 +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
chriseth
8188ea7d66
Merge pull request #11931 from ethereum/different-metadata-via-ir
...
Different metadata for IR
2021-09-14 15:48:08 +02:00
Leonardo
e45083f319
Merge pull request #11606 from ethereum/info_message
...
Add new info severity
2021-09-14 14:30:07 +02:00
chriseth
cb218fe018
Merge pull request #11947 from ethereum/abicodec-test-userdefined
...
Added an abi function test for UserDefinedValueType
2021-09-14 13:49:45 +02:00
Kamil Śliwak
405a9e9971
Generate separate metadata for the old and the new codegen
2021-09-14 13:44:04 +02:00
Kamil Śliwak
83b3bd0227
Add a version of isValidMetadata() that accepts already parsed metadata
2021-09-14 13:44:04 +02:00
Leo Alt
e72fa7fc10
Add new info severity
2021-09-13 22:48:22 +02:00
Harikrishnan Mulackal
c8c6d30808
Merge pull request #11946 from ethereum/tests-userdefinedvaluetypes
...
UserDefinedValueType: test to validate zero-cost-abstraction claim.
2021-09-13 18:54:36 +02:00
hrkrshnn
4871017aae
Added an abi function test for UserDefinedValueType
...
A test to see if `abi.encode*(..., (CustomType))` and `abi.decode(..., (CustomType))` works as
intended.
2021-09-13 18:12:42 +02:00
hrkrshnn
00bfed4d8b
UserDefinedValueType: test to validate zero-cost-abstraction claim.
...
Seems that the optimizer can indeed make it a zero-cost-abstraction!
2021-09-13 16:49:52 +02:00
Daniel Kirchner
ab7b1625ac
Tests for unassigned calldata returns.
2021-09-13 15:22:46 +02:00
Daniel Kirchner
fc37b18e88
Fix inline assembly assignments to calldata structs and statically-sized arrays.
2021-09-13 15:22:46 +02:00
Harikrishnan Mulackal
8fafdeacac
Merge pull request #11939 from ethereum/userdefined-types-mapping-key
...
Allow Mapping keys to have type UserDefinedValueType.
2021-09-13 15:06:14 +02:00
hrkrshnn
2ead3f469e
Added a user defined type mapping into the ASTJSON test.
2021-09-13 14:06:31 +02:00
hrkrshnn
a1d4d0125d
Allow UserDefinedValueType.uwrap (and wrap) as RHS of constant decl
...
Needed to make `MyType.unwrap` and `MyType.unwrap` as pure in the process. This change affected some
existing tests ("statement has no effect").
2021-09-13 11:53:05 +02:00
hrkrshnn
1fa6c71bd0
Allow Mapping keys to have type UserDefinedValueType.
...
Also added syntax and semantic test.
2021-09-13 10:03:49 +02:00
Daniel Kirchner
dea1b9ec79
Merge pull request #11920 from ethereum/update-comment-fixedpoint-example
...
User defined value type: changes in documentation and test case
2021-09-09 17:38:37 +02:00
hrkrshnn
952540c3b5
User defined value type: changes in documentation and test case
...
Changed the name of a function from `truncate` to `floor`, since that is more appropriate; updated
the inaccurate description on the rounding behaviour. Also modified the respective semantic test.
2021-09-09 16:57:03 +02:00
Leo Alt
d91f75deb8
Fix ICE on unique errors
2021-09-09 16:37:43 +02:00
chriseth
3e2e3d1baa
Merge pull request #11915 from ethereum/fix-out-of-sync-gas-costs
...
Fix breakage on `develop` caused by gas costs that went out of sync
2021-09-09 15:42:08 +02:00
Kamil Śliwak
f6eecb8c6f
Fix gas costs that went out of sync in some tests due to a recent merge
2021-09-09 13:26:45 +02:00
hrkrshnn
a03fbf7061
User defined value types: moved a syntax test to semantic test.
2021-09-09 12:07:51 +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
d67391531e
Implemented ASTJson import export for UserDefinedValueType
...
Also added a test.
2021-09-08 21:19:30 +02:00
hrkrshnn
5f393d1694
Semantic tests for User Defined Value types
2021-09-08 21:19:30 +02:00
hrkrshnn
229f50eef1
Syntax checks for user defined value types
2021-09-08 19:56:48 +02:00
chriseth
4b0cd6cc8c
Update gas costs.
2021-09-08 12:25:56 +02:00
hrkrshnn
ce75790e8d
TypeChecker: added checks for wrap
and unwrap
...
For user defined value types and also added a test case.
2021-09-07 19:42:51 +02:00
hrkrshnn
0647039864
DeclarationTypeChecker for UserDefinedValueTypes
...
- Checks for repetitions.
- Assigns types.
- Checks if the 'actual type' is an elementary type name.
- Checks if the 'actual type' is a value type.
Also added tests.
2021-09-07 19:42:51 +02:00
hrkrshnn
9f7426b4a9
Implemented parsing for UserDefinedValueType
...
Also added parsing tests.
2021-09-07 19:42:51 +02:00
Leo Alt
6e2fe1e340
[SMTChecker] Cleanup spurious messages about TypeTypes
2021-09-07 16:55:25 +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
Leo Alt
ac528cfd1b
add static array length constraint
2021-08-30 17:15:16 +02:00
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
Leo Alt
0cc9162fb5
Update SMTChecker tests
2021-08-27 16:25:09 +02:00
Kamil Śliwak
92446cbcab
TemporaryDirectory: Add an alternative constructor that can create subdirectories
2021-08-27 15:11:20 +02:00
Kamil Śliwak
9dc7360903
TemporaryDirectory: Add automatic conversions to boost::filesystem::path
2021-08-27 15:11:20 +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
a9af63187e
Adjust tests for nondeterminism
2021-08-25 21:10:43 +02:00
Leo Alt
4cf4ccafd7
New tests
2021-08-25 21:10:08 +02:00
Leo Alt
85378b1770
Update existing tests
2021-08-25 21:10:08 +02:00
Leo Alt
718f392849
Don't erase things for BMC if function call is staticcall
2021-08-25 14:09:46 +02:00
Leo Alt
a55685c04f
Erase balances when delegatecall is seen
2021-08-25 12:39:26 +02:00
Leo Alt
9ea4576664
Update tests
2021-08-19 16:34:01 +02:00
chriseth
45a910c2ca
Merge pull request #11750 from ethereum/immutables-10463
...
Allow reading of immutables during construction time
2021-08-19 14:39:03 +02:00
Marenz
121fd40f74
Allow reading of immutables during construction time
2021-08-19 13:59:05 +02:00
chriseth
2165c0d3d9
Update gas costs.
2021-08-19 13:26:52 +02:00
chriseth
063d481bb3
Fix parsing fixed point values.
2021-08-17 14:46:11 +02:00
chriseth
948665ff89
Merge pull request #11749 from ethereum/simplifyConvertEvenMOre
...
Simplify yul conversion function even more.
2021-08-17 14:39:59 +02:00
chriseth
704820cc6e
Update tests.
2021-08-16 22:24:06 +02:00
Alexander Arlt
866617b353
[isoltest] Add support for fixed point types.
2021-08-16 13:07:22 +02:00
chriseth
d7a802e4bf
Merge pull request #11682 from ethereum/fixedPointTypes
...
Fixed point types for isoltest
2021-08-13 09:37:29 +02:00
Leo Alt
937af7d722
Fix SMT test
2021-08-12 22:34:18 +02:00
Alexander Arlt
d6b9b4175b
[isoltest] Add support for fixed point types.
2021-08-12 21:27:51 +02:00
chriseth
fe0d027d45
Merge pull request #11785 from ethereum/someMoreBaseFees
...
Some more base fees.
2021-08-12 19:48:10 +02:00
Leo Alt
6ee60aa628
Fix false positive on external calls from constructors
2021-08-12 18:51:55 +02:00
chriseth
c87c0f02bd
Test updates.
2021-08-12 16:56:12 +02:00
chriseth
90c4623460
Some more base fees.
2021-08-12 16:37:21 +02:00
chriseth
ccdc11ea5b
Merge pull request #11741 from ethereum/shadowing_inlineasm_fix_yul_codegen
...
Fixed inline assembly external identifier access.
2021-08-12 14:38:24 +02:00
Leo Alt
10397e440c
Fix ICE in constants
2021-08-12 10:53:01 +02:00
chriseth
a4c94a1b5b
Fixed inline assembly external identifier access.
2021-08-11 18:18:29 +02:00
hrkrshnn
892700d769
Tests for basefee as identifier in inline assembly
...
Also added basefee to `EVMVersion::hasOpcode(...)`
2021-08-11 10:46:40 +02:00
hrkrshnn
7f1a2be0fe
Allow basefee as Yul identifier for EVMVersion < london
...
This was done to prevent basefee from being a breaking change. This change will be removed in 0.9.0.
TODO revert this commit in breaking.
2021-08-11 10:46:08 +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
chriseth
db85849648
Merge pull request #11737 from ethereum/fix_shift_cleanup
...
Yul: Fix cleanup for left shift of bytes types.
2021-08-05 12:55:42 +02:00
chriseth
6b888b531b
Refactor conversion function.
2021-08-05 11:48:35 +02:00
chriseth
0112fed73b
Yul: Fix cleanup for left shift of bytes types.
2021-08-05 10:54:48 +02:00
Leo Alt
3c1f555f71
Tests
2021-08-04 13:54:50 +02:00
chriseth
ffc5cfd9a5
Remove scanner from compiler stack.
2021-08-03 15:43:17 +02:00
Leo Alt
6c8ecfa82c
Add option to choose solver
2021-07-27 17:14:21 +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
Leo Alt
e46abd0ca1
Update tests due to nondeterminism
2021-07-19 15:20:11 +02:00
Leo Alt
20e23171da
Update tests to z3 4.8.12
2021-07-16 14:43:52 +02:00