Kamil Śliwak
03d09efb68
DataFlowAnalyzer: Fix variable clearing nondeterminism (affecting CSE and bytecode reproducibility) due to set insertions during iteration
2023-09-30 00:06:41 +02:00
r0qs
e3b36f736d
Avoid sorting FunctionDefinitions by AST ID during codegen
...
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2023-09-26 14:02:00 +02:00
Kamil Śliwak
b0a986ffff
Allow event definitions at file level
2023-09-15 14:47:40 +02:00
Nikola Matic
fdc6699159
Rematerialize zero literals with default cleanup sequence
...
Add unused pruner step to the end of the default cleanup sequence
2023-09-04 15:40:33 +02:00
Kamil Śliwak
9adbced98e
Remove parser error recovery mode
2023-08-22 12:00:11 +02:00
Nikola Matic
96e7b4f46b
Rematerialize zero literals
2023-08-07 17:33:16 +02:00
Pawel Gebal
6574c10f25
SMTChecker: Visit the condition in for and while loops after loop is unrolled
2023-08-03 13:36:41 +02:00
r0qs
ea7ee3d5fe
Fix yul ast ID to 0 instead of 1.
2023-07-28 17:48:35 +02:00
Pawel Gebal
db5baebff8
SMTChecker fix: Do not unroll loop after it completes
2023-07-26 16:31:03 +02:00
Nikola Matic
964bdc711c
Fix ICE when emitting event from another contract
2023-07-21 21:49:09 +02:00
Nikola Matic
c2670e4afb
Set version to 0.8.22
2023-07-19 11:03:17 +02:00
Nikola Matić
d9974bed71
Merge pull request #14427 from ethereum/set-release-date-version-0.8.21
...
Set release date for 0.8.21
2023-07-19 10:56:46 +02:00
Nikola Matic
601104ea94
Sort Changelog for 0.8.21 release
2023-07-19 10:00:34 +02:00
Nikola Matic
09628b7502
Set release date for 0.8.21
2023-07-19 09:27:09 +02:00
Martin Blicha
f622a6c514
Add missing changelog entries
2023-07-18 20:28:52 +02:00
r0qs
86602852be
Add buglist entry
...
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2023-07-18 18:15:32 +02:00
Daniel Kirchner
5c7214cbe3
Always generate code for .selector member access.
2023-07-18 18:15:32 +02:00
Daniel Kirchner
110e2a656d
Restrict mobile types of function types.
...
Move ternary tests to semanticTests
2023-07-18 14:13:36 +02:00
Matheus Aguiar
f3fc19080a
Override mobileType of MagicType to null
2023-07-18 10:56:02 +02:00
Daniel Kirchner
0ab0842c29
Disallow conversions between declaration function types.
2023-07-17 18:33:07 +02:00
Kamil Śliwak
ba3f9dd2a2
FullInliner: Do not include calls whose arguments may have side-effects
2023-07-17 16:40:43 +02:00
Kamil Śliwak
5e1e0e7752
FullInliner: Fix order of arguments of inlined functions
2023-07-17 16:40:43 +02:00
Kamil Śliwak
dad2bf6472
Relax restrictions on immutable initialization
2023-07-14 15:29:32 +02:00
Kamil Śliwak
16220db759
IRGeneratorForStatements: Fix undefined order of functions when generating code for index expressions
2023-07-13 11:06:11 +02:00
Martin Blicha
29041c8101
Remove ReasoningBasedSimplifier from libyul
...
Due to a design decision to move away from a bundled SMT solver,
ReasoningBasedSimplifier in its current form cannot be use any longer.
This is a necessary step to allow a unified way to call solvers using
only SMTLIB interface.
Since this optimization pass has always been marked as highly
experimental and never turned on by default, it should be OK to remove
it.
2023-06-28 14:38:36 +02:00
Pawel Gebal
826fd90dcf
Fix error in SMTChecker: Use rich indentifier instead of external identifier to ecnode member access to functions
2023-06-23 15:24:55 +02:00
Kamil Śliwak
3ecf968001
Merge pull request #14328 from ethereum/fix-incomplete-ast-in-standard-json-on-analysis-fail
...
Fix incomplete AST in standard json on analysis fail
2023-06-19 18:26:33 +02:00
Pawel Gebal
d4be1d9c2f
Add --print-smt flag to output SMTChecker SMTLIB code
2023-06-16 14:04:07 +02:00
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
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
Kamil Śliwak
f8a1af8bd5
CommandLineParser: Fix some outputs not being properly disallowed with --stop-after parsing
2023-06-14 14:22:38 +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
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
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
2769bb52f6
Make --optimize-yul work again
2023-06-06 09:54:07 +02:00
Pawel Gebal
f15b826431
Add optional bounds to unroll loops in BMC model checker
2023-06-02 18:32:38 +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ć
477b621f2e
Merge pull request #14274 from ethereum/enable-access-to-foreign-events
2023-05-26 13:49:13 +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
Nikola Matic
5893e099fe
Allow qualified access to events from other contracts
2023-05-26 12:52:52 +02:00
GiokaMarkella
28a1abf89a
Yul AST output on the CLI and in Standard JSON
2023-05-26 12:35:31 +02:00
Kamil Śliwak
a11b1c83f0
Disallow using both --optimize-yul and --no-optimize-yul at the same time
2023-05-24 15:54:40 +02:00
Nikola Matic
8a41f4ac7e
Introduce solidity-next pragma
...
Exclude pragma experimental error from ANTLR tests
Test for first pragma after non-pragma declaration
Resolve import pragmas
Change pragma name from next to solidity
Add Changelog entries
Address review comments
2023-05-15 19:25:13 +02:00
Daniel
9804085934
Merge pull request #14216 from ethereum/fix_bmc_side_effects_in_statement
...
Fix encoding of side-effects inside if and ternary in BMC
2023-05-15 13:34:22 +02:00
Alexander Arlt
c5673278a7
Remove EWASM backend.
2023-05-11 10:56:55 -05:00
Leo Alt
678461e828
Fix encoding of side-effects inside if and conditional statements in the BMC engine
2023-05-11 16:44:09 +02:00
Daniel Kirchner
4b67dea8e2
Set version to 0.8.21.
2023-05-10 17:55:52 +02:00
Daniel Kirchner
3c77d33db8
Set release date for 0.8.20.
2023-05-10 12:20:56 +02:00
Daniel Kirchner
b730bde54d
Sort and adjust changelog for 0.8.20.
2023-05-10 12:15:00 +02:00
Daniel Kirchner
606fbd8fcc
Fix antlr grammar.
2023-05-10 12:00:45 +02:00