Leo Alt
d419c30ca6
Add errorCode list to invariants report
2021-10-26 11:30:30 +02:00
Leo Alt
49e7627bd3
Use invariants in CHC
2021-10-26 11:30:30 +02:00
Leo Alt
bc90533c93
Add invariants to ModelCheckerSettings
2021-10-26 11:30:30 +02:00
Leo Alt
d554824f70
Add Invariants which traverses the proof and collects invariants for the given predicates
2021-10-26 11:30:30 +02:00
Leo Alt
9bcd2c18e4
Add expression substitution to Predicate
2021-10-26 11:30:30 +02:00
Leo Alt
ce72d7cd26
Add ExpressionFormatter which translates an smtutil::Expression into a Solidity-like expression string
2021-10-26 11:30:30 +02:00
Kamil Śliwak
fdf3b96e3f
Merge pull request #12155 from vowchick/develop
...
Use range-v3 loops: delete boost includes
2021-10-16 12:03:43 +02:00
vowchick
5d985a24ac
Use range-v3 loops: delete boost includes
...
An addition to issue #10738 , couldn't change boost::for_each to
std::for_each, doesn't compile.
Build successful
./scripts/test.sh successful
2021-10-16 11:54:46 +03:00
tcoyvwac
ba0c09e082
Prefer make_unique over new
2021-10-15 19:46:47 +02:00
chriseth
1e630fc584
Merge pull request #12082 from ethereum/controlFlowSideEffectsUserDefined
...
Control flow side effects of user defined functions
2021-10-14 18:28:22 +02:00
chriseth
9417d6775f
Control flow side-effects for user-defined functions.
2021-10-14 17:46:07 +02:00
Christian Parpart
86a7e19879
libsolidity: Adding a comment to nameLocation().
2021-10-14 17:33:15 +02:00
chriseth
1a931a5108
Make use of inner loops.
2021-10-13 15:56:23 +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
chriseth
adc58c67b4
Merge pull request #11944 from ethereum/debug-info-selection
...
Debug info selection
2021-10-12 16:39:50 +02:00
Kamil Śliwak
e136788493
Replace BOOST_THROW_EXCEPTION() with solThrow() where appropriate
2021-10-11 20:35:00 +02:00
Kamil Śliwak
a9e794c872
Expose --debug-info/settings.debug.debugInfo option
2021-10-11 20:34:48 +02:00
Kamil Śliwak
bcfefc79d9
Pass DebugInfoSelection down to the code handling assembly printing
2021-10-11 20:34:48 +02:00
Kamil Śliwak
f7c4ed849d
Handle DebugInfoSelection in the code printing Yul and EVM assembly
2021-10-11 20:34:48 +02:00
Christian Parpart
3f08b2269a
Adds fmtlib as 3rdparty dependency for easier string composition.
2021-10-11 13:35:08 +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
chriseth
ecfcca1a27
Merge pull request #12016 from ethereum/external-fp-10358
...
Add ``.address`` and ``.selector`` in inside assembly for external function pointers
2021-10-05 14:48:58 +02:00
Marenz
98dd78362e
Add `.address
and
.selector
` in inside assembly for external function pointers
2021-10-04 18:05:57 +02:00
Kamil Śliwak
7f7107405f
Try out the new assertion macro variants with less arguments
2021-10-04 12:05:00 +02:00
Leo Alt
d81ebe97c3
Fix magic access
2021-10-01 12:57:06 +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
77932edb02
Consider non-external functions not left-aligned.
2021-09-29 11:44:17 +02:00
chriseth
cb052611cf
Fix signextend for user defined value types.
2021-09-29 11:44:17 +02:00
chriseth
da5c5928fe
Properly handle fixed-byte-like types.
2021-09-29 11:41:47 +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
bb4e3e191d
Fix array copying check.
2021-09-29 10:00:14 +02:00
chriseth
b6e62d61ec
Export canonicalName
2021-09-28 12:00:30 +02:00
Kamil Śliwak
f909555022
Treat ambiguous imports as errors
2021-09-27 13:14:23 +02:00
Kamil Śliwak
9975b5e26b
Detect source unit name collisions between paths specified on the command line
2021-09-27 13:14:23 +02:00
Kamil Śliwak
c8a7a1da7c
Add --include-path option
2021-09-27 13:14:23 +02:00
Kamil Śliwak
479ba7c523
Handle allowing empty paths correctly
2021-09-27 13:14:10 +02:00
Kamil Śliwak
3ac3612767
Whitelist base path
2021-09-27 13:14:10 +02:00
Kamil Śliwak
52dd39212d
Normalize allowed paths before comparing them with imports
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
Kamil Śliwak
f0dceffe1d
Refactor parsing of remappings to remove duplication and improve readability
2021-09-27 13:14:10 +02:00
Kamil Śliwak
d06dc7613e
Print diagnostic info for more exception types in the default import callback
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
chriseth
c8e6ef9657
Merge pull request #12004 from ethereum/disambiguateBytesRequired
...
Disambiguate bytesRequired
2021-09-23 15:25:44 +02:00
chriseth
5a3a5c746f
Merge pull request #11864 from ethereum/protectViaIR
...
Add protection against mixing "viaIR" and "non-viaIR".
2021-09-22 16:16:11 +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
9f8406ad37
Add protection against mixing "viaIR" and "non-viaIR".
2021-09-22 15:34:39 +02:00
Kamil Śliwak
fc7e8c56dc
Fill out originLocation with nativeLocation when importing Yul AST
2021-09-22 13:17:18 +02:00
Kamil Śliwak
ce4420f857
Separate DebugData fields for Solidity and Yul source locations
2021-09-22 13:11:39 +02:00
chriseth
50ce1f5ddd
Disambiguate bytesRequired
2021-09-22 11:22:07 +02:00
chriseth
7637286074
Remove unused function.
2021-09-22 11:11:51 +02:00
chriseth
2741175507
Use function debug data.
2021-09-22 11:11:51 +02:00
Marenz
7a51acc5fe
Correct wrong error message referencing .slot
and .offset
when .length
was used
2021-09-21 18:28:38 +02:00
Leo Alt
e74f853c6b
[SMTChecker] Support user types
2021-09-21 13:23:17 +02:00
Alex Beregszaszi
55c64e3ca1
Always explicitly initialise Json objects
2021-09-21 10:49:13 +01: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
chriseth
3f8023ace9
Merge pull request #11981 from ethereum/simplifyVersion
...
Simplify version.cpp
2021-09-16 18:28:19 +02:00
chriseth
8b3748e5b7
Emit ast id.
2021-09-16 17:19:17 +02:00
chriseth
a72f4f3993
Print AST ID.
2021-09-16 17:19:17 +02:00
chriseth
c892d1904b
Simplify version.cpp
2021-09-16 16:03:27 +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
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
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
de01822999
UserDefinedValueType: from simple name to canonical name.
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
Kamil Śliwak
405a9e9971
Generate separate metadata for the old and the new codegen
2021-09-14 13:44:04 +02:00
Kamil Śliwak
14639efc5d
Print code snippets next to source locations in IR output
2021-09-14 12:09:59 +02:00
Kamil Śliwak
37f681c430
Deduplicate code for printing source locations
2021-09-14 11:46:57 +02:00
Leo Alt
e72fa7fc10
Add new info severity
2021-09-13 22:48:22 +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
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
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
54484e9795
Implemented codegen for UserDefinedValueType
2021-09-08 19:56:48 +02:00
chriseth
0b5671c885
Clarify C++ evaluation order.
2021-09-08 12:25:56 +02:00
chriseth
c63b768fff
Sort yul functions by creation time.
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
15452371d4
Types for UserDefinedValueType
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
hrkrshnn
d3ae9cf71b
Added AST node UserDefinedValueType
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
chriseth
5093cff7ae
Rename source location function.
2021-09-06 18:33:36 +02:00
chriseth
f14b7598c7
Only list used source names.
2021-09-06 18:33:05 +02:00
chriseth
5d2931cba3
Refactor: Add helper for context.
2021-09-06 18:18:33 +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
7f137d352a
Merge pull request #11869 from ethereum/remodelUseSrc
...
Allow and require use-src to be repeated for each object.
2021-09-02 18:34:07 +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
chriseth
5caa15879b
Allow and require use-src to be repeated for each object.
2021-09-02 11:29:42 +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
Harikrishnan Mulackal
1e334a8993
Merge pull request #11799 from benldrmn/increase_use_of_constexpr
...
Increase use of C++ constexpr
2021-08-31 17:23:36 +02:00
Kamil Śliwak
d07b796675
Disallow modifier declarations and definitions in interfaces
2021-08-31 15:25:08 +02:00
benldrmn
58e4cc62e0
Increase use of C++ constexpr constant expressions in code base as described in issue #7720
2021-08-31 15:03:59 +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
8e81df1bd3
Do not show redundant unsupported errors in SMTChecker
2021-08-27 16:25:09 +02:00
Kamil Śliwak
13f46ebb1e
FileReader: Normalize base path and strip it from normalized source paths
2021-08-27 15:10:46 +02:00
Leonardo
6e6bbb2f83
Merge pull request #11837 from soroosh-sdi/use-range-v3-part2
...
Using range-v3 instead of boost
2021-08-26 09:38:27 +02:00
Leo Alt
61160aa0e7
Add constraints correlating address(this).balance and msg.value
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
soroosh-sdi
b0ce98bcb2
Using range-v3 instead of boost
...
Signed-off-by: soroosh-sdi <soroosh.sardari@gmail.com>
2021-08-24 23:50:23 +04:30
soroosh-sdi
0417ee2a21
Replace boost::adaptors with range-v3
...
Signed-off-by: soroosh-sdi <soroosh.sardari@gmail.com>
2021-08-24 13:07:26 +04:30
Kamil Śliwak
6b7857d56b
Merge pull request #11650 from ethereum/boost-path-in-read-file-as-string
...
Use `boost::filesystem::path` in `readFileAsString()`
2021-08-20 19:45:54 +02:00
Leo Alt
d89d63bf9c
Use the nondeterministic interface also for BARECALL
2021-08-19 16:34:01 +02:00
Marenz
121fd40f74
Allow reading of immutables during construction time
2021-08-19 13:59:05 +02:00
Kamil Śliwak
cb1a0f08ca
readFileAsString(): Accept path as boost::filesystem::path instead of string
2021-08-17 12:58:33 +02:00
chriseth
94c4e1e172
Simplify yul conversion function even more.
2021-08-16 22:24:06 +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
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
95091f6b58
Implemented block.basefee
in Solidilty and basefee()
in Yul.
...
Also added basefee to Yul grammar.
2021-08-09 16:18:08 +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
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
chriseth
467cbf92bc
Only provide code generator to CodeTransform.
2021-08-04 18:38:10 +02:00
Leo Alt
3c1f555f71
Tests
2021-08-04 13:54:50 +02:00
Leo Alt
41087f3195
Add CLI and JSON option to show unproved targets
2021-08-04 13:54:50 +02:00
Leo Alt
685d7a8c99
Bundle all unproved targets in a single message and only show all if setting chooses that
2021-08-04 13:54:50 +02:00
chriseth
ae519c1278
Merge pull request #11658 from ethereum/removeScannerFromCompilerStack
...
Remove scanner from compiler stack
2021-08-03 17:47:39 +02:00
Christian Parpart
d203c80abd
Eliminate unnecessary m_source from Parser
2021-08-03 16:03:45 +02:00
Christian Parpart
6294aa871a
Simplify AsmParser::parse(.) usage
2021-08-03 15:43:17 +02:00
chriseth
ffc5cfd9a5
Remove scanner from compiler stack.
2021-08-03 15:43:17 +02:00