Commit Graph
2697 Commits
Author SHA1 Message Date
chriseth 565d9837e4 Virtual function calls. 2019-04-11 15:45:43 +02:00
chriseth 18ab8aeb85 Overflow-checked addition. 2019-04-11 15:45:14 +02:00
Mathias Baumann b4380a2137 Move convert functions to Yul module 2019-04-09 15:31:46 +02:00
chriseth 3df4936b6f Merge pull request #6179 from ethereum/solidity-yul1
Solidity to Yul compiler
2019-04-04 16:33:39 +02:00
chriseth 420a7dc3d6 Initial IR generator. 2019-04-04 15:02:42 +02:00
Daniel Kirchner d0fda7ca7c Merge pull request #6262 from ethereum/abiEncodeCalldataArray
ABIEncoderV2: implement encoding of calldata arrays and structs.
2019-04-04 14:51:45 +02:00
Daniel Kirchner 91a2a9a9c3 Implement ABI encoding of calldata arrays and structs. 2019-04-04 13:05:32 +02:00
chriseth 8c570f31c5 Merge pull request #6442 from ethereum/smt_unary_inc_dec
[SMTChecker] Support unary inc/dec for array/mapping access
2019-04-04 11:45:13 +02:00
Daniel Kirchner d82157d46a Refactor abi encoding functions to prepare implementing calldata arrays and structs. 2019-04-04 11:18:03 +02:00
Daniel Kirchner b0cb330397 Allow encoding calldata arrays for base types that do not require cleanup. 2019-04-04 11:18:03 +02:00
Alex Beregszaszi 43008dd08e Validate value types in decoder of ABIEncoderV2. 2019-04-03 11:32:02 +02:00
Leonardo Alt aa9b9aa87e [SMTChecker] Support unary inc/dec for array/mapping access 2019-04-02 16:53:19 +02:00
Daniel Kirchner ab8dfed144 Implement copying recursive structs from storage to memory. 2019-04-02 16:01:44 +02:00
chriseth f9820adb5e Merge pull request #6396 from ethereum/optSetForAsmStack
Make optimiser settings available to assembly stack.
2019-03-28 19:03:23 +01:00
chriseth 84251e5a22 Merge pull request #6405 from ethereum/smt_compound_assignment
[SMTChecker] Support arithmetic compound assignment operators.
2019-03-28 18:27:25 +01:00
chriseth 3264e9abf0 Make optimiser settings available to assembly stack. 2019-03-28 18:24:13 +01:00
Leonardo Alt a7e826a224 [SMTChecker] Implement short circuit 2019-03-28 16:08:30 +01:00
Leonardo Alt 15269067b5 Support arithmetic compound assignment operators 2019-03-28 15:27:52 +01:00
Leonardo Alt ecbf36f271 Refactor computing symbolic arithmetic operation 2019-03-28 15:27:36 +01:00
Leonardo Alt 1d63b97857 Take inlined function calls into account when collecting touched variables 2019-03-28 14:32:47 +01:00
Leonardo Alt 6f9b69ebc3 Refactor function that retrieves FunctionDefinition from FunctionCall 2019-03-28 14:32:47 +01:00
chriseth 529aca5cbd Merge pull request #6407 from ethereum/changeNamespace
Remove "using namespace" from header and move Instruction to dev::eth.
2019-03-28 14:32:07 +01:00
chriseth 2308904f68 Remove "using namespace" from header and move Instruction to dev::eth. 2019-03-28 13:48:11 +01:00
chriseth a1fe2562c4 Move suffixedVariableNameList to utils. 2019-03-27 17:14:17 +01:00
Alex Beregszaszi d6dda7279c Change CompilerStack.reset to have keepSettings flag instead of keepSources 2019-03-26 14:46:13 +00:00
Alex Beregszaszi cca73f9354 Remove deprecated CompilerStack.addSources 2019-03-26 14:46:02 +00:00
chriseth 72c0e44907 Merge pull request #6338 from ethereum/compilerstack-setsource
Introduce setSources in CompilerStack
2019-03-26 15:31:57 +01:00
chriseth d079cdbfaa Merge pull request #6362 from ethereum/fixABIEncoderV2StorageRead
Fix abi encoder v2 storage read
2019-03-26 10:23:08 +01:00
Alex Beregszaszi a894ab4462 Merge pull request #6368 from ethereum/yul-standard-warnings
Add warning that Yul is still experimental
2019-03-25 22:48:46 +00:00
Alex Beregszaszi d2185bf529 Remove obsolete identifer for the identity precompile 2019-03-25 20:57:59 +00:00
Alex Beregszaszi e211b5b1e1 Add warning that Yul is still experimental 2019-03-25 20:17:11 +00:00
Alex Beregszaszi 0432401e20 Emit warning when using the Yul optimiser 2019-03-25 18:38:06 +01:00
chriseth 6b69c31703 Fix ABIEncoderV2 array overwrite bug. 2019-03-25 18:28:43 +01:00
chriseth 68d4a85575 Properly read and clean value types read from storage. 2019-03-25 18:28:43 +01:00
Alex Beregszaszi 0d6d0f476c Use setSources 2019-03-25 15:11:00 +00:00
Alex Beregszaszi 66a977d999 Introduce setSources in CompilerStack 2019-03-25 15:11:00 +00:00
chriseth ffe3a60301 Merge pull request #6367 from ethereum/yul-standard
Allow warnings in AssemblyStack
2019-03-25 14:59:29 +01:00
Alex Beregszaszi 642d4b9217 Abort if parseAndAnalyze failed but no errors are reported in compileYul 2019-03-25 13:19:33 +00:00
Daniel Kirchner 66d6711364 ABIFunctions: Split out a function for generating a comma separated list of variable names. 2019-03-25 10:58:18 +01:00
Alex Beregszaszi 3bc2c35cc4 Support compiling Yul within StandardCompiler 2019-03-22 01:35:16 +00:00
Leonardo Alt a207d7f44c [SMTChecker] Add callstack model to overflow checks 2019-03-21 16:25:33 +01:00
Leonardo Alt de89733bd6 [SMTChecker] Fix nullptr deref 2019-03-21 15:46:54 +01:00
chriseth d381e26fc8 Rename "enabled" optimizer setting stage to "standard". 2019-03-21 11:04:40 +01:00
Mathias Baumann 4c2b1c1f29 ArrayType::interfaceType(): Rename local variable to make more sense 2019-03-21 07:25:59 +01:00
Mathias Baumann 7d809df91a Add back StructType::recursive() 2019-03-21 07:25:59 +01:00
Mathias Baumann 8e899a0d32 Disallow internal function types as parameters for public/external library function 2019-03-21 07:25:57 +01:00
Mathias Baumann 0fbea8a1a0 Change return type for interfaceType() to ResultType 2019-03-21 07:25:28 +01:00
Alex Beregszaszi ea1944bb2d Removed unused isLibrary from flag addSource in CompilerStack 2019-03-20 17:41:51 +00:00
chriseth 9aab2329ed Merge pull request #6244 from ethereum/smt_modifiers
[SMTChecker] Support modifiers
2019-03-20 18:04:28 +01:00
chriseth 54e00b930d Merge pull request #6331 from ethereum/pragma-parser-location-reporting-fix
Fixes wrong source location when reporting pragma solidity version conflicts
2019-03-20 16:07:56 +01:00