Commit Graph

71 Commits

Author SHA1 Message Date
chriseth
fd1662d1c4 Warn about using loose inline assembly features as experimental 0.5.0 feature. 2018-03-06 17:45:34 +01:00
Alex Beregszaszi
5a54cd5c70 Only warn for shift instructions if not using constantinople 2018-03-01 17:19:35 +01:00
chriseth
dc317a44e0 Provide EVM version to assembly analysis. 2018-03-01 17:19:35 +01:00
Alex Beregszaszi
afa4a48e37 Remove ROL/ROR as they are not part of EIP145 anymore 2018-02-27 13:42:41 +01:00
Alex Beregszaszi
468d0f6199 Warn on using shift instructions 2018-02-27 13:42:31 +01:00
Alex Beregszaszi
42856e0f53 Add assertion for boolean literals in Julia-mode 2018-02-22 01:02:23 +01:00
Alex Beregszaszi
ae02bb5aad Raise error on oversized number literals in assembly 2018-02-22 01:02:19 +01:00
chriseth
124190336b Split inline assembly into loose and strict flavours. 2018-01-06 01:23:38 +00:00
chriseth
54b6739962 Separate expression and statement. 2017-12-13 12:28:15 +01:00
Alex Beregszaszi
793537e089 Suggest the "if" statement too instead of jumps 2017-12-05 19:27:12 +00:00
Alex Beregszaszi
bc875f6b9c Warn for assembly labels too 2017-12-05 19:27:12 +00:00
Alex Beregszaszi
745eefa36f Split Instruction and FunctionalInstruction in Julia 2017-12-05 14:52:11 +00:00
chriseth
43bb915454 Rename arguments to paramaters and returns to returnVariables. 2017-12-01 16:18:01 +01:00
chriseth
6dbc34e16e If statement for Iulia / inline assembly. 2017-11-22 16:25:24 +01:00
Alex Beregszaszi
3b813ed295 Support multiple assignment in inline assembly 2017-09-20 11:16:23 +02:00
Alex Beregszaszi
8d90e6fc4e Rename expectedItems to numVariables 2017-07-13 15:18:40 +02:00
Alex Beregszaszi
cee93d946d Support parsing let statements without a value 2017-07-13 15:18:18 +02:00
Alex Beregszaszi
d4fecc7b11 Warn on JUMP/JUMPI in inline assembly 2017-06-30 20:47:14 +01:00
Alex Beregszaszi
d5f8ce90c7 Merge interface/Exceptions and interface/Utils 2017-06-22 11:25:07 +01:00
chriseth
78b49db779 Helper to count the number of variables in a scope. 2017-06-16 10:56:21 +01:00
chriseth
49b1112117 For loops analysis. 2017-06-16 10:56:21 +01:00
Alex Beregszaszi
47925bc14e Parse for statement in assembly parser / printer 2017-06-16 10:56:21 +01:00
Dimitry
c20cdd0a05 add new opcode instructions to the parser
STATICCALL        0xfa  6 inputs  (gas address mem1 mem2 mem3 mem4)
2017-06-14 18:18:12 +02:00
Alex Beregszaszi
a921bd0ae4 Display user friendly instruction name 2017-06-14 16:00:39 +02:00
Alex Beregszaszi
494b9dbfaa Issue warning for using CREATE2 in inline assembly 2017-06-14 16:00:39 +02:00
chriseth
43cfab70d0 Merge pull request #2389 from ethereum/moveLabelIDs
Move LabelIDs to generation phase.
2017-06-14 14:12:33 +02:00
chriseth
154002cda0 Move "active variable" to analysis phase. 2017-06-14 00:10:33 +02:00
Alex Beregszaszi
05af6c9255
Warn if returndatasize/returndatacopy is used 2017-06-13 16:57:07 +02:00
chriseth
b32d5e4cc0 Visitor bugfix. 2017-06-08 15:52:45 +02:00
chriseth
fefd3b866d Introduce machine-dependent stack adjustment. 2017-06-08 15:52:45 +02:00
chriseth
97cc968a13 Initial EVM1.5 assembly implementation. 2017-06-08 15:52:44 +02:00
chriseth
d5408f78ad Add comma. 2017-06-01 15:56:49 +02:00
chriseth
40f3e4413b Improved error message. 2017-06-01 15:31:07 +02:00
chriseth
05004253ba Refactor to use expectExpression in analyzer. 2017-06-01 14:28:39 +02:00
Rhett Aultman
89b60ffbd4 Refactor error reporting
This commit introduces ErrorReporter, a utility class which consolidates
all of the error logging functionality into a common set of functions.
It also replaces all direct interactions with an ErrorList with calls to
an ErrorReporter.

This commit resolves issue #2209
2017-05-30 07:28:31 -07:00
chriseth
4af55c78eb Introduce virtual blocks for function arguments. 2017-05-29 16:18:16 +02:00
Alex Beregszaszi
2a50e869d0 Move builtin type list to the top 2017-05-26 20:43:28 +01:00
Alex Beregszaszi
efadf7e41f Change error message for invalid type 2017-05-26 20:42:17 +01:00
Alex Beregszaszi
8fe79fe706 Introduce Julia mode in AsmAnalyzer 2017-05-26 20:39:30 +01:00
Alex Beregszaszi
3b75c5b45f Validate that only basic types are used in Julia 2017-05-26 20:39:10 +01:00
Alex Beregszaszi
dda497ca02 Move constructor to AsmAnalyzer header 2017-05-26 20:39:10 +01:00
chriseth
261731f7ee Adapt EVM codegen to new namespace. 2017-05-26 15:08:27 +02:00
Alex Beregszaszi
ba8a79c600 Do not stop on first switch error 2017-05-26 03:20:31 +01:00
Alex Beregszaszi
66eab1caf6 Change switch case string to Literal 2017-05-26 03:20:10 +01:00
Alex Beregszaszi
b5080860d5 Implement switch statement in the assembly parser/printer 2017-05-26 03:16:09 +01:00
Alex Beregszaszi
74d41ad25f Fix scope assert in AsmAnalyzer 2017-05-24 11:58:49 +01:00
Alex Beregszaszi
187fa50751 Rename FunctionalAssignment to Assignment 2017-05-24 01:48:53 +01:00
Alex Beregszaszi
f15d6ea45f Rename Assignment to StackAssignment 2017-05-24 01:07:07 +01:00
Alex Beregszaszi
3451a30e5c Display actual error message and not assertion in analysis 2017-05-22 18:45:34 +01:00
Alex Beregszaszi
cb4966046d Enable a single right hand item on let 2017-05-22 18:45:34 +01:00