Commit Graph

2828 Commits

Author SHA1 Message Date
chriseth
e6f8aaafa5 Conversion for string literals. 2019-05-07 11:55:17 +02:00
Leonardo Alt
2139c20776 [SMTChecker] Support delete 2019-05-06 18:32:10 +02:00
Leonardo
e99efec085
Merge pull request #6652 from ethereum/smt_tuple_function
[SMTChecker] Support tuples as function calls with multiple return values
2019-05-06 15:19:24 +02:00
chriseth
3365cb9b4a Add type helper function. 2019-05-06 12:01:13 +02:00
chriseth
7c62193524 Change some AST elements to post visit. 2019-05-06 11:43:18 +02:00
chriseth
dee1c1109c
Merge pull request #6668 from ethereum/smt_fix_short_circuit
Fix short circuit with assignments
2019-05-06 11:40:07 +02:00
chriseth
36c78baa41
Merge pull request #6646 from ethereum/storageAccess
[Yul] Storage access for sol -> yul
2019-05-06 11:33:36 +02:00
Leonardo Alt
80712f44cb Fix short circuit with assignments 2019-05-06 11:04:43 +02:00
Leonardo Alt
5440a53d4d [SMTChecker] Support tuples as function calls with multiple return values 2019-05-03 06:10:22 +02:00
chriseth
5bd3ed97bd
Merge pull request #6649 from ethereum/smt_tuple_asgn
[SMTChecker] Support tuple assignment
2019-05-02 18:43:16 +02:00
chriseth
e9f41d1148
Merge pull request #6604 from ethereum/library-self-delegatecall
Error on library calling itself externally
2019-05-02 17:25:25 +02:00
chriseth
aa4d4afcdc LValues and state variables of value type. 2019-05-02 17:03:22 +02:00
chriseth
cbc1b97760
Merge pull request #6648 from ethereum/moveStorageFunctions
Move storage access functions to yul utils.
2019-05-02 12:58:03 +02:00
Leonardo Alt
204dcf1771 [SMTChecker] Support tuple assignments 2019-05-02 12:55:34 +02:00
chriseth
54775a7880
Merge pull request #6647 from ethereum/smt_tuple_decl
[SMTChecker] Support tuple type declaration
2019-05-02 12:49:50 +02:00
Erik Kundt
07744dbd12 Throws error on library calling itself externally. 2019-05-02 12:41:07 +02:00
chriseth
d4c4a473d8
Merge pull request #6622 from ethereum/warn-this-super
Issue warning for variables called `super` or `this`
2019-05-02 12:38:53 +02:00
chriseth
31b7037749 Move storage access functions to utils. 2019-05-02 12:11:41 +02:00
Leonardo Alt
6c7527ac90 [SMTChecker] Support tuple type declaration 2019-05-02 12:05:21 +02:00
Mathias Baumann
cf35e5ba02 Issue warning for variables called super or this 2019-05-02 11:30:24 +02:00
Leonardo Alt
66655b87b0 [SMTChecker] Fix ICE in fixed point operations 2019-05-02 10:59:23 +02:00
Leonardo Alt
dd4e938265 [SMTChecker] Fix ICE in inherited state var 2019-05-02 10:03:12 +02:00
Leonardo Alt
a6db37ac9c [SMTChecker] Fix bad cast in base constructor modifier. 2019-04-30 18:48:13 +02:00
chriseth
dc13469593
Merge pull request #6589 from ethereum/addReturn
[Yul] Add code generation for "return" and for loops.
2019-04-30 17:07:45 +02:00
chriseth
e66ab6c036 Helper function to define the value of expressions. 2019-04-30 13:10:37 +02:00
chriseth
0eef51ffa4 Conversion during binary operation. 2019-04-30 13:10:37 +02:00
chriseth
597d37b731 Implement for loops. 2019-04-30 13:10:37 +02:00
chriseth
c1ca16cd33 Implement return. 2019-04-30 13:10:36 +02:00
Leonardo Alt
e4989369d0 Refactor cast from identifier ref decl to var decl 2019-04-30 11:08:36 +02:00
Leonardo Alt
762f79f84d Refactor assignment handling 2019-04-30 11:08:36 +02:00
chriseth
39d153b7a1
Merge pull request #6570 from ethereum/fixMetaSettings
Move metadata settings into its own object.
2019-04-29 15:09:27 +02:00
chriseth
e8ba10bfaa
Merge pull request #6612 from ethereum/abi-functions-assertion
Unifies behaviour for member access of ABI functions
2019-04-29 15:02:40 +02:00
chriseth
3a19d83671
Merge pull request #6578 from ethereum/fix_base_overload
Fix call to base class overloaded functions
2019-04-29 14:33:52 +02:00
Erik Kundt
381ed5a302 Unifies behavior for member access of ABI functions. 2019-04-29 14:27:10 +02:00
chriseth
eef3f95724 Move metadata settings into its own object. 2019-04-29 14:19:27 +02:00
Erik Kundt
c02257207b Removes assert on magic ABI functions during codegen. 2019-04-26 15:01:35 +02:00
Leonardo Alt
371b37b660 Fix direct call to base class overloaded functions 2019-04-26 09:34:15 +02:00
chriseth
169b555a22
Merge pull request #6507 from ethereum/smt_address_members
[SMTChecker] Address members
2019-04-25 17:29:42 +02:00
chriseth
309d3e65cf
Merge pull request #6585 from ethereum/fixInvalidFunctionTags
Fix invalid function tags
2019-04-25 16:30:37 +02:00
Leonardo Alt
fc482de695 [SMTChecker] Support address members 2019-04-25 16:24:36 +02:00
chriseth
5b991c1e59 Fix use of uninitialized functions stored in storage. 2019-04-25 15:40:48 +02:00
Mathias Baumann
1ef213cc15 Sol -> Yul: Implement explicit cast 2019-04-24 22:52:17 +02:00
Mathias Baumann
441369d5f1 Sol -> Yul Generator: Mark "return" as unimplemented 2019-04-24 22:52:17 +02:00
Mathias Baumann
944ac6fb6d Sol -> Yul Generation: Implicit conversions 2019-04-24 22:52:17 +02:00
Leonardo Alt
dd1afeba52 [SMTChecker] Support this as address 2019-04-18 17:56:52 +02:00
chriseth
b02fbc5d02
Merge pull request #6503 from ethereum/inlineAsm-yul
Inline asm yul
2019-04-18 17:15:09 +02:00
Mathias Baumann
3d061c83d7 IR: Generate inline asm blocks 2019-04-18 16:49:19 +02:00
chriseth
fce19bde58
Merge pull request #6545 from ethereum/smt_contracts
[SMTChecker] Support contract type
2019-04-18 13:01:18 +02:00
chriseth
0bfd587363
Merge pull request #6527 from rocky/move-SemVerHandler
Move SemVerHandler to analysis to parsing to increase modularity...
2019-04-18 13:00:45 +02:00
chriseth
fb302c1c4f
Merge pull request #6473 from ethereum/libeventhash-6435
Fix external ABI type name for contracts
2019-04-18 12:53:34 +02:00
Mathias Baumann
0f4b53e9a0 Fix external ABI type name for contracts 2019-04-18 11:39:48 +02:00
Leonardo Alt
ecd89393ee [SMTChecker] Support contract type 2019-04-17 16:30:11 +02:00
Leonardo Alt
03d18f1b98 [SMTChecker] Add note about not inlining external function calls 2019-04-17 16:14:07 +02:00
rocky
b424446c5f Move SemVerHandler to analysis to parsing to increase modularity...
If ever you want to separate building analysis from scanning/parsing/ast, this will help.
2019-04-17 10:13:42 -04:00
chriseth
4509e8efbb
Merge pull request #6543 from ethereum/typeprovider-bits
TypeProvider bits
2019-04-17 15:50:08 +02:00
chriseth
922ab0d72d
Merge pull request #6534 from ethereum/reuseLiteralContent-6472
Re-produce the original 'useLiteralContent' setting
2019-04-17 15:41:55 +02:00
Mathias Baumann
b24dd42e47 Re-produce the original 'useLiteralContent' setting 2019-04-17 14:54:51 +02:00
Christian Parpart
9733ae7483
[libsolidity] TypeProvider: cleanup unnecessary std:: qualifiers 2019-04-17 14:45:29 +02:00
Christian Parpart
721bf367a3
[libsolidity] TypeProvider: eliminate redundant "Type" suffix in provider function signatures. 2019-04-17 14:42:07 +02:00
Grant Wuerker
69b4ce36de Some move semantics improvements. 2019-04-17 14:19:48 +02:00
Christian Parpart
862b65d6e3
[libsolidity] remove ReferenceType::copyForLocationIfReference (use TypeProvider instead) 2019-04-17 13:25:03 +02:00
Christian Parpart
b83097bdc6
[libsolidity] Types: eliminate redundant MagicType::metaType() (use TypeProvider instead) 2019-04-17 12:59:48 +02:00
Christian Parpart
a99a460c79
[libsolidity] Types: remove some old comments 2019-04-17 12:00:33 +02:00
chriseth
4e2d4f02b0 Make data location explicit. 2019-04-16 23:22:08 +02:00
chriseth
2761aed1d3 Lazy-initialize string and bytes types. 2019-04-16 23:22:08 +02:00
chriseth
4656d7ca7d Change pre-created types to unique_ptr to avoid copying and moving. 2019-04-16 23:22:08 +02:00
Christian Parpart
58a45f2cb6 [libsolidity] TypeProvider: adds explicit uint256() accessor and removes default params in integerType(...). 2019-04-16 18:28:40 +02:00
Christian Parpart
59d4f54729 libsolidity: Be more restrictive to not allow any copy constructors at all in Type system.
This enforces us to be a little bit more historical in how to initialize
our std::array<>'s in TypeProvider.
2019-04-16 18:26:46 +02:00
Christian Parpart
a2a3b007f3 TypeProvider: storageType() to make all parameters explicit 2019-04-16 18:26:46 +02:00
Christian Parpart
bf43eebea9 libsolidity: Introducing TypeProvider API, for clear type system ownership. 2019-04-16 18:26:45 +02:00
chriseth
a61931c5da
Merge pull request #6512 from ethereum/smt_refactor_symbvars
[SMTChecker] Allow SymbolicVariable from smt::Sort
2019-04-16 15:45:08 +02:00
Mathias Baumann
efc8d79d53 Fix wrong location for inline asm blocks 2019-04-15 16:40:07 +02:00
Leonardo Alt
07fac9e381 [SMTChecker] Allow SymbolicVariable from smt::Sort 2019-04-15 14:52:46 +02:00
chriseth
bf5792f7ca
Merge pull request #6483 from ethereum/smt_support_mod
[SMTChecker] Support mod
2019-04-15 13:42:18 +02:00
chriseth
73ac8f6220
Merge pull request #6421 from ethereum/smt_fix_variable_usage
[SMTChecker] Refactor VariableUsage
2019-04-15 13:39:10 +02:00
Leonardo Alt
af9f16e014 [SMTChecker] Support mod 2019-04-12 12:39:25 +02:00
Daniel Kirchner
65991c0922
Merge pull request #6481 from ethereum/smt_inline_asm_warning
[SMTChecker] Show unsupported warning for asm blocks
2019-04-12 12:36:26 +02:00
Leonardo
dbc9442f9c
Merge pull request #6484 from sifmelcara/create-SourceReferenceFormatter-shortcut
Add a shortcut for formatting error information
2019-04-12 12:34:08 +02:00
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
mingchuan
f1374066af
Add shortcuts for formatting error information 2019-04-10 18:44:45 +08:00
Mathias Baumann
b4380a2137 Move convert functions to Yul module 2019-04-09 15:31:46 +02:00
Leonardo Alt
4fe303530a [SMTChecker] Show unsupported warning for asm blocks 2019-04-05 16:41:15 +02:00
Leonardo Alt
79d8a4e13a [SMTChecker] Refactor VariableUsage 2019-04-05 11:38:37 +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