aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/codegen/ContractCompiler.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Added tests and review suggestionsLeonardo Alt2018-07-111-17/+9
|
* [050] Reserving and popping local vars in their scopeLeonardo Alt2018-07-111-34/+70
|
* Fail if break/continue statements are used outside for/while loops in ↵Alex Beregszaszi2018-06-121-4/+4
| | | | ContractCompiler
* Fix continue inside do-while.Daniel Kirchner2018-05-171-12/+16
|
* Bubble up error messages.chriseth2018-04-121-0/+2
|
* 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 ↵Daniel Kirchner2018-04-091-27/+12
| | | | annotations in ContractCompiler.
* Error when using empty parenthesis for base class constructors that require ↵Daniel Kirchner2018-04-051-2/+2
| | | | arguments.
* Fix: Treat empty base constructor argument list as not provided.chriseth2018-04-031-3/+5
|
* Simple size check for old ABI decoder.chriseth2018-03-211-0/+2
|
* Move the old ABI decoder code.chriseth2018-03-201-101/+2
|
* Bugfix in virtual lookup for modifiers in libraries.chriseth2018-03-131-1/+4
|
* Use EVM version in gas meter and optimizer.chriseth2018-03-051-2/+2
|
* Introduce emit statement.chriseth2018-02-221-0/+9
|
* Prevent libraries from being called.chriseth2018-01-191-3/+68
|
* Cleanup and overflow checks for data pointers.chriseth2017-11-301-1/+0
|
* ABI decoder.chriseth2017-11-301-0/+10
|
* Do not accept truncated function selectors.chriseth2017-10-181-7/+4
|
* Split encodeToMemory to packedEncode and abiEncodeAlex Beregszaszi2017-09-271-1/+1
|
* Update tests and error messages.chriseth2017-09-161-1/+1
|
* Move ABI encoder into its own function.chriseth2017-09-161-0/+5
|
* Move all file specific globals to anonymous namespaceAlex Beregszaszi2017-08-291-0/+5
|
* Mark appropriate constructors explicitAlex Beregszaszi2017-08-221-1/+1
|
* Experimental feature switch for ABI encoder.chriseth2017-08-141-0/+1
|
* Remove the need of jumping out of the fallbackAlex Beregszaszi2017-07-281-8/+4
|
* Fix internal "variable already present" error.chriseth2017-07-051-0/+3
|
* Abort early if there is nothing to encode or decode.chriseth2017-06-301-3/+6
|
* Document appendFunctionSelectorAlex Beregszaszi2017-06-291-0/+4
|
* Stack adjustment and code generation for fallback function.chriseth2017-06-291-4/+6
| | | | This assumes that the fallback function does not have return parameters.
* Fix negative stack size checks.chriseth2017-06-281-0/+10
|
* Merge pull request #2460 from ethereum/disallowMultiModifierAlex Beregszaszi2017-06-261-0/+4
|\ | | | | Disallow invoking the same modifier multiple times.
| * Disallow invoking the same modifier multiple times.chriseth2017-06-241-0/+4
| |
* | Change invalid opcode to revert for input validation.chriseth2017-06-241-5/+4
|/
* Remove error reporter from code generation phase.chriseth2017-06-081-5/+1
|
* Initial EVM1.5 assembly implementation.chriseth2017-06-081-6/+11
|
* Refactor error reportingRhett Aultman2017-05-301-2/+3
| | | | | | | | | 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
* Adapt EVM codegen to new namespace.chriseth2017-05-261-4/+4
|
* Refactor to abstract assembly to JULIA.chriseth2017-05-201-16/+20
|
* 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-251-0/+2
|
* Review comments and cleanup.chriseth2017-04-251-2/+5
|
* Split external identifier access into resolving and code generation.chriseth2017-04-251-72/+80
|
* Use the REVERT opcode for throw;Alex Beregszaszi2017-02-111-1/+3
|
* Be more verbose on the stack-mismatch errorsAlex Beregszaszi2017-02-011-1/+1
|
* Support explicit conversion of external function type to addressAlex Beregszaszi2017-02-011-1/+1
|
* Changelog and review suggestions.chriseth2017-01-271-1/+1
|
* Address feedback from code review.Valentin Wüstholz2017-01-261-3/+3
|
* Change translation of implicit throws (issue #1589).Valentin Wüstholz2017-01-261-3/+5
| | | | | | | 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.
* Move some util functions to low-level functions.chriseth2017-01-241-0/+1
|
* Report source location on "stack too deep" errors.chriseth2017-01-211-1/+8
|
* Use fully-qualified names for linking, tooRhett Aultman2017-01-171-1/+1
| | | | | | | | | | | | | | | Using libraries leaves behind a library link reference in the binary which the linker must later resolve. These link references were still being generated by name and not by fully-qualified name. This would lead to a link-time collision between two libraries having the same name but in different source units. This change changes linker symbols over to fully-qualified names, which resolves that issue. This does potentially introduce a new problem, which is that linker symbols appear to be limited to 36 characters and are truncated. Storing paths extends the average symbol size, and it would be great if truncation was from the tail rather than the head.
* Merge pull request #1462 from ethereum/fix-incorrect-assertionchriseth2016-12-011-1/+1
|\ | | | | codegen: assertion did not assert non-nullness
| * codegen: assertion did not assert non-nullnessYoichi Hirai2016-12-011-1/+1
| | | | | | | | | | This commit strengthens an assertion so that it makes sure that a pointer is not null. Moreover, `isLocalVariable(variable)` is now positively asserted, following the error message.
* | codegen: this commit removes one of duplicate assignmentsYoichi Hirai2016-12-011-2/+0
|/
* Fix licensing headersVoR02202016-11-231-4/+4
| | | | Signed-off-by: VoR0220 <rj@erisindustries.com>
* Add appendCallValueCheckAlex Beregszaszi2016-11-181-20/+13
|
* Add payable check for constructor in codegenAlex Beregszaszi2016-11-181-0/+12
|
* Converted sub assembly to smart pointer.chriseth2016-11-161-8/+7
|
* Stored combined creation and runtime tags.chriseth2016-11-161-11/+32
| | | | | | | Includes a change to Assembly to allow tags from sub-assemblies to be used. Sorry, this get a bit bigger than I thought.
* Code generator for function types.chriseth2016-11-161-0/+1
|
* Unimplemented features moved to their own exception (#1361)Rhett Aultman2016-11-151-2/+2
| | | | | | | | | | | | | | | | | | Unimplemented features moved to their own exception InternalCompilerError is an exception that really should be reserved for actual internal errors of the compiler. Unimplemented features can now use either solUnimplemented( ) or, if it should be conditional, then solUnimplementedAssert( ). * Revert some unimplemented exceptions, add handlers The jsonCompiler and CommandLineInterface needed handlers for the new UnimplementedFeatureException, and some cases I had moved on to the new exception were better treated as real internal compiler errors. * Standardize on "Unimplemented feature" message
* Add support for do/while loopsRhett Aultman2016-11-101-3/+16
| | | | | | | This commit adds support for a standard do <statement> while <expr>; form of statement. While loops were already being supported; supporting a do/while loop mostly involves reusing code from while loops but putting the conditional checking last.
* Allow warnings for inline assembly blockAlex Beregszaszi2016-10-201-1/+1
|
* Allow value transfer to library functions.chriseth2016-09-171-1/+3
|
* Change function type to include and propagate payable and constant modifier.chriseth2016-09-061-0/+6
|
* Merged in changes from chriseth/payableAlex Beregszaszi2016-09-061-11/+2
|
* Support payable keyword for functionsAlex Beregszaszi2016-09-061-0/+17
|
* Make fallback function throw by default.chriseth2016-08-301-4/+1
|
* BREAKING: return only exits current function/modifierchriseth2016-08-171-31/+42
|
* Disallow implementation of abstract function by constructor of derived class.chriseth2016-06-071-0/+3
|
* Refactor compiler to avoid weird swap of contextschriseth2016-05-201-0/+853