chriseth
a1aa9d2d90
Skip extcodesize check if return data is expected.
2021-11-08 14:58:09 +01:00
Daniel Kirchner
4229369180
Compatibility with StackCompressor and StackLimitEvader.
2021-11-03 12:39:55 +01:00
chriseth
8e208f23cb
Fix assignment of return variables from modifiers.
2021-11-01 14:14:50 +01: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
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
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
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
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
1531863835
Split Common.h into Numeric.h.
2021-09-23 15:27:29 +02:00
Kamil Śliwak
ce4420f857
Separate DebugData fields for Solidity and Yul source locations
2021-09-22 13:11:39 +02:00
chriseth
7637286074
Remove unused function.
2021-09-22 11:11:51 +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
Daniel Kirchner
d1c0b428fc
Improve abi decoding functions for arrays.
2021-09-15 13:50:19 +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
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
Daniel Kirchner
fc37b18e88
Fix inline assembly assignments to calldata structs and statically-sized arrays.
2021-09-13 15:22:46 +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
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
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
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
5caa15879b
Allow and require use-src to be repeated for each object.
2021-09-02 11:29:42 +02:00
Marenz
2b28f87abf
Add type().min/max for enums
2021-09-01 15:02:02 +02:00
Marenz
121fd40f74
Allow reading of immutables during construction time
2021-08-19 13:59:05 +02:00
chriseth
94c4e1e172
Simplify yul conversion function even more.
2021-08-16 22:24:06 +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
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
chriseth
ae519c1278
Merge pull request #11658 from ethereum/removeScannerFromCompilerStack
...
Remove scanner from compiler stack
2021-08-03 17:47:39 +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
Mathias Baumann
2ee6c7be64
Print @src and @use-src locations in AsmPrinter
2021-08-03 15:29:52 +02:00
Kamil Śliwak
6d6c9e6e4f
Merge pull request #11660 from ethereum/docs-fix-badly-indented-lists-and-blocks
...
[Docs] Fix badly indented lists and blocks
2021-07-21 18:35:19 +02:00
Mathias Baumann
bf204403d8
Add "@use-src" header for generated yul code
2021-07-15 14:26:01 +02:00
Marenz
57db4c82ba
Fix: Use correct byte offset separation
...
":" instead of ","
2021-07-15 13:15:21 +02:00
Kamil Śliwak
ce79e2515b
docs: Fix badly indented lists
2021-07-15 10:13:30 +02:00
Kamil Śliwak
6753c8f624
Rename escapeAndQuoteYulString() back to escapeAndQuoteString()
2021-07-14 21:29:01 +02:00
chriseth
f75b55071e
Remove CharStream from SourceLocation.
2021-07-14 15:12:07 +02:00
Daniel Kirchner
0a6fc89da2
Fix negation function name collision.
2021-07-08 10:47:29 +02:00
chriseth
54b1c667f1
Merge pull request #11595 from ethereum/issue-11526
...
Fix yul codegen bug when using binary negation.
2021-06-30 11:55:42 +02:00
Mathias Baumann
c47d02066c
Fix yul codegen bug when using binary negatition.
2021-06-29 17:41:03 +02:00
chriseth
eaac16c779
Merge pull request #11590 from ethereum/disallow-non-hex-zero-and-fix-bytes32-literals-in-bytes-concat
...
Disallow non-hex zero literals and fix 32-byte hex literals in `bytes.concat()`
2021-06-29 16:34:26 +02:00
Kamil Śliwak
6a50d088a0
Fix ICE for 32-byte hex literals and zero literals in bytes.concat() by disallowing them
2021-06-29 14:48:42 +02:00
Kamil Śliwak
fa3696878b
Fix crash when passing empty strings to bytes.concat()
2021-06-29 13:52:01 +02:00
Kamil Śliwak
19fada966f
Do not use \b, \v and \f escapes in string literals in generated Yul code
2021-06-28 14:13:47 +02:00
Kamil Śliwak
ca0b1bf3f3
Fix crash when passing zero to bytes.concat()
2021-06-25 21:26:28 +02:00
Alexander Arlt
8accf420ea
[yul] Functions: Remove dependency on AST ID.
2021-06-23 16:15:25 +02:00
Kamil Śliwak
98e83303b1
Remove assertions preventing calldata->calldata conversion when cleanup is needed
2021-06-22 16:10:16 +02:00
Djordje Mijovic
838f59fa5b
Adding origin location notation to yul ir.
2021-06-21 18:48:20 +02:00
chriseth
0df8a38e55
Support metadata via IR.
2021-06-21 18:20:31 +02:00
Mathias Baumann
d7d64c3db5
IR Codegen: Small refactoring & comment fixes
2021-06-14 13:35:53 +02:00
chriseth
7d8a4e63d8
Merge pull request #11491 from TerranCivilian/fix-10269
...
Remove unneeded include files
2021-06-07 20:15:20 +02:00
TerranCivilian
c15501eea9
Remove unneeded include files
2021-06-07 12:53:18 -04:00
Mathias Baumann
6a0313c456
Unify function call resolve function used in Analysis & Yul CodeGen
2021-06-07 15:23:32 +02:00
chriseth
c55d173a28
Merge pull request #11479 from ethereum/fix-ice-when-assigning-implicitly-convertible-function-array-to-storage
...
Fix ICE when assigning implicitly convertible function array to storage
2021-06-03 10:52:21 +02:00
chriseth
93936129f1
Merge pull request #11476 from ethereum/fix-ice-on-library-bound-to-literal
...
Fix ICE in IR when a library is bound to a literal
2021-06-03 08:58:00 +02:00
Kamil Śliwak
ccf658b0e8
Fix assertion preventing assignment of arrays of implicitly convertible function types
2021-06-03 08:56:02 +02:00
Kamil Śliwak
67e87147b4
Extra asserts, test renaming, test for super in modifiers
2021-06-02 16:15:51 +02:00
Kamil Śliwak
3c7112ed2b
Remove the assertion against functions bound to types for which should not be possible
...
- The list was wrong - we do support string and int literals
- The assertion was meant to guard against silently skipping over types for which there is no special handling. The current code handles everything in a generic way though and likely will not have to be adjusted for newly added types so the risk of that happening is low.
2021-06-02 13:59:42 +02:00
chriseth
0623658ddd
Properly set source location of bare blocks.
2021-05-31 18:28:17 +02:00
Djordje Mijovic
17eaa11657
[Sol->Yul] Adding assertion in order to give better error messages for fixed point types.
2021-05-31 15:54:37 +02:00
chriseth
29a995b937
Merge pull request #11433 from ethereum/panic-dedup
...
Insert a call to panic function in legacy codegen (and not inline it every single time)
2021-05-31 11:23:30 +02:00
Alex Beregszaszi
c436785686
Insert a call to panic function in legacy codegen (and not inline it every single time)
2021-05-27 18:29:46 +01:00
chriseth
d305c219d8
Fix namespace styles.
2021-05-27 17:41:04 +02:00
Alex Beregszaszi
bf2c82adca
Document the panic function of library deployment
2021-05-26 15:51:46 +01:00
Alex Beregszaszi
6dae6583af
Turn toCompactHexWithPrefix into a template and support unsigned types
...
This should help with boost::multiprecision versions where explicit unsigned/enum conversion to bigint do not exists (such as boost 1.76)
2021-05-15 23:33:29 +01:00
Daniel Kirchner
c69add1682
Remove import of ranges namespace.
2021-05-07 13:44:14 +02:00
chriseth
518629a8f6
Merge pull request #10768 from ethereum/copyLiteralToStorageSol2Yul
...
[Sol->Yul] Adding util function to copy literal to storage.
2021-05-06 10:44:39 +02:00
Djordje Mijovic
f0c5cdca9f
[Sol->Yul] Adding util function to copy literal to storage.
...
Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>
Co-authored-by: chriseth <chris@ethereum.org>
2021-05-05 11:33:03 +02:00
chriseth
72fc4d4a32
Introduce ceil division helper function.
2021-05-05 11:12:10 +02:00
chriseth
9d156b52c4
Merge pull request #8868 from ethereum/functionEntryPoints
...
Note function entry points.
2021-05-05 11:08:44 +02:00
Djordje Mijovic
3e5f5fccf9
[Sol->Yul] Adding cleanUpArrayEnd util function.
...
Co-authored-by: chriseth <chris@ethereum.org>
Co-authored-by: Alex Beregszaszi <alex@rtfs.hu>
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
Co-authored-by: Alex Beregszaszi <alex@rtfs.hu>
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2021-05-05 08:53:34 +02:00
chriseth
f9c94d7c42
Note function entry points.
2021-05-04 17:15:13 +02:00
chriseth
faca036837
Merge pull request #11294 from ethereum/yulAstDebugDataRefactor
...
Removing location in favor of debugData in yul AST structures
2021-05-04 17:05:40 +02:00
Djordje Mijovic
e404b6e7a6
Refactoring yul source locations.
2021-05-04 16:05:23 +02:00
chriseth
62355aead3
Respect memory model for revert.
2021-05-03 18:23:41 +02:00
chriseth
d721bbe504
Respect memory model in forwarding revert inside catch.
2021-05-03 12:19:46 +02:00
chriseth
79acebe46f
Allocate for returning runtime code.
2021-04-29 16:40:51 +02:00
chriseth
b06a09fd82
Fix forwarding revert.
2021-04-29 14:58:10 +02:00
Alex Beregszaszi
9d5b4150d4
Throw StackTooDeep earlier (with sourcelocatiom) for inline assembly issues
2021-04-26 20:11:50 +01:00
chriseth
659da4bdc7
Merge pull request #11047 from ethereum/bytesToBytesNNConversion
...
Bytes to bytesNN conversion
2021-04-26 11:51:41 +02:00
Alex Beregszaszi
e39433198d
Remove the usage of boost::noncopyable
...
Prior to this half of the codebase used explicit deleted copy constructors, the others used boost::noncopyable.
2021-04-23 14:57:01 +01:00
Djordje Mijovic
cbb7e53b22
Activating bytes to bytesNN for legacy codegen by calling yul util function.
2021-04-23 13:30:19 +02:00