aboutsummaryrefslogtreecommitdiffstats
path: root/ExpressionCompiler.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Type conversion specialities for storage references.chriseth2015-06-161-12/+11
|
* Style.chriseth2015-06-161-6/+14
|
* Copying between memory and memory.chriseth2015-06-161-281/+60
| | | | Also fixed some encoding and padding issues with older copying code.
* Distinction between storage pointer and storage ref and type checking for ↵chriseth2015-06-151-5/+24
| | | | conversion between storage and memory.
* Use dynamic memory for argument encoding.chriseth2015-06-091-116/+191
|
* Dynamic memory.chriseth2015-06-091-11/+26
|
* Improved "Stack too deep" error message.chriseth2015-06-071-1/+1
| | | | Closes #2080.
* Style.chriseth2015-06-051-4/+5
|
* Bare functions return success condition.chriseth2015-06-051-11/+24
|
* Fallback takes constant amount of gas, and send to gas with send.chriseth2015-06-051-1/+2
|
* Ability to specify the storage location of a reference type.chriseth2015-06-051-8/+8
|
* corrected the calculation of gas for sendLiana Husikyan2015-06-041-3/+7
|
* Merge pull request #1975 from LianaHus/sol_EVMExceptionschriseth2015-06-011-2/+5
|\ | | | | "error jump" instead of STOP instraction in case of exception
| * fixed CALL case. added exceptionLiana Husikyan2015-06-011-2/+2
| |
| * style fixesLiana Husikyan2015-06-011-2/+2
| |
| * removed exception when function is not foundLiana Husikyan2015-06-011-13/+5
| |
| * special handle of sendLiana Husikyan2015-06-011-5/+13
| |
| * one more test to test the call of non-existed functionLiana Husikyan2015-06-011-1/+1
| | | | | | | | | | Conflicts: test/libsolidity/SolidityEndToEndTest.cpp
| * style fixesLiana Husikyan2015-06-011-1/+2
| |
| * fixed mistake because of conflict resolvingLiana Husikyan2015-06-011-4/+5
| |
| * added error jump instead of STOP instraction in case of exceptionLiana Husikyan2015-06-011-3/+4
| |
* | Re-introduce string type.chriseth2015-05-281-0/+3
|/
* Move non-cryptopp dependent stuff into devcore.Gav Wood2015-05-201-1/+1
|
* Bare callcode for addresses and contracts.chriseth2015-05-161-14/+23
|
* saved returnParameterNames in FunctionType constructorLiana Husikyan2015-04-271-0/+1
|
* changed the test so constructor will have input parametersLiana Husikyan2015-04-271-2/+13
|
* Fix regarding memory overwrite during sha3 computation.chriseth2015-04-221-4/+9
|
* bytes parameters for events and sha3.chriseth2015-04-221-11/+80
|
* Merge pull request #1685 from chriseth/sol_fix_ripemd_alignmentGav Wood2015-04-211-1/+7
|\ | | | | Fixed byte alignment for return type of ripemd160 built-in contract.
| * Fixed byte alignment for return type of ripemd160 built-in contract.chriseth2015-04-211-1/+7
| |
* | Merge remote-tracking branch 'ethereum/develop' into sol_overloadingFunctionschriseth2015-04-151-20/+45
|\| | | | | | | | | Conflicts: libsolidity/Types.cpp
| * Merge pull request #1546 from chriseth/sol_assumeContractNotCreatedGav Wood2015-04-091-1/+1
| |\ | | | | | | Retain more gas for the case that the called contract is not yet created
| | * Retain more gas for the case that the called contract is not yet created.chriseth2015-04-071-1/+1
| | |
| * | fixesLiana Husikyan2015-04-081-7/+22
| | | | | | | | | | | | added more tests
| * | added implementation to append code for State variable accessorLiana Husikyan2015-04-081-27/+21
| | | | | | | | | | | | fixed tests
| * | some more testsLiana Husikyan2015-04-081-17/+29
| | |
| * | added createing FunctionType from ArrayType VariableDeclarationLiana Husikyan2015-04-081-8/+12
| |/ | | | | | | added test
* | Fixed function overloads.chriseth2015-04-151-22/+24
| | | | | | | | | | Added tests, disallowed non-calling usage of non-unique function references.
* | Merge remote-tracking branch 'ethereum/develop' into sol_overloadingFunctionschriseth2015-04-071-142/+117
|\|
| * Refactor: Pull out array index access.chriseth2015-03-311-100/+7
| |
| * added externalTypes function to functionTypeLiana Husikyan2015-03-271-1/+1
| | | | | | | | removed flag for externalSigniture
| * tests for external typesLiana Husikyan2015-03-251-1/+1
| |
| * renamed externalTypes to externalSignatureLiana Husikyan2015-03-251-1/+1
| |
| * renamed getCanonicalSignatureLiana Husikyan2015-03-251-1/+1
| | | | | | | | | | | | | | | | added externalTypes instead of types for interface functions added simple test todo testing
| * Byte size checked for zero; coding style.chriseth2015-03-201-0/+1
| |
| * Packing for arrays.chriseth2015-03-181-28/+43
| |
| * added anonymous to ABILiana Husikyan2015-03-171-1/+1
| |
| * changed the position of 'anonymous' keyword: event <name>() anonymous.Liana Husikyan2015-03-171-1/+1
| | | | | | | | - style changes
| * Added anonymous flag to event.Liana Husikyan2015-03-171-3/+6
| | | | | | | | added test
| * Fetch and store packed values.chriseth2015-03-171-13/+11
| |
| * Enlarge storage references to two stack slots.chriseth2015-03-171-27/+45
| |
| * Merge pull request #1325 from LefterisJP/sol_MsgSigchriseth2015-03-171-0/+3
| |\ | | | | | | Adding msg.sig Solidity Magic type
| | * Additional test for msg.sigLefteris Karapetsas2015-03-161-1/+2
| | |
| | * Adding msg.sig Solidity Magic typeLefteris Karapetsas2015-03-161-0/+2
| | | | | | | | | | | | msg.sig will return a bytes4 with the function signature located in CALLDATALOAD
| * | - added isPartOfExternalInterface to DeclarationLiana Husikyan2015-03-161-0/+2
| | | | | | | | | | | | | | | - changed position for the constant specifier. now it goes after type: <type> <constant> <name> = <value> - removed tests for constant functions, checkings for constant function doesn't belong to this story
| * | added parsing for constant variablesLiana Husikyan2015-03-161-2/+5
| | |
| * | Fix gas for builtin.chriseth2015-03-141-0/+6
| |/ | | | | | | Fixes #1300
| * Fixing byte array index access code generationLefteris Karapetsas2015-03-121-2/+1
| |
| * Conversion changes after renaming Hash/String to Bytes.Lefteris Karapetsas2015-03-121-20/+29
| | | | | | | | - Almost all end to end tests pass. Still needs a little bit of work
| * Most EndToEndTests are now compliant with the Bytes renamingLefteris Karapetsas2015-03-121-2/+0
| |
| * Replacing StaticStringType with FixedBytesTypeLefteris Karapetsas2015-03-121-13/+13
| |
| * More changes towards getting rid of HashXXLefteris Karapetsas2015-03-121-2/+2
| |
| * added information about jump type for jump instructionsLiana Husikyan2015-03-101-2/+3
| | | | | | | | | | | | Conflicts: libevmcore/Assembly.cpp libsolidity/Compiler.cpp
| * Global variable "now" (alias for block.timestamp).chriseth2015-03-101-1/+11
| |
| * Fixed: Some instructions did not have source locations.chriseth2015-03-091-8/+10
| |
* | make it work for var x = f;Lu Guanqun2015-03-081-5/+8
| |
* | implement overload resolutionLu Guanqun2015-03-081-1/+5
|/
* Fixed gas calculation for CALL.chriseth2015-03-061-2/+3
|
* Merge pull request #1222 from chriseth/sol_copyFromCalldatachriseth2015-03-061-9/+10
|\ | | | | Copying between calldata and storage.
| * Copying between calldata and storage.chriseth2015-03-061-9/+10
| |
* | Add date/time language to solidity.Gav Wood2015-03-061-0/+3
|/
* Index access for calldata arrays.Christian2015-03-051-18/+83
|
* Merge branch 'develop' of github.com:ethereum/cpp-ethereum into developGav Wood2015-03-031-4/+4
|\
| * Shortening of dynamic arrays.Christian2015-02-281-4/+4
| |
* | Solidity STOPs in case of failed call.Gav Wood2015-03-031-7/+10
|/
* Stylistic changes.Christian2015-02-251-2/+3
|
* Removed code duplication.Christian2015-02-251-14/+3
|
* LValue refactoring.Christian2015-02-251-445/+189
|
* LocationSetter in some extra places during CompilingLefteris Karapetsas2015-02-251-0/+2
| | | | - Also adjusted the test, and fixed its error reporting
* Styling changes for SourceLocation and friendsLefteris Karapetsas2015-02-251-1/+1
|
* Moving Source Location libdevcoreLefteris Karapetsas2015-02-251-6/+6
| | | | - Big plus is we now remove the useless header libsolibity/BaseTypes.h
* Adding location information to assembly itemsLefteris Karapetsas2015-02-251-0/+6
| | | | | - In order to facilitate this addition we also now have a ScopeGuard object used in the Compiler to set the currently visited node.
* Out-of-bounds checking.Christian2015-02-241-3/+21
|
* Index and length access for dynamic arrays.Christian2015-02-241-10/+8
|
* Implementation of index access.Christian2015-02-241-24/+50
|
* Allow conversion to dynamic arrays and update grammar.Christian2015-02-221-1/+2
|
* Parsing of array types and basic implementation.Christian2015-02-211-11/+12
|
* renamed local vaiable in fromDeclarationLiana Husikyan2015-02-211-3/+3
| | | | added missing endvisit
* renamed fromIdentifier to fromStateVariableLiana Husikyan2015-02-211-16/+13
|
* corrected accept for variableDeclarationLiana Husikyan2015-02-211-6/+7
| | | | changes after code review
* cosmetic changesLiana Husikyan2015-02-211-11/+6
|
* Inline member initialisationLiana Husikyan2015-02-211-3/+27
| | | | | renamed VariableDefinition class to VariableDeclarationStatement added tests
* Fixes for assigning and deleting structs containing byte arrays.Christian2015-02-181-1/+24
|
* Calldata byte arrays stored on the stack.Christian2015-02-171-4/+15
|
* Move code to loadFromMemory.Christian2015-02-171-5/+2
|
* Forced cleanup for conversion to enum.Christian2015-02-141-1/+7
|
* Some changes to enums.Christian2015-02-141-9/+4
|
* Moving getMemberValue from EnumDefinition to EnumTypeLefteris Karapetsas2015-02-141-4/+2
|
* Addressing issues with Enums in SolidityLefteris Karapetsas2015-02-141-18/+18
|
* Enum Value member access should now work properlyLefteris Karapetsas2015-02-141-8/+19
| | | | | - Also detection of duplicate enum values and tests for them have been added
* Enum type conversion and member value access.Lefteris Karapetsas2015-02-141-1/+11
| | | | | | - Added tests for the type conversion part. - Enum member value access still needs some work
* Copying structs.Christian2015-02-131-71/+94
|
* length member for byte arrays.Christian2015-02-121-0/+6
|
* Added some comments.Christian2015-02-121-2/+2
|
* Moved copy code to CompilerUtils.Christian2015-02-121-169/+17
|
* Copy storage to storage.Christian2015-02-121-7/+70
|
* Dynamic copy to memory.Christian2015-02-121-58/+88
|
* Simple copy of bytes to storage.Christian2015-02-121-20/+98
|
* add exponent operatorLu Guanqun2015-02-101-0/+3
| | | | https://www.pivotaltracker.com/n/projects/1189488/stories/83746404
* Arbitrary parameters for call() and all hash functions.Christian2015-02-101-10/+28
|
* Merge pull request #986 from LefterisJP/sol_StyleFixchriseth2015-02-101-93/+93
|\ | | | | Solidity enum style fix
| * Addressing issues in Enum style fixLefteris Karapetsas2015-02-101-5/+5
| |
| * LValueType of Expression Compiler is now CamelCaseLefteris Karapetsas2015-02-091-16/+16
| |
| * ExpressionCompiler's enums to CamelCaseLefteris Karapetsas2015-02-091-16/+16
| |
| * Camelcasing enums in Types.hLefteris Karapetsas2015-02-091-20/+20
| |
| * Changing Solidity Code to use CamelCase enum valuesLefteris Karapetsas2015-02-091-57/+57
| |
* | Some cleanup in "move to memory" functions.Christian2015-02-091-27/+17
|/
* Merge pull request #937 from LefterisJP/sol_MultiArgSHA3chriseth2015-02-091-17/+37
|\ | | | | Solidity multiple arg sha3
| * Small fixes in Types and ExpressionCompilerLefteris Karapetsas2015-02-071-2/+2
| |
| * Small fixes for proper multitype/multiarg SHA3Lefteris Karapetsas2015-02-071-1/+1
| |
| * SHA3 of string literals now should workLefteris Karapetsas2015-02-061-5/+6
| |
| * getRealType() introducedLefteris Karapetsas2015-02-061-1/+1
| |
| * appendArgumentsCopyToMemory() has more complicated logic nowLefteris Karapetsas2015-02-061-21/+27
| | | | | | | | - Plus other fixes.
| * Fixes after rebaseLefteris Karapetsas2015-02-061-2/+2
| |
| * Renaming a function for clarityLefteris Karapetsas2015-02-061-5/+5
| |
| * Solidity SHA3 can now take multiple argumentsLefteris Karapetsas2015-02-061-5/+18
| |
* | Accessors for structs.Christian2015-02-071-11/+36
|/
* Fixes for named-args.Gav Wood2015-02-041-15/+6
|
* Merge branch 'named-args' of https://github.com/guanqun/cpp-ethereum into ↵Gav Wood2015-02-041-2/+30
|\ | | | | | | guanqun-named-args
| * implement named argumentsLu Guanqun2015-01-301-2/+30
| |
* | Accessors for multiple mappings implementedLefteris Karapetsas2015-02-031-23/+22
| |
* | Simple mapping accessors workingLefteris Karapetsas2015-02-021-39/+14
| |
* | Code generation for mapping state variable accessorLefteris Karapetsas2015-02-011-8/+67
| | | | | | | | - Work in progress
* | Padding fixes.Christian2015-01-301-1/+1
| |
* | Whitespace and error messages.Christian2015-01-301-2/+2
| |
* | Code generation for events.Christian2015-01-301-28/+59
|/
* No longer exposing retrieveValueFromStorage() as a public functionLefteris Karapetsas2015-01-291-11/+11
| | | | - plus small fix in EndToEndTests
* Style changes.Christian2015-01-291-5/+7
|
* Super keyword.Christian2015-01-291-7/+17
|
* Various fixes pertaining to State Variable accessorsLefteris Karapetsas2015-01-291-6/+7
|
* EVM Code for simple accessor function is properly generatedLefteris Karapetsas2015-01-291-5/+10
|
* Work on ExpressionCompiler preparing for Accessors from storageLefteris Karapetsas2015-01-291-19/+36
|
* - cosmetic changesliana2015-01-271-15/+12
|
* -redesigned appendTypeConversion functionliana2015-01-271-35/+37
|
* - modifications according to PR reviewliana2015-01-261-16/+18
|
* - corrected assertliana2015-01-241-1/+1
|
* - added conversion for string/hash of equal sizesliana2015-01-241-2/+28
| | | | - added tests
* Explicit calls to base class function.Christian2015-01-201-8/+26
|
* Inheritance in compiler.Christian2015-01-201-1/+1
|
* Some addition to Solidity Execution FrameworkLefteris Karapetsas2015-01-191-3/+1
|
* Merge pull request #805 from LianaHus/deleteStructchriseth2015-01-191-23/+67
|\ | | | | | | | | delete for structs -added functionality to set values to 0 when deleting structure(not for ...
| * - corrected delete in case we have more than one localsliana2015-01-161-2/+2
| | | | | | | | - added a test
| * removed spacesliana2015-01-161-2/+2
| |
| * Corrected "delete" for local variables i.e. set them to 0liana2015-01-161-3/+4
| | | | | | | | Added test case
| * - added functionality to set values to 0 when deleting structure(not for ↵liana2015-01-151-23/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mapping) - added unit test Made some changes after Christian`s review on pull request - remove/edit comments - BoolType and ContractType return VoidType after delete - fixed constructor_arguments test - fixed set to 0 when deleting variable from stack - changed test case to test that
* | Merge branch 'develop' of github.com:ethereum/cpp-ethereum into developGav Wood2015-01-161-78/+128
|\ \ | | | | | | | | | | | | Conflicts: libsolidity/Types.h
| * | Update ExpressionCompiler.cppLefteris Karapetsas2015-01-151-2/+1
| | |
| * | Fixing an unused parameter warning in ExpressionCompilerLefteris Karapetsas2015-01-151-0/+1
| | |
| * | Style.Christian2015-01-141-1/+0
| | |
| * | More flexible access to stack during external function call.Christian2015-01-141-5/+12
| | |
| * | Use min gas for send().Christian2015-01-141-3/+5
| | |
| * | Specify value for contract creation.Christian2015-01-141-47/+55
| | |
| * | Modify gas and value for external function call.Christian2015-01-141-32/+66
| |/
* / Add blockhash to Solidity.Gav Wood2015-01-161-0/+7
|/ | | | Autopadding fix.
* More convenient function type construction.Christian2015-01-121-1/+1
|
* Merge pull request #768 from chriseth/sol_contractsAreAddressesGav Wood2015-01-111-19/+44
|\ | | | | Contracts inherit all address members
| * Contracts are Addresses.Christian2015-01-101-8/+12
| |
| * Correct type conversions.Christian2015-01-101-13/+34
| |
* | Coding style: Prefix for const variables.Christian2015-01-101-30/+32
| |
* | Padding for ABI types.Christian2015-01-101-15/+12
|/
* Merge pull request #765 from chriseth/sol_someLogFixesGav Wood2015-01-091-47/+9
|\ | | | | Some changes to the log functions.
| * Some changes to the log functions.Christian2015-01-091-47/+9
| |
* | Arbitrary precision integer constants.Christian2015-01-091-12/+30
|/
* Merge pull request #754 from LefterisJP/sol_abiFunctionHashchriseth2015-01-091-6/+11
|\ | | | | Calculation of ABI Function Identifier Hash
| * Adjustments to Solidity compiler code for Function HashLefteris Karapetsas2015-01-091-2/+2
| |
| * merging developLefteris Karapetsas2015-01-091-1/+1
| |\
| * | Compiler EVM generation now takes into account for the new function hashLefteris Karapetsas2015-01-091-6/+11
| | | | | | | | | | | | | | | | | | | | | | | | identifier - Changed tests to comply with the new function hash identifier - Changed the function index offset to 4, and made it a constant for easy adjustment in the future
* | | Basic logging in Solidity (though no tests yet).Gav Wood2015-01-091-0/+55
| |/ |/|
* | Bugfix: Use parameter (not argument) type size on stack for function calls.Christian2015-01-071-1/+1
|/
* BLOCKHASHGav Wood2015-01-051-3/+3
|
* Bugfix: Additional swap for compound assignment.Christian2014-12-191-0/+2
|
* Assertions that throw InternalCompilerErrors.Christian2014-12-171-20/+13
|
* Create contracts.Christian2014-12-151-0/+38
|
* Correctly check for string prefix plus indentation change.Christian2014-12-151-1/+1
|
* Calls to bare contracts.Christian2014-12-131-56/+66
|
* Merge remote-tracking branch 'ethereum/develop' into sol_swapConstantsChristian2014-12-131-16/+24
|\ | | | | | | | | Conflicts: test/solidityOptimizerTest.cpp
| * Merge remote-tracking branch 'ethereum/develop' into sol_stringsChristian2014-12-111-19/+19
| |\ | | | | | | | | | | | | Conflicts: libsolidity/Types.cpp
| * | Helper functions to access memory.Christian2014-12-111-21/+15
| | |
| * | String types.Christian2014-12-101-4/+18
| | |
* | | Swap literals to the end if optimizing.Christian2014-12-121-6/+20
| |/ |/|
* | Merge pull request #577 from chriseth/sol_constCleanupchriseth2014-12-111-19/+19
|\ \ | |/ |/| Solidity const cleanup
| * Clear separation between ASTVisitor and ASTConstVisitor and more const ↵Christian2014-12-081-1/+1
| | | | | | | | specifiers.
| * Const AST visitor for the compiler.Christian2014-12-081-18/+18
| |
* | Const change.chriseth2014-12-101-1/+1
| |
* | Variable-size stack elements for expression compiler.Christian2014-12-091-15/+53
| |
* | Calling functions of other contracts.Christian2014-12-081-53/+86
|/
* Warning fix.Gav Wood2014-11-281-1/+1
| | | | ECDSA recover fix.
* Global functions.Christian2014-11-261-10/+45
|
* Sending ether.Christian2014-11-261-23/+56
|
* More general function types and references.Christian2014-11-261-5/+5
|
* Access to blockchain data.Christian2014-11-241-3/+28
|
* Magic variables.Christian2014-11-241-28/+57
|
* Contracts as types and framework for special global variables.Christian2014-11-241-3/+11
|
* Convenience class for type members.Christian2014-11-241-4/+1
|
* Struct types.Christian2014-11-141-4/+13
|
* Mapping types.Christian2014-11-141-59/+118
|
* Merge remote-tracking branch 'ethereum/develop' into sol_stateVariablesChristian2014-11-101-33/+19
|\ | | | | | | | | Conflicts: libsolidity/ExpressionCompiler.cpp
| * Evaluate expressions in convenient order.Christian2014-11-071-32/+19
| |
* | State variables.Christian2014-11-081-48/+79
|/
* Removed superfluous braces.chriseth2014-11-071-2/+0
|
* Re-added some changes lost in merges.Christian2014-11-071-2/+1
|
* Stylistic changes.chriseth2014-11-071-2/+0
|
* Type promotion fixes and tests.Christian2014-11-061-11/+5
|
* Proper type promotion and conversion.Christian2014-11-061-27/+54
|
* Allow implicit type conversions for comparisons.Christian2014-11-061-14/+7
|
* Converted all asserts to exceptions.Christian2014-11-051-29/+29
|
* Some tests and bugfixes for the compiler.Christian2014-11-031-0/+1
|
* Bugfix: Swap before mod and div.Christian2014-11-031-2/+2
|
* Merge remote-tracking branch 'ethereum/develop' into sol_contractCompilerChristian2014-11-011-6/+6
| | | | | | | | | | | | Conflicts: libsolidity/AST.cpp libsolidity/AST.h libsolidity/Compiler.cpp libsolidity/Compiler.h libsolidity/NameAndTypeResolver.h libsolidity/Types.cpp solc/main.cpp test/solidityCompiler.cpp
* Renamed file.Christian2014-10-311-0/+1
|
* Contract compiler and also add ExpressionStatement to AST.Christian2014-10-301-0/+408
ExpressionStatement functions as glue between Statements and Expressions. This way it is possible to detect when the border between statements and expressions is crossed while walking the AST. Note that ExpressionStatement is not the only border, almost every statement can contains expressions.