chriseth
f47e6e90fb
Disallow comparisons between some types.
2017-06-26 16:30:36 +02:00
Alex Beregszaszi
751ba701bc
Merge pull request #2450 from ethereum/addressstring
...
Fix for strings treated as addresses.
2017-06-26 12:18:33 +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
c328ab411b
Merge pull request #2442 from ethereum/remove-why3
...
Remove Why3 generator
2017-06-26 09:20:23 +02:00
chriseth
d94a12a34c
Reformat.
2017-06-26 09:19:11 +02:00
chriseth
0aaa6d876d
Use for loop for assembly memcopy.
2017-06-26 09:18:14 +02:00
chriseth
f879489291
Merge pull request #2449 from federicobond/warn-bytesxx-decimal
...
Warn if decimal literals are used in a bytesXX context
2017-06-26 09:13:41 +02:00
Alex Beregszaszi
555dc4f46f
Remove Why3 generator
2017-06-25 12:26:16 +01:00
Federico Bond
7a3ea61ffd
Warn if decimal literals are used in a bytesXX context
...
Fixes #2349
2017-06-23 23:21:19 -03:00
chriseth
5a75581f66
Disallow invoking the same modifier multiple times.
2017-06-23 20:12:22 +02:00
chriseth
64067975e4
Review suggestions.
2017-06-23 19:29:11 +02:00
chriseth
831ed08387
Change invalid opcode to revert for input validation.
2017-06-23 19:29:11 +02:00
chriseth
1f7697eee3
Merge pull request #2448 from federicobond/constant-addresses
...
Fix address literals not being treated as compile-time constants
2017-06-23 11:56:24 +02:00
chriseth
50e8a887a4
Merge pull request #2443 from ethereum/julia-asm-size
...
Support appendAssemblySize() in AbstractAssembly
2017-06-23 11:30:02 +02:00
Federico Bond
0fb1621a98
Fix address literals not being treated as compile-time constants
...
The early return implemented for address literals in TypeChecker was
preventing the isPure annotation from getting applied. Closes #2441
2017-06-23 11:19:57 +02:00
Alex Beregszaszi
f9144ae5a4
Merge pull request #2444 from ethereum/parser-scanner
...
Avoid including Scanner.h in ParserBase.h
2017-06-23 00:14:18 +01:00
Alex Beregszaszi
5cf2332d6d
Support appendAssemblySize() in AbstractAssembly
2017-06-23 00:09:35 +01:00
Alex Beregszaszi
79ed529b3f
Merge pull request #2452 from ethereum/fixPassingEmptyString
...
Fix passing empty string
2017-06-22 22:33:06 +01:00
Alex Beregszaszi
007ffe9430
Avoid including Scanner.h in ParserBase.h
2017-06-22 22:22:19 +01:00
chriseth
bffb8c404f
Merge pull request #2408 from federicobond/constant-parameters
...
Fix segmentation fault with constant function parameters
2017-06-22 18:46:15 +02:00
chriseth
83ea7793d9
Fix ABI encoding of empty string literal.
2017-06-22 17:55:06 +02:00
chriseth
f340ff8764
Fix strings interpreted as addresses.
2017-06-22 16:48:44 +02:00
Alex Beregszaszi
f823952d9f
Merge pull request #2404 from ethereum/methodidentifiers
...
Clean up method identifiers handling in CLI/CompilerStack
2017-06-22 13:00:19 +01:00
Alex Beregszaszi
d5f8ce90c7
Merge interface/Exceptions and interface/Utils
2017-06-22 11:25:07 +01:00
Alex Beregszaszi
ba7d698ee6
Make compiler.contractDefinition private
2017-06-22 11:13:06 +01:00
Alex Beregszaszi
b99e4bc68b
Rework functionHashes into methodIdentifiers
2017-06-22 11:13:06 +01:00
Alex Beregszaszi
63395b31af
Use compilerStack.functionHashes in StandardCompiler
2017-06-22 11:13:06 +01:00
Federico Bond
0f8ad1d68f
Fix segmentation fault with constant function parameters
2017-06-21 22:46:27 -03:00
chriseth
622703c0c0
Merge pull request #2409 from federicobond/trailing-commas-2
...
Improve error reporting of trailing commas
2017-06-19 12:01:19 +02:00
chriseth
b3a7b5a145
Merge pull request #2416 from federicobond/multiple-specifiers
...
Display error if payable or constant is specified multiple times
2017-06-19 12:00:04 +02:00
chriseth
0c75afb2c1
Merge pull request #2225 from ethereum/julia-for
...
Implement for statement in assembly parser / printer / code generator
2017-06-19 11:53:22 +02:00
Federico Bond
d170ceaf3d
Display error if payable or constant is specified multiple times
2017-06-17 12:21:46 -03:00
chriseth
868b5ad3aa
Split block code generation into main and finalize.
2017-06-16 10:56:21 +01:00
chriseth
78b49db779
Helper to count the number of variables in a scope.
2017-06-16 10:56:21 +01:00
chriseth
8e5c4bf21d
Add include file to forward-declare inline assembly structs.
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
Federico Bond
0eaae03bbf
Try to recover from parser errors where possible
2017-06-15 21:14:05 -03:00
Federico Bond
60bfae75e5
Improve error reporting of trailing commas
2017-06-15 13:10:08 -03:00
chriseth
9084d48750
Merge pull request #2382 from ruchevits/combined-json-hashes
...
Allow including hashes of method signatures in --combined-json output
2017-06-15 10:10:18 +02:00
Alex Beregszaszi
c08c4b8b6f
Move subroutine helpers from CompilerContext to Assembly
2017-06-14 21:21:26 +01:00
Alex Beregszaszi
398099f50e
Remove obsolete errorTag()
2017-06-14 21:21:26 +01:00
Alex Beregszaszi
42b61171d9
Merge pull request #2192 from winsvega/develop
...
add STATICCALL instruction
2017-06-14 21:03:32 +01:00
chriseth
f008ddf836
Merge pull request #2381 from ethereum/fixcrash
...
Fix a crash about a non-callable expression.
2017-06-14 18:35:38 +02:00
chriseth
fd5bf16101
Merge pull request #2384 from ethereum/parseFunctionalInstructions
...
Enforce function arguments when parsing functional instructions.
2017-06-14 18:35:16 +02: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
chriseth
29e7ad3d7b
Silence compiler warning.
2017-06-14 17:39:36 +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
1ae0e082b3
Merge pull request #2392 from federicobond/disallow-trailing-commas
...
Forbid trailing commas in named arguments
2017-06-14 15:31:40 +02:00
chriseth
1b1f35762e
Enforce function arguments when parsing functional instructions.
2017-06-14 14:51:47 +02:00
chriseth
21aafaa704
Merge pull request #2331 from ethereum/ASTDocumentationEntry
...
documentation field added to ContractDefinition-Node
2017-06-14 14:32:27 +02:00
chriseth
e232a105f0
Merge pull request #2327 from ethereum/assembler-object
...
Return assembler object in AssemblyStack
2017-06-14 14:28:06 +02:00
chriseth
07cc84fade
Fix a crash about a non-callable expression.
2017-06-14 14:26:20 +02:00
chriseth
43cfab70d0
Merge pull request #2389 from ethereum/moveLabelIDs
...
Move LabelIDs to generation phase.
2017-06-14 14:12:33 +02:00
Federico Bond
fd8365df08
Forbid trailing commas in named arguments
2017-06-14 00:15:27 -03:00
chriseth
154002cda0
Move "active variable" to analysis phase.
2017-06-14 00:10:33 +02:00
chriseth
1bf717fd65
Remove struct constructor.
2017-06-14 00:03:08 +02:00
chriseth
c554145f4d
Move stack height to generation phase.
2017-06-14 00:01:06 +02:00
chriseth
45d96959f8
Move LabelIDs to generation phase.
2017-06-13 22:01:15 +02:00
Edward Ruchevits
5f7bca94e5
Reverted functionHashes output to use method signature as keys
2017-06-13 18:04:33 +01:00
Edward Ruchevits
2e816967d3
Allow including hashes of method signatures in --combined-json output
2017-06-13 17:03:17 +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
Alex Beregszaszi
05af6c9255
Warn if returndatasize/returndatacopy is used
2017-06-13 16:57:07 +02:00
Alex Beregszaszi
ca92bda886
Supply text representation of assembly
2017-06-09 16:40:14 +02:00
Alex Beregszaszi
f0d213e6b5
Introduce MachineAssemblyObject
2017-06-09 16:40:14 +02:00
Alex Beregszaszi
fe3b46554a
Merge pull request #2362 from ethereum/lowercase_instructions
...
Use lowercase when reporting instruction error.
2017-06-09 14:49:59 +01:00
chriseth
bf2b5c746a
Use lowercase when reporting instruction error.
2017-06-09 15:17:29 +02:00
Alex Beregszaszi
8768080a02
Remove excess includes
2017-06-09 12:47:05 +01:00
Alex Beregszaszi
1da3af161f
Simplify CodeGenerator by remove seldom used case
2017-06-09 12:45:56 +01:00
Alex Beregszaszi
114c157b04
Remove obsolete AsmStack
2017-06-09 11:43:41 +01:00
Alex Beregszaszi
ae6251effd
Use inline assembly directly and not via AsmStack
2017-06-09 11:43:40 +01:00
chriseth
6b3e7f79cf
Comments and consistent variable names.
2017-06-09 10:45:36 +01:00
chriseth
308a726ad1
Fix: Copy resolver.
2017-06-08 15:52:45 +02:00
chriseth
b32d5e4cc0
Visitor bugfix.
2017-06-08 15:52:45 +02:00
chriseth
ef3d5874fe
Remove error reporter from code generation phase.
2017-06-08 15:52:45 +02:00
chriseth
19f707aeaa
Some more comments.
2017-06-08 15:52:45 +02:00
chriseth
0185f3cbf6
Correct stack height adjustment after returnsub.
2017-06-08 15:52:45 +02:00
chriseth
ba5ee71b7f
Generate only single error in inline assembly.
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
Alex Beregszaszi
aa310f9fec
Refactor AssemblyStack
2017-06-07 14:42:22 +01:00
Alex Beregszaszi
502304f30b
Add analyze(block) to AssemblyStack
2017-06-07 14:42:22 +01:00
Alex Beregszaszi
937c208320
Reset error list in parseAndAnalyze
2017-06-07 14:41:44 +01: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
b4ae188a0f
Merge pull request #2336 from ethereum/expectExpression
...
Refactor to use expectExpression in analyzer.
2017-06-01 15:57:28 +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
Alex Beregszaszi
998ca552b8
Fix state after CompilerStack.reset()
2017-06-01 13:44:08 +01:00
chriseth
05004253ba
Refactor to use expectExpression in analyzer.
2017-06-01 14:28:39 +02:00
Alex Beregszaszi
c212d7c2e6
Remove unused functions from CompilerStack
2017-06-01 13:28:05 +01:00
djudjuu
597bf8a43d
fix Literalprint
2017-05-30 19:53:32 +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
2e7190534b
documentation field added to ContractDefinition-Node
2017-05-30 18:52:43 +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
75e4a2be1b
Alias sha3 to keccak256 in inline assembly
2017-05-30 10:54:29 +01:00
Alex Beregszaszi
0c8beac357
Rename the SHA3 assembly instruction to KECCAK256
2017-05-30 10:54:29 +01:00
chriseth
8b29cc5535
Merge pull request #2319 from ethereum/virtualBlocks
...
Introduce virtual blocks for function arguments.
2017-05-29 16:52:51 +02:00
chriseth
4af55c78eb
Introduce virtual blocks for function arguments.
2017-05-29 16:18:16 +02:00