Commit Graph

809 Commits

Author SHA1 Message Date
Alex Beregszaszi
600e3ad240 Support shl/shr in LLL 2017-06-14 14:08:28 +01:00
chriseth
21aafaa704 Merge pull request #2331 from ethereum/ASTDocumentationEntry
documentation field added to ContractDefinition-Node
2017-06-14 14:32:27 +02:00
benjaminion
3299c479b6 LLL: fix handling of "sha3" expression
When PR #2317 changed the EVM opcode from SHA3 to KECCAK256 it broke the `(sha3 loc len)` expression in LLL. This PR fixes things while allowing existing code using the sha3 expression (such as the ENS registrar) to continue to compile.  I.e. both `(keccak256 loc len)` and `(sha3 loc len)` may be used, and the existing related sha3 macros continue to work.

Three end-to-end test cases have been added for kekkac256 and sha3.
2017-06-13 22:20:14 +01:00
Yoichi Hirai
8775e77305
Add a warning about a varialbe of the name of an instruction 2017-06-13 16:57:08 +02:00
Yoichi Hirai
a7241df4b7
Add a failing test as suggested in
https://github.com/ethereum/solidity/pull/2275#discussion_r121438333
2017-06-13 16:57:08 +02:00
Yoichi Hirai
a0f8c94dad
Add a test about checking a warning 2017-06-13 16:57:08 +02:00
Yoichi Hirai
464dea2459
test: Add different styles of returndatacopy and returndatasize 2017-06-13 16:57:08 +02:00
Yoichi Hirai
0b22154a75
libevmasm: add RETURNDATACOPY and RETURNDATASIZE 2017-06-13 16:57:02 +02:00
Yoichi Hirai
c4f0608b68
More informative test 2017-06-13 12:28:03 +02:00
Yoichi Hirai
0909ffc26e
Fix the expectation about the parse 2017-06-13 12:21:28 +02:00
Yoichi Hirai
a03913427f
Add an end-to-end test about LLL macro with zero arguments 2017-06-12 15:16:08 +02:00
Yoichi Hirai
b86b084bc6
Add a test that fails about an LLL macro with no arguments 2017-06-12 15:16:03 +02:00
chriseth
bf2b5c746a Use lowercase when reporting instruction error. 2017-06-09 15:17:29 +02:00
Alex Beregszaszi
80227af08a Add test for two functions calling eachother 2017-06-09 10:46:13 +01:00
chriseth
b098b363b5 Test for embedded functions. 2017-06-08 15:52:45 +02:00
chriseth
b75c7b5775 Move inline assembly to new abstraction and test both backends. 2017-06-08 15:52:45 +02:00
chriseth
64ddb176bb Test for accessing outer inline assembly scope. 2017-06-08 15:52:45 +02:00
chriseth
97cc968a13 Initial EVM1.5 assembly implementation. 2017-06-08 15:52:44 +02:00
djudjuu
83f0e00900 tests for non-legacy mode 2017-06-07 15:52:44 +02:00
djudjuu
ebdebc7c12 new test case and indentation fix 2017-06-06 15:47:30 +02:00
chriseth
1fba984966 Merge pull request #2332 from ethereum/fixLiteralPrint
fix Literalprint
2017-06-06 15:09:48 +02:00
djudjuu
62eafdd010 adjusted testcase and renaming 2017-06-06 13:26:23 +02:00
chriseth
d4a57d81ba Merge pull request #2317 from ethereum/keccak256
Use keccak256 in tests and replace the SHA3 instruction in assembly
2017-05-30 19:34:28 +02:00
djudjuu
b011ddfae3 adjusted test-cases 2017-05-30 19:25:54 +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
Alex Beregszaszi
dcb7c51920 Add inline assembly test for sha3/keccak256 2017-05-30 13:57:44 +01:00
Alex Beregszaszi
ff33297786 Add test for sha3() == keccak256() 2017-05-30 12:33:04 +01:00
Alex Beregszaszi
9e1c509cf5 Use keccak256() in tests (and not sha3()) 2017-05-30 12:33:04 +01:00
Alex Beregszaszi
0c8beac357 Rename the SHA3 assembly instruction to KECCAK256 2017-05-30 10:54:29 +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
98c9051174 Fix expected message in test case 2017-05-26 11:16:12 +01:00
chriseth
ec676ba9f2 Merge pull request #2224 from ethereum/julia-switch
Implement switch statement in the assembly parser/printer
2017-05-26 11:24:38 +02:00
Alex Beregszaszi
05fcf1989c Better error messages for invalid switch cases 2017-05-26 03:20:34 +01:00
Alex Beregszaszi
c64bd33784 Disallow instructions as a switch expression 2017-05-26 03:20:34 +01:00
Alex Beregszaszi
0c5c1ca911 Add tests 2017-05-26 03:20:34 +01:00
Alex Beregszaszi
7600a814fa Enable the analyzer for Julia tests 2017-05-25 01:28:47 +01:00
Alex Beregszaszi
338202ea96 Uniform error messages 2017-05-24 13:35:52 +01:00
Alex Beregszaszi
130f7419fb Add tests 2017-05-24 13:35:52 +01:00
Alex Beregszaszi
4612c7681c Validate metadata JSON too 2017-05-24 12:24:00 +01:00
Alex Beregszaszi
804e99c633 Split out metadata test into its own file 2017-05-24 12:24:00 +01:00
Alex Beregszaszi
fb46268982 Add tests 2017-05-23 10:24:19 +01:00
chriseth
74d2e7311a Merge pull request #2265 from roadriverrail/inline_asm_unused_warning
Analyze InlineAssembly for variable use
2017-05-22 16:34:29 +02:00
chriseth
8eead553af Merge pull request #1810 from ethereum/compactJson
Compact format for AST-Json.
2017-05-22 14:33:46 +02:00
Rhett Aultman
621c3fa22f Analyze InlineAssembly for variable use
The unused variable checker in StaticAnalyzer did not conssider
InlineAssembly objects.  This commit introduces that missing feature.
2017-05-21 15:23:05 -07:00
chriseth
e2b21e1c96 Refactor to abstract assembly to JULIA. 2017-05-19 19:20:28 +02:00
chriseth
41ee2cefbb Merge pull request #2282 from ethereum/fuzzer
Display the source on which the 'fuzzer' failed
2017-05-19 18:32:50 +02:00
chriseth
6d1252f807 Put filename in quotes. 2017-05-19 17:58:07 +02:00
chriseth
56424bb202 Merge pull request #2262 from ethereum/interface-cleanup
Cleanup the external interfaces (ABI and Natspec)
2017-05-19 17:55:33 +02:00