Commit Graph

102 Commits

Author SHA1 Message Date
Christian Parpart
b1dd0d0d02 Properly compute source mappings for immutables. 2021-10-12 17:56:17 +02:00
Kamil Śliwak
f7c4ed849d Handle DebugInfoSelection in the code printing Yul and EVM assembly 2021-10-11 20:34:48 +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
50ce1f5ddd Disambiguate bytesRequired 2021-09-22 11:22:07 +02:00
chriseth
2741175507 Use function debug data. 2021-09-22 11:11:51 +02:00
Alex Beregszaszi
55c64e3ca1 Always explicitly initialise Json objects 2021-09-21 10:49:13 +01:00
Alexander Arlt
7fcf888fbf Remove unused AssemblyItemType::PushString. 2021-09-13 18:59:18 +02:00
chriseth
55bb53c9de
Merge pull request #11912 from ethereum/refactorSourcePrinting
Refactor source printing
2021-09-08 14:07:07 +02:00
Kamil Śliwak
a7612ce873 Move the function for creating code snippets used next to source locations in assembly to liblangutil 2021-09-07 17:18:22 +02:00
chriseth
3fe52d9869 Run the optimizer only once. 2021-09-07 15:06:31 +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
chriseth
f9c94d7c42 Note function entry points. 2021-05-04 17:15:13 +02:00
chriseth
e2d8005737 Add verbatim builtin. 2021-04-26 19:56:44 +02:00
Daniel Kirchner
cb74a45fd6 Add inlining for old optimizer. 2021-02-09 19:08:58 +01:00
Alex Beregszaszi
97173247c0 Improve the Error class with a constructor for secondaryLocation
Remove occurances of Error construction using the boost helpers.
2020-12-17 13:50:04 +00:00
chriseth
806453aca9 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-08 21:00:09 +01:00
Alex Beregszaszi
7e88ba8da0 Enable the -Wconversion warning 2020-12-08 16:45:24 +00:00
chriseth
e93a84ccd4 Merge remote-tracking branch 'origin/develop' into HEAD 2020-10-28 18:19:31 +01:00
Alex Beregszaszi
e5faea5f35 Make use of pushInstruction() helper in libevmasm 2020-10-28 10:11:54 +00:00
Daniel Kirchner
68667f0e84 Remove POPs from ASSIGNIMMUTABLE generated bytecode, if possible. 2020-10-15 18:14:41 +02:00
Daniel Kirchner
0dca223b45 Add another argument to setimmutable and the AssignImmutable opcode, allowing to modify code at any memory offset. 2020-10-15 18:14:41 +02:00
a3d4
5b54cfbed3 Report an error if immutables not assigned 2020-07-23 16:38:54 +02:00
Djordje Mijovic
6f97e6153c [yul] Adding support for accessing subobjects via .
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2020-07-21 17:56:11 +02:00
chriseth
1c9179683e
Merge pull request #9433 from ethereum/reportAllStackErrors
Report all stack errors
2020-07-20 15:44:51 +02:00
Sachin Grover
b7adb2aa42 Add SPDX license identifier if not present already in source file
Fixes: #9220
2020-07-17 20:24:12 +05:30
Daniel Kirchner
92cd1ddb7d Add markAsInvalid to the various assemblies. 2020-07-16 17:38:13 +02:00
Djordje Mijovic
e4e3f49844 Fixing signedness conversion warnings in libevmasm
Co-authored-by: Harikrishnan Mulackal <webmail.hari@gmail.com>
2020-06-03 13:25:43 +02:00
a3d4
a499ef16fa Fix spelling errors 2020-05-25 02:54:37 +02:00
Daniel Kirchner
81652686be Debug information for immutable references. 2020-04-06 10:56:42 +02:00
Daniel Kirchner
04d8ad2ae1 Legacy codegeneration for immutable state variables. 2020-03-24 16:45:25 +01:00
Djordje Mijovic
18dea6b69c Assembly: Added missing source field to legacy assembly json output to complete the source reference 2020-02-18 10:22:34 +01:00
alex
e4b18e85e6 Replaced SourceLocation::isEmpty() with isValid() and hasText().
The function SourceLocation::isEmpty() had somewhat dual role.
Sometimes it indicates that the SourceLocation is invalid.
Sometimes it means that there is no corresponding source text.

Hence the proposal is to replace it with two functions, isValid() and hasText().

I also removed Scanner::sourceAt(). (Do we have a rule of thumb to remove unused code?)

Since hasText() checks that start and end are valid indices for source, I adjusted a couple of tests to avoid empty source strings.
2020-02-03 08:04:21 +01:00
Alex Beregszaszi
9c19b93c37 Remove LLL specific features from libevmasm 2020-01-15 13:27:51 +00:00
Christian Parpart
6b23412fae C++ namespace cleanup (except tests). 2020-01-07 15:51:50 +01:00
chriseth
b0db64ff5b Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-26 16:19:35 +01:00
Alex Beregszaszi
991fbd2956 Replace uses of BOOST_THROW_EXCEPTION with assertThrow
Where appropriate.
2019-11-26 13:07:42 +01:00
chriseth
b6ad8f06e7
Merge pull request #7782 from ethereum/develop
Merge develop into develop_060
2019-11-25 17:58:09 +01:00
Alex Beregszaszi
ae428dc2a0 Clarify some notes in LinkerObject and assert that linkReferences are always correct 2019-11-22 16:48:23 +00:00
Mathias Baumann
37d6fd9e21 Fix case-sensitivity depending on platform 2019-11-05 17:25:08 +01:00
chriseth
cb2096c82a Add modifier depth to source mappings. 2019-11-05 16:50:38 +01:00
Mathias Baumann
6705420325 Fix case-sensitivity depending on platform 2019-11-04 17:00:48 +01:00
Alex Beregszaszi
59df7dbc1b Add upper bound assert for PushSub/PushSubSize 2019-09-03 16:40:34 +01:00
chriseth
f2cee9ec0c Include cleanup. 2019-03-28 14:32:48 +01:00
chriseth
7f6f958246 Fix: Also replace tags in the list of tags referenced from outside. 2019-02-20 15:06:23 +01:00
Alex Beregszaszi
ae1cd252b0 Take only Assembly instance as an input to ConstantOptimiser 2019-01-31 16:02:29 +00:00
Mathias Baumann
cb935fe908 Use curly-brackets initialization 2018-12-10 19:03:47 +01:00
Mathias Baumann
2f6dc2e773 Replace push_back with emplace_back where it makes sense 2018-12-10 19:02:39 +01:00