aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/codegen
Commit message (Expand)AuthorAgeFilesLines
* Code, Changelog, ReleaseChecklist: Fix typos.Cryptomental2018-07-113-5/+5
* Fix allocation of byte arrays.chriseth2018-07-051-1/+1
* Merge pull request #4224 from ethereum/revert_wrong_calldatachriseth2018-07-023-48/+34
|\
| * Revert if calldata is too short or points out of boundsLeonardo Alt2018-06-263-48/+34
* | Save double encode call for sha3.chriseth2018-06-251-8/+16
* | Bare functions take single bytes argument.chriseth2018-06-251-56/+15
* | Single bytes argument.chriseth2018-06-251-11/+28
|/
* Change commentsAlex Beregszaszi2018-06-143-5/+5
* Merge pull request #4272 from ethereum/assert-break-continuechriseth2018-06-131-4/+4
|\
| * Fail if break/continue statements are used outside for/while loops in Contrac...Alex Beregszaszi2018-06-121-4/+4
* | Properly pad data from calldata.chriseth2018-06-131-6/+11
* | Extend explanatory remark and argue using bitwise operations instead of round...Daniel Kirchner2018-06-121-6/+14
* | Use proper SAR for signed right shifts and emulate on pre-constantinople.Daniel Kirchner2018-06-121-4/+21
|/
* Fixes assembly bug and adds tests to cover it.Erik Kundt2018-05-301-5/+4
* Adds syntax tests, documentation and changelog entry.Erik Kundt2018-05-302-2/+2
* Improves assembly and adds more tests.Erik Kundt2018-05-302-32/+14
* Implements pop() for byte arrays.Erik Kundt2018-05-291-10/+65
* Implements pop() for value type arrays.bitshift2018-05-293-1/+64
* Fix continue inside do-while.Daniel Kirchner2018-05-171-12/+16
* Fix revert with reason coming from a string variableAlex Beregszaszi2018-05-092-1/+4
* fixed grammar in error in CompilerUtils.cpp line 399, 'less variables.' shoul...njwest2018-05-071-3/+3
* Change bytes to unsigned in FixedBytesTypedaniel2018-05-041-2/+2
* Removed signed shift right from the utilities.chriseth2018-05-016-24/+24
* Do not use SAR instead of SDIV in shifts because it rounds differentlyAlex Beregszaszi2018-05-013-7/+10
* Use native shift instructions in ABIFunctions on ConstantinopleAlex Beregszaszi2018-05-013-26/+70
* Use native shift instructions on ConstantinopleAlex Beregszaszi2018-05-012-4/+19
* Add virtual destructor in LValue class.Alexander Arlt2018-04-251-0/+1
* Remove redundant cleanup for abi.encode.Alex Beregszaszi2018-04-161-2/+1
* Properly force-clean for shortening bytesXX conversions.chriseth2018-04-161-10/+9
* Merge pull request #3364 from ethereum/revertWithReasonchriseth2018-04-136-12/+76
|\
| * Use error signature for revert data.chriseth2018-04-123-20/+24
| * Only forward returndata if EVM version supports it.chriseth2018-04-122-1/+3
| * Bubble up error messages.chriseth2018-04-125-11/+26
| * Allow error string for ``require``.chriseth2018-04-121-0/+26
| * Code generator for revert with reason string.chriseth2018-04-121-1/+18
* | Add abi.encode, abi.encodePacked, abi.encodeWithSelector and abi.encodeWithSi...Alex Beregszaszi2018-04-121-0/+102
|/
* Error when using no parentheses in modifier-style constructor calls.Daniel Kirchner2018-04-101-3/+6
* Move constructor argument override check to TypeChecker and reuse annotations...Daniel Kirchner2018-04-092-28/+13
* Merge pull request #3824 from ethereum/baseArgumentsEmptyParenthesisDaniel Kirchner2018-04-051-2/+2
|\
| * Error when using empty parenthesis for base class constructors that require a...Daniel Kirchner2018-04-051-2/+2
* | More specific push implementation.chriseth2018-04-043-13/+71
* | Create empty dynamic memory arrays more efficiently.chriseth2018-04-042-8/+29
|/
* Merge pull request #3693 from ethereum/optimizeMLOADAlex Beregszaszi2018-04-032-25/+32
|\
| * Optimize across MLOAD if MSIZE is not used.chriseth2018-04-032-25/+32
* | Fix: Treat empty base constructor argument list as not provided.chriseth2018-04-031-3/+5
|/
* Prevent encoding of weird types and support packed encoding of external funct...chriseth2018-03-291-1/+0
* Add runtimeOnly option to pushCombinedFunctionEntryLabelAlex Beregszaszi2018-03-273-8/+8
* Use shortcut for internal function calls to avoid runtime reference.chriseth2018-03-271-1/+23
* Decode dynamic data.chriseth2018-03-213-17/+47
* Move dynamic type removal out of the type system.chriseth2018-03-211-5/+12
* Simple size check for old ABI decoder.chriseth2018-03-213-32/+97
* Move the old ABI decoder code.chriseth2018-03-204-105/+106
* Merge pull request #3725 from ethereum/blockhashNoCallchriseth2018-03-151-0/+3
|\
| * Allow ``block.blockhash`` without being called.chriseth2018-03-141-0/+3
* | Bugfix in virtual lookup for modifiers in libraries.chriseth2018-03-133-5/+16
|/
* Properly skip cleanup if only enlarging storage array.chriseth2018-03-091-2/+2
* Warn about using loose inline assembly features as experimental 0.5.0 feature.chriseth2018-03-071-0/+1
* Use STATICCALL for pure function calls if EVM version supports it and 0.5.0 i...chriseth2018-03-061-0/+9
* Merge pull request #3652 from ethereum/gasleft_v2chriseth2018-03-061-5/+0
|\
| * Use StaticAnalyzer to deprecate msg.gas instead of conditionally removing it ...Daniel Kirchner2018-03-061-5/+0
* | Merge pull request #3599 from ethereum/sendAllGasOnByzantiumchriseth2018-03-061-10/+13
|\ \
| * | Do not retain any gas in external calls (except if EVM version is set to home...chriseth2018-03-061-10/+13
* | | Merge pull request #3643 from ethereum/gasleftchriseth2018-03-061-0/+8
|\ \ \ | |/ / |/| / | |/
| * Style improvements.Daniel Kirchner2018-03-061-2/+5
| * Move msg.gas to global function gasleft(). Closes #2971.Daniel Kirchner2018-03-051-1/+6
* | Use EVM version in gas meter and optimizer.chriseth2018-03-054-5/+5
* | Provide EVM version to assembly analysis.chriseth2018-03-021-0/+1
* | Provide target EVM version in CompilerContext.chriseth2018-03-023-7/+17
|/
* Introduce emit statement.chriseth2018-02-222-0/+10
* Expect end of string at end of top-level block for assembly parser.chriseth2018-02-211-1/+1
* Make addmod and mulmod revert if the last argument is zero.chriseth2018-02-151-1/+5
* Allow `this.f.selector` to be pure.chriseth2018-02-131-0/+24
* Prevent libraries from being called.chriseth2018-01-194-3/+81
* Split inline assembly into loose and strict flavours.chriseth2018-01-062-4/+9
* Reset source location after using inline assembly.chriseth2018-01-041-0/+3
* Favour if over switch in ABI coder.chriseth2017-12-151-14/+14
* Cleanup and overflow checks for data pointers.chriseth2017-11-304-23/+47
* ABI decoder.chriseth2017-11-306-4/+503
* Use if statement in abi functions.chriseth2017-11-221-3/+3
* Add explanation to unimplemented assertionsAlex Beregszaszi2017-11-162-3/+3
* Do not accept truncated function selectors.chriseth2017-10-181-7/+4
* Allocate one byte per memory byte array element instead of 32.chriseth2017-10-171-2/+9
* Merge pull request #2982 from ethereum/encoderFixesAlex Beregszaszi2017-10-052-25/+18
|\
| * Rename "compacted" to "fromStack".chriseth2017-10-042-22/+18
| * ABI encoder fixes and test.chriseth2017-09-271-5/+2
* | Merge pull request #3029 from ethereum/tanwisgasAlex Beregszaszi2017-10-051-0/+3
|\ \
| * | Send all gas for 0.5.0.chriseth2017-10-051-0/+3
* | | Merge pull request #2968 from ethereum/calldataencodedsizechriseth2017-10-051-0/+3
|\ \ \ | |/ / |/| |
| * | Add some asserts about calldata encoded size.chriseth2017-10-041-0/+3
* | | Merge pull request #2962 from ethereum/optionalDebugInfoAsmchriseth2017-10-041-5/+16
|\ \ \
| * | | Debugging info in CompilerContext.chriseth2017-10-041-5/+16
* | | | Better readable encoder assembly.chriseth2017-09-271-6/+28
| |_|/ |/| |
* | | Split encodeToMemory to packedEncode and abiEncodeAlex Beregszaszi2017-09-274-18/+41
* | | Make most of the parameters mandatory in encodeToMemoryAlex Beregszaszi2017-09-272-6/+6
* | | Ensure that address types are always declared as 160bitAlex Beregszaszi2017-09-273-6/+6
| |/ |/|
* | Simplify switch statements by refactoring internal break statementsAlex Beregszaszi2017-09-252-24/+24
* | Avoid switch fallthrough in ExpressionCompilerAlex Beregszaszi2017-09-251-26/+32
* | Avoid switch fallthrough in CompilerUtilsAlex Beregszaszi2017-09-251-6/+3
|/
* More verbose errors for generated assembly.chriseth2017-09-221-2/+18
* Mark functions staticAlex Beregszaszi2017-09-202-2/+2
* Ensure parameter names match between headers and implementationAlex Beregszaszi2017-09-201-2/+2
* Implement struct encoder.chriseth2017-09-163-6/+131
* Update tests and error messages.chriseth2017-09-161-1/+1
* Move ABI encoder into its own function.chriseth2017-09-165-66/+82
* Named assembly labels.chriseth2017-09-163-15/+8
* Rename .sig to .selector on function typesAlex Beregszaszi2017-09-131-1/+1
* Add sig member on function typeAlex Beregszaszi2017-09-131-1/+8
* Introduce assemblyStringAlex Beregszaszi2017-09-112-4/+4
* Do not return the stream in asssemblyStreamAlex Beregszaszi2017-09-112-4/+4
* Split out the JSON functionality from assembly.stream()Alex Beregszaszi2017-09-112-6/+15
* Merge pull request #2847 from ethereum/codegen-docsAlex Beregszaszi2017-08-293-1/+25
|\
| * Document more of the codegen featuresAlex Beregszaszi2017-08-293-1/+25
* | Merge pull request #2833 from ethereum/statemutability-builtinschriseth2017-08-291-1/+1
|\ \
| * | Swap declaration/statemutability in FunctionType constructorAlex Beregszaszi2017-08-291-1/+1
| |/
* / Move all file specific globals to anonymous namespaceAlex Beregszaszi2017-08-291-0/+5
|/
* Mark to places fall-throughAlex Beregszaszi2017-08-252-0/+2
* Remove fallthrough from ArrayUtilsAlex Beregszaszi2017-08-251-3/+3
* Mark a lot of functions static (where possible)Alex Beregszaszi2017-08-222-2/+2
* Mark appropriate constructors explicitAlex Beregszaszi2017-08-223-3/+3
* Mark a lot of functions const (where possible)Alex Beregszaszi2017-08-226-9/+9
* Merge pull request #2704 from ethereum/newEncoderchriseth2017-08-147-10/+1296
|\
| * Experimental feature switch for ABI encoder.chriseth2017-08-143-2/+10
| * Remove unused magic global feature.chriseth2017-08-142-10/+2
| * Interface for new ABI encoder.chriseth2017-08-142-0/+40
| * New ABI encoder.chriseth2017-08-142-0/+1246
* | Remove constant/payable in all function typesAlex Beregszaszi2017-08-141-2/+1
|/
* .delegatecall() should always return a boolean of execution statusAlex Beregszaszi2017-08-021-1/+1
* Provide new account gas for low-level callcode/delegatecallAlex Beregszaszi2017-08-011-1/+1
* Rename Bare to BarecallAlex Beregszaszi2017-08-011-5/+5
* Fix for invalid clearing of memory in ecrecover.chriseth2017-07-281-1/+1
* Remove the need of jumping out of the fallbackAlex Beregszaszi2017-07-281-8/+4
* Merge pull request #2652 from ethereum/fixMultiModifierchriseth2017-07-272-6/+11
|\
| * Re-allow multiple modifiers per function.chriseth2017-07-272-6/+11
* | Merge pull request #2645 from ethereum/assertsAlex Beregszaszi2017-07-272-14/+12
|\ \ | |/ |/|
| * Use solAssert instead of boost throw where possibleAlex Beregszaszi2017-07-272-14/+12
* | Report location on stack too deep if possibleAlex Beregszaszi2017-07-272-1/+7
|/
* Change fixed point types to have digit countVoR02202017-07-201-1/+1
* Fix internal "variable already present" error.chriseth2017-07-051-0/+3
* Add assert to shift helperAlex Beregszaszi2017-07-031-0/+2
* Use shift helper in LValueAlex Beregszaszi2017-07-031-4/+2
* More uses of shift helperAlex Beregszaszi2017-07-031-6/+10
* Change shiftNumberOnStack to bitsAlex Beregszaszi2017-07-033-13/+13
* Use shift helperAlex Beregszaszi2017-07-032-8/+8
* Add shift helper to CompilerUtilsAlex Beregszaszi2017-07-032-0/+16
* Abort early if there is nothing to encode or decode.chriseth2017-06-302-3/+9
* Document appendFunctionSelectorAlex Beregszaszi2017-06-291-0/+4
* Stack adjustment and code generation for fallback function.chriseth2017-06-291-4/+6
* Fix negative stack size checks.chriseth2017-06-282-0/+11
* Merge pull request #2459 from ethereum/noComparisonForSomeTypesAlex Beregszaszi2017-06-271-0/+1
|\
| * Disallow comparisons between some types.chriseth2017-06-261-0/+1
* | Merge pull request #2453 from ethereum/memcopyAsForLoopAlex Beregszaszi2017-06-272-23/+20
|\ \ | |/ |/|
| * Comment about zero length.chriseth2017-06-271-0/+2
| * Reformat.chriseth2017-06-261-6/+9
| * Use for loop for assembly memcopy.chriseth2017-06-261-23/+15
* | Merge pull request #2460 from ethereum/disallowMultiModifierAlex Beregszaszi2017-06-262-0/+5
|\ \ | |/ |/|
| * Disallow invoking the same modifier multiple times.chriseth2017-06-242-0/+5
* | Review suggestions.chriseth2017-06-241-1/+1
* | Change invalid opcode to revert for input validation.chriseth2017-06-246-20/+52
|/
* Merge pull request #2444 from ethereum/parser-scannerAlex Beregszaszi2017-06-231-0/+1
|\
| * Avoid including Scanner.h in ParserBase.hAlex Beregszaszi2017-06-231-0/+1
* | Fix ABI encoding of empty string literal.chriseth2017-06-221-1/+1
|/
* Merge interface/Exceptions and interface/UtilsAlex Beregszaszi2017-06-223-2/+3
* Move subroutine helpers from CompilerContext to AssemblyAlex Beregszaszi2017-06-151-3/+3
* Remove obsolete errorTag()Alex Beregszaszi2017-06-151-2/+0
* Use inline assembly directly and not via AsmStackAlex Beregszaszi2017-06-091-3/+17
* Remove error reporter from code generation phase.chriseth2017-06-081-5/+1
* Initial EVM1.5 assembly implementation.chriseth2017-06-082-7/+13
* Merge pull request #2317 from ethereum/keccak256chriseth2017-05-314-8/+8
|\
| * Rename the SHA3 assembly instruction to KECCAK256Alex Beregszaszi2017-05-304-8/+8
* | Refactor error reportingRhett Aultman2017-05-301-2/+3
|/
* Adapt EVM codegen to new namespace.chriseth2017-05-262-9/+9
* Merge pull request #1810 from ethereum/compactJsonchriseth2017-05-221-3/+3
|\
| * refactoring functionCallAnnotationdjudjuu2017-05-191-3/+3
* | Refactor to abstract assembly to JULIA.chriseth2017-05-202-24/+28
|/
* Remove error label / invalid jump label.chriseth2017-04-282-23/+0
* Refactor to combined scope and stack height info.chriseth2017-04-261-1/+2
* Special case for storage types with offset zero.chriseth2017-04-251-3/+18
* Build fix.chriseth2017-04-251-1/+1
* Storage access from inline assembly.chriseth2017-04-251-10/+35
* Move analysis out of code generator.chriseth2017-04-251-1/+3
* Only allow access to local variables and only if they have a stack size of one.chriseth2017-04-251-34/+14
* Review comments.chriseth2017-04-252-2/+6
* Review comments and cleanup.chriseth2017-04-251-2/+5
* Split external identifier access into resolving and code generation.chriseth2017-04-252-80/+95
* Change references to FunctionType::LocationAlex Beregszaszi2017-03-163-86/+84
* Require and Assert.chriseth2017-03-141-2/+6
* Merge pull request #1702 from ethereum/assertErrorYoichi Hirai2017-03-041-3/+2
|\
| * Change effect of assert to invalid opcode.chriseth2017-02-161-3/+2
* | Merge pull request #1700 from ethereum/fixNoMobilechriseth2017-02-241-0/+3
|\ \
| * | Some checks for the existence of mobile type.chriseth2017-02-161-0/+3
| |/
* | Disallow setting .gas() on .transfer()Alex Beregszaszi2017-02-241-8/+4
* | Do not keep the gas stipend if sending non-zero valueAlex Beregszaszi2017-02-241-1/+1
* | Support gas modifier on addr.transfer()Alex Beregszaszi2017-02-241-1/+2
* | Implement address.transfer()Alex Beregszaszi2017-02-241-4/+15
|/
* Use the revert opcode in assert()Alex Beregszaszi2017-02-111-2/+8
* Use the REVERT opcode for throw;Alex Beregszaszi2017-02-111-1/+3
* Support revert()Alex Beregszaszi2017-02-111-0/+5
* Cleanup is not needed for assert()Alex Beregszaszi2017-02-101-1/+1
* Implement assert as a global functionAlex Beregszaszi2017-02-101-0/+8
* Rename SUICIDE opcode to SELFDESTRUCT in libevmasmAlex Beregszaszi2017-02-071-1/+1
* Warn early when exhausting stackAlex Beregszaszi2017-02-021-0/+1
* Only capture function type to address conversionAlex Beregszaszi2017-02-011-8/+10
* Be more verbose on the stack-mismatch errorsAlex Beregszaszi2017-02-011-1/+1
* Support explicit conversion of external function type to addressAlex Beregszaszi2017-02-012-1/+13
* Changelog and review suggestions.chriseth2017-01-271-1/+1
* Uninitialized internal function should call INVALID.chriseth2017-01-261-1/+3
* Allow inserting low-level functions without calling them.chriseth2017-01-262-5/+26
* Split line.chriseth2017-01-261-1/+3
* Address feedback from code review.Valentin Wüstholz2017-01-262-6/+6
* Change translation of implicit throws (issue #1589).Valentin Wüstholz2017-01-266-13/+31
* Warn about invalid checksums of addresses.chriseth2017-01-251-0/+1
* Include creation code only once.chriseth2017-01-251-14/+18
* Use int arithmetics for stack adjustment.chriseth2017-01-241-1/+1
* Change clearStorageLoop to TypePointer.chriseth2017-01-242-16/+18
* Use shared_ptrs to enable shared_from_this.chriseth2017-01-241-4/+4
* Convert ArrayUtils routines into low-level functions.chriseth2017-01-241-228/+251
* Move some util functions to low-level functions.chriseth2017-01-245-244/+320
* Low level named functions for CompilerContext.chriseth2017-01-242-0/+23
* Report source location on "stack too deep" errors.chriseth2017-01-212-2/+14
* Use fully-qualified names for linking, tooRhett Aultman2017-01-172-3/+3
* ast, codegen: enable accessing events through contract names.Yoichi Hirai2017-01-031-9/+33
* Merge pull request #1487 from ethereum/shift-opsYoichi Hirai2016-12-142-30/+98
|\
| * Use correct type for storing.chriseth2016-12-131-7/+7
| * Cleaner shift handling and type conversion for binary operations.chriseth2016-12-122-45/+80
| * Support bitshifting in variablesAlex Beregszaszi2016-12-122-9/+42
* | Renamed padToWordBoundaries -> padToWordschriseth2016-12-132-14/+14
* | Split memcopy into three functions.chriseth2016-12-123-54/+79
* | Fix inline assembly.chriseth2016-12-121-1/+2
* | Reset stack height after inline assembly blockAlex Beregszaszi2016-12-121-0/+1
* | Better assert message for appendInlineAssembnlyAlex Beregszaszi2016-12-121-1/+1
* | Implement identity call in inline assemblyAlex Beregszaszi2016-12-121-14/+21
* | Turn off the identity precompile for testingAlex Beregszaszi2016-12-121-1/+1
* | Implement CompilerUtils::memoryCopy using inline assemblyAlex Beregszaszi2016-12-121-1/+26
* | Add usingIdentity option to CompilerUtils::memoryCopyAlex Beregszaszi2016-12-122-2/+9
|/
* Merge pull request #1351 from ethereum/truncate_bitchriseth2016-12-083-3/+5
|\
| * codegen: clean not only booleans but all types before storing them into memoryYoichi Hirai2016-12-012-4/+3
| * codegen: clean any data from the inputYoichi Hirai2016-12-011-2/+2
| * codegen: truncate booleans before they enter storageYoichi Hirai2016-12-011-1/+0
| * codegen: cleanup booleans before storing them into memoryYoichi Hirai2016-12-011-0/+2
| * codegen: truncate a boolean calldata down to one bitYoichi Hirai2016-12-011-0/+2
* | Throw if calling the identity precompile (memoryCopy) failedAlex Beregszaszi2016-12-021-1/+2
* | Use CBOR encoding.chriseth2016-12-012-3/+3
* | Fix tests.chriseth2016-12-012-10/+0
* | Add swarm hash to the end of the bytecode.chriseth2016-12-013-12/+3
* | Metadata stamp.chriseth2016-12-014-7/+16
* | Merge pull request #1462 from ethereum/fix-incorrect-assertionchriseth2016-12-011-1/+1
|\ \
| * | codegen: assertion did not assert non-nullnessYoichi Hirai2016-12-011-1/+1
| |/
* / codegen: this commit removes one of duplicate assignmentsYoichi Hirai2016-12-011-2/+0
|/
* Use solUnimplemented wherever possibleAlex Beregszaszi2016-11-282-3/+3
* codegen: cleanup values to fit in storage bytesYoichi Hirai2016-11-251-0/+4