42 Commits
Author SHA1 Message Date
chriseth a5fddc9c57 Debugging info in CompilerContext. 2017-10-04 13:18:33 +02:00
chriseth 2530223ab5 More verbose errors for generated assembly. 2017-09-22 15:18:32 +02:00
chriseth 73771f5bb2 Named assembly labels. 2017-09-15 20:44:49 +01:00
chriseth ee6f56d641 Remove unused magic global feature. 2017-08-14 13:11:41 +01:00
chriseth 517a366404 Merge pull request #2652 from ethereum/fixMultiModifier
Re-allow multiple modifiers per function.
2017-07-27 14:20:18 +02:00
chriseth 7c7c2baa82 Re-allow multiple modifiers per function. 2017-07-27 13:45:39 +02:00
Alex Beregszaszi 89fadd6935 Merge pull request #2645 from ethereum/asserts
Use solAssert where possible
2017-07-27 11:12:30 +01:00
Alex Beregszaszi af57879187 Report location on stack too deep if possible 2017-07-26 22:56:55 +01:00
Alex Beregszaszi 8098030986 Use solAssert instead of boost throw where possible 2017-07-26 22:23:21 +01:00
Alex Beregszaszi a0b0df2d98 Merge pull request #2460 from ethereum/disallowMultiModifier
Disallow invoking the same modifier multiple times.
2017-06-26 11:51:12 +01:00
chriseth 5a75581f66 Disallow invoking the same modifier multiple times. 2017-06-23 20:12:22 +02:00
chriseth 831ed08387 Change invalid opcode to revert for input validation. 2017-06-23 19:29:11 +02:00
Alex Beregszaszi 007ffe9430 Avoid including Scanner.h in ParserBase.h 2017-06-22 22:22:19 +01:00
Alex Beregszaszi ae6251effd Use inline assembly directly and not via AsmStack 2017-06-09 11:43:40 +01:00
chriseth 97cc968a13 Initial EVM1.5 assembly implementation. 2017-06-08 15:52:44 +02:00
chriseth 261731f7ee Adapt EVM codegen to new namespace. 2017-05-26 15:08:27 +02:00
chriseth e2b21e1c96 Refactor to abstract assembly to JULIA. 2017-05-19 19:20:28 +02:00
chriseth 34717838da Review comments. 2017-04-25 16:49:03 +02:00
chriseth e0849f2f3b Split external identifier access into resolving and code generation. 2017-04-25 16:49:03 +02:00
chriseth d9fbb83861 Allow inserting low-level functions without calling them. 2017-01-26 16:39:07 +01:00
chriseth 390bebaaf9 Split line. 2017-01-26 16:39:07 +01:00
Valentin Wüstholz 5b7cc018f0 Address feedback from code review. 2017-01-26 16:39:07 +01:00
Valentin Wüstholz 9bcbd93ac5 Change translation of implicit throws (issue #1589).
This adds a new invalid instruction that is used for encoding
implicit throws that are emitted by the compiler. This makes it
possible to distinguish such runtime errors from user-provided,
explicit throws.
2017-01-26 16:39:07 +01:00
chriseth 7e6f1b3f00 Use int arithmetics for stack adjustment. 2017-01-24 12:07:09 +01:00
chriseth b60623521f Move some util functions to low-level functions. 2017-01-24 12:06:40 +01:00
chriseth d0e8d340a5 Low level named functions for CompilerContext. 2017-01-24 12:06:40 +01:00
chriseth 4184525d4a Fix inline assembly. 2016-12-11 17:57:15 +01:00
Alex Beregszaszi efd7b4bfbb Reset stack height after inline assembly block 2016-12-11 17:57:15 +01:00
Alex Beregszaszi 4a11200a27 Better assert message for appendInlineAssembnly 2016-12-11 17:57:15 +01:00
chriseth 1e35526eb6 Fix tests. 2016-12-01 16:03:59 +01:00
chriseth 91ecc4533d Add swarm hash to the end of the bytecode. 2016-12-01 16:03:59 +01:00
chriseth 5789eaa78d Metadata stamp. 2016-12-01 16:03:59 +01:00
VoR0220 3f9f725737 Fix licensing headers
Signed-off-by: VoR0220 <rj@erisindustries.com>
2016-11-23 12:22:33 +01:00
chriseth e51f852504 Converted sub assembly to smart pointer. 2016-11-16 14:37:18 +01:00
chriseth e543bd34c0 Stored combined creation and runtime tags.
Includes a change to Assembly to allow tags from sub-assemblies to be
used.

Sorry, this get a bit bigger than I thought.
2016-11-16 14:37:18 +01:00
chriseth 77f4424589 Provide inline assembly to the code generator. (#840)
* Directly usable inline assembly.

* Add missing header.
2016-08-16 16:27:20 +02:00
chriseth 7ea3d950d7 Allow calling internal functions of libraries.
Internal functions of libraries can be called as if the library were a
base contract of the calling contract. As the calling convention for
internal functions is to not create a new call context, the code of
these functions will be pulled into the context of the caller,
duplicating their code. This might pull in code of further internal or
even private functions.

The use case for such functions is to allow libraries which can operate
on memory types such that these types can also be modified in place.
2016-05-03 22:41:18 +02:00
chriseth 652bc583c0 Remove non-determinism in missing code queue. 2016-05-03 01:14:26 +02:00
Dimitry d2cee6f9c6 reduce unnecessary solidity:: namespace 2016-04-04 15:41:35 +04:00
Dimitry 858c41260d rename namespace for instruction.h/cpp in libevmasm 2016-04-02 15:56:43 +03:00
chriseth b47d593252 Do not store elements of a contract by AST node type. 2015-11-26 15:37:55 +01:00
chriseth e3dffb611f File reorganisation. 2015-10-21 00:46:01 +02:00