Commit Graph

2799 Commits

Author SHA1 Message Date
Daniel Kirchner
77a9e91443 Enable yul optimizer by default. 2019-12-02 19:30:14 +01:00
Leonardo
a7d481fb94
Merge pull request #7851 from ethereum/smt_fix_function_type
[SMTChecker] Fix ICE for arrays and mappings of functions.
2019-11-30 13:15:08 +01:00
Leonardo
767ce4417f
Merge pull request #7850 from ethereum/smt_fix_typetype
[SMTChecker] Fix visit to IndexAccess that has type Type
2019-11-29 18:18:26 +01:00
Leonardo Alt
5adc2a40b9 [SMTChecker] Fix ICE for arrays and mappings of functions. 2019-11-29 18:06:44 +01:00
Leonardo Alt
9eda95caf9 [SMTChecker] Fix visit to IndexAccess that has type Type 2019-11-29 17:20:50 +01:00
Leonardo Alt
c09da092d2 [SMTChecker] Fix constructors with local vars 2019-11-29 16:59:15 +01:00
Leonardo Alt
84f806e75d Reenable push tests via Yul 2019-11-29 16:52:13 +01:00
Daniel Kirchner
7d1b0c6023 Fix Yul IR push 2019-11-28 18:11:38 +01:00
Leonardo Alt
a352abe00d [SMTChecker] Add support to constructors 2019-11-28 14:43:23 +01:00
chriseth
f7fc42d8c3
Merge pull request #7826 from ethereum/develop
Merge develop into develop_060
2019-11-28 13:37:19 +01:00
Leonardo Alt
240ff30878 [SMTChecker] Do not visit the name of a modifier invocation 2019-11-27 22:34:33 +01:00
chriseth
1ebcc757e1 Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-27 19:14:08 +01:00
Mathias Baumann
7bc6645218 Disallow use of virtual and private together 2019-11-27 18:52:41 +01:00
chriseth
0bb88dabb7 Restrict usage of plain "new". 2019-11-27 17:55:11 +01:00
chriseth
400667fddf Update tests after merge from develop. 2019-11-26 16:27:07 +01:00
chriseth
b0db64ff5b Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-26 16:19:35 +01:00
chriseth
41177bc75c
Merge pull request #7770 from ethereum/yul_string_format
[Yul] Format string literals back to quoted string literals
2019-11-26 15:51:54 +01:00
chriseth
0973ae751a Do not warn about enabled ABIEncoderV2 anymore. 2019-11-26 15:49:42 +01:00
Leonardo Alt
ce83bfb088 [Yul] Format string literals back to quoted string literals 2019-11-26 15:28:39 +01:00
Gaith Hallak
4a1e85436b Allow splitting string literals into multiple parts 2019-11-26 14:41:30 +03:00
Alex Beregszaszi
eedfafbbc4 Introduce callback context in libsolc 2019-11-22 11:42:39 +00:00
Leonardo Alt
ddc478e3e4 Add CallbackKind and use it for the SMT solver 2019-11-21 22:10:21 +00:00
chriseth
0201ff5a02
Merge pull request #7769 from ethereum/libsolc-doc
Document and clarify libsolc's interface
2019-11-21 22:57:32 +01:00
chriseth
a00f824479
Merge pull request #7773 from ethereum/develop
Merge develop into develop_060
2019-11-21 21:49:22 +01:00
Alex Beregszaszi
44c1f4a3bf Change the error message of empty callback/error in libsolc 2019-11-21 19:53:16 +00:00
chriseth
d5e9271592
Merge pull request #7350 from ethereum/array-length-rvalue
Make `length` member read-only
2019-11-21 19:22:42 +01:00
chriseth
8f2595957b
Merge pull request #7719 from ethereum/librarySignatuŕes
Add selector member to public and external library functions.
2019-11-20 18:43:14 +01:00
Leonardo Alt
72eff30778 Fix develop 060 merge 2019-11-20 13:49:40 +01:00
Leonardo Alt
389da5228e Merge remote-tracking branch 'origin/develop' into merge_develop_060 2019-11-20 12:27:40 +01:00
Erik Kundt
01705efb70 Adds and updates Yul tests for push() and pop(). 2019-11-20 12:04:47 +01:00
Daniel Kirchner
372df6b9e1 Implement array push and pop for yul and replace assignments in via yul tests. 2019-11-20 12:04:42 +01:00
chriseth
5deaac0849
Merge pull request #7740 from ethereum/istanbul
Enable support for Istanbul
2019-11-20 10:49:27 +01:00
Erik Kundt
c184fe8e5b Adjusts end-to-end tests to read-only array length. 2019-11-19 21:11:14 +01:00
Erik Kundt
7d6c0a50c2 Adjusts semantic tests to read-only array length. 2019-11-19 21:11:14 +01:00
Erik Kundt
d05afb34d6 Adjusts syntax tests to read-only array length. 2019-11-19 21:11:09 +01:00
chriseth
d696b3c92b
Merge pull request #7743 from ethereum/fixice-7558
Disallow conversion from ``super``
2019-11-19 18:52:33 +01:00
Mathias Baumann
23cad71c88 Disallow conversion from `super` 2019-11-19 17:14:11 +01:00
Alex Beregszaszi
17ed0f0898 Set costs to 0 for unreachable cases in GasCosts tests 2019-11-19 17:09:18 +01:00
Alex Beregszaszi
17f6a5a060 Update test expectations in GasCosts for ABIEncoderV2 2019-11-19 17:09:18 +01:00
Alex Beregszaszi
da50285ae3 Update test expectations in GasCostsTests 2019-11-19 17:09:18 +01:00
Alex Beregszaszi
cbb08ae3db Add semantic test for SELFBALANCE in inline assembly 2019-11-19 17:09:18 +01:00
Alex Beregszaszi
fc2af72a3d Add semantic test for CHAINID in inline assembly 2019-11-19 17:09:18 +01:00
Alex Beregszaszi
840aba8929 Add new gas price for deployed bytecode (EIP2028) 2019-11-19 17:09:18 +01:00
Erik K
94272d44aa
Merge pull request #7745 from ethereum/develop
Merge develop into develop_060
2019-11-19 15:30:31 +01:00
chriseth
6797879128
Merge pull request #7647 from ethereum/virtual-5424
Implement virtual keyword
2019-11-19 13:21:27 +01:00
Erik Kundt
8faa6ffeaf Adjusts syntax and semantic tests to 0.6.0 2019-11-19 12:10:07 +01:00
Leonardo Alt
e500a262ea Fix SMTChecker tests for 060 2019-11-19 10:58:59 +01:00
Leonardo Alt
d818746e0c [SMTChecker] Fix ICE in abi.decode 2019-11-18 13:15:10 +01:00
Daniel Kirchner
a0ae36ba70 Add selector member to public and external library functions. 2019-11-15 16:12:29 +01:00
chriseth
216e1749f4 Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-14 13:42:46 +01:00
chriseth
766309b6e4
Merge pull request #7713 from ethereum/no-lib-instance-7625
Disallow variables of library types
2019-11-14 13:39:56 +01:00
Mathias Baumann
0891b9451b Disallow variables of library types 2019-11-14 13:20:31 +01:00
chriseth
a667384517
Merge pull request #7712 from ethereum/fixIstanbulAsmParsing
Fix assembly parsing by passing evm version.
2019-11-14 13:20:15 +01:00
chriseth
b099374d8c Fix assembly parsing by passing evm version. 2019-11-14 13:06:36 +01:00
Mathias Baumann
caa127e2a8 Make `abstract` keyword instead of reserved 2019-11-14 11:49:39 +01:00
Mathias Baumann
5b8ff78176 Implement virtual keyword 2019-11-14 11:49:39 +01:00
Leonardo Alt
8efacfb545 [SMTChecker] Fix ICE in string literal to fixed bytes implicit conversion 2019-11-13 22:25:18 +01:00
Leonardo Alt
e3652627fd [SMTChecker] Fix ICE in CHC when function used as argument 2019-11-13 15:11:30 +01:00
Mathias Baumann
7d4e4b6088 Parse "virtual" keyword 2019-11-13 13:28:01 +01:00
chriseth
c0cf96cbc1
Merge pull request #7699 from ethereum/test-require-str
Test `require` with string literals
2019-11-13 12:20:23 +01:00
djudjuu
e437443645 Inline assembly to AST json export 2019-11-13 12:13:22 +01:00
Mathias Baumann
c74b1daef2 Test require with string literals
fixes #6651
2019-11-13 12:01:25 +01:00
Daniel Kirchner
ce7268272d Allow obtaining the address of a library by conversion to `address`. 2019-11-12 17:09:13 +01:00
chriseth
a7e133b95c
Merge pull request #7696 from ethereum/semanticsTestsLibraryDeployment
Add support for external libraries to extracted semantics tests.
2019-11-12 15:50:36 +01:00
Leonardo
684ccea6f0
Merge pull request #7697 from ethereum/develop
Merge develop into develop_060
2019-11-12 15:30:34 +01:00
Daniel Kirchner
c7e3318dba Add support for external libraries to extracted semantics tests. 2019-11-12 15:19:04 +01:00
Leonardo Alt
dc2dff839c [SMTChecker] Remove flaky tests until we fix the SMTChecker tests 2019-11-12 12:58:42 +01:00
Daniel Kirchner
8148619d5b Merge branch 'develop' into develop_060 2019-11-12 10:32:41 +01:00
Leonardo Alt
b323134ef0 [SMTChecker] Update test expectations for z3 4.8.6 2019-11-11 18:43:59 +01:00
chriseth
2e5a42836c
Merge pull request #7681 from ethereum/develop
Merge develop into develop_060
2019-11-11 16:42:03 +01:00
Leonardo Alt
5dacaf57bc Fix ICE in FixedBytes IndexAccess 2019-11-08 17:29:40 +01:00
chriseth
138ee647f1 Provide different options for reason strings. 2019-11-07 14:13:53 +01:00
Daniel Kirchner
108992c335
Merge pull request #7640 from ethereum/smt_fix_060
[SMTChecker] Fix override tests
2019-11-07 14:10:10 +01:00
chriseth
c0b27d0bc1
Merge pull request #7648 from ethereum/inlineAssemblyShadowing
Error on shadowing and invalid names in inline assembly
2019-11-07 13:31:09 +01:00
Daniel Kirchner
0556f64722 Analyze inline assembly variable declarations for invalid or shadowing names. 2019-11-07 13:04:37 +01:00
Leonardo Alt
fc945880d1 [SMTChecker] Fix override tests 2019-11-07 11:49:32 +01:00
chriseth
21e65076b3
Merge pull request #7650 from ethereum/develop
Merge develop into develop_060
2019-11-06 21:56:55 +01:00
cd10012
a94d22e5fe Add documentation for extractReturnParameterDocs 2019-11-06 21:45:01 +01:00
cd10012
16fe59b7b4 Implement @erak review notes by creating function and adding constructor test
Update 060 doc with natspec change

Add two more tests with mixed usage

Fix solc-js

fix changelog
2019-11-06 21:44:59 +01:00
cd10012
f598b1515f Give unamed parameters unique keys and update tests to new spec
Fix whitespace
2019-11-06 21:44:34 +01:00
cd10012
18fe693fdd Add unamed return param test and check size in conditional 2019-11-06 21:44:09 +01:00
cd10012
b3ae601e88 Refactor to have multiple return params 2019-11-06 21:44:09 +01:00
Leonardo Alt
10e70b8603 [SMTChecker] Support inheritance and resolve overrides 2019-11-06 11:00:06 +01:00
chriseth
4d99bf68f4
Merge pull request #7638 from ethereum/develop
Merge develop into develop_060
2019-11-05 17:33:54 +01:00
chriseth
5388c919f0 Some changes to "abstract". 2019-11-05 13:55:31 +01:00
chriseth
cac2e843e6
Merge pull request #7618 from ethereum/addMoreAbstractKeywordsInTests
Add some more abstract keywords in test to make sure the correct property is tested.
2019-11-05 13:38:21 +01:00
Leonardo Alt
c5e081dc8c [SMTChecker] Refactor CHC loops and add if blocks 2019-11-05 09:28:59 +01:00
chriseth
46ac16d25c Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-04 19:09:11 +01:00
Leonardo
1eac3d1d83
Merge pull request #7582 from ethereum/smt_multid_array_assignment
[SMTChecker] Support assignments to m-d arrays and mappings
2019-11-04 17:37:33 +01:00
chriseth
7c258873bd Add some more abstract keywords in test to make sure the correct property is tested. 2019-11-04 17:26:38 +01:00
Daniel Kirchner
3321fc56ea Split fallback function and introduce "fallback()" and "receive()" syntax. 2019-11-04 17:17:58 +01:00
chriseth
5392532d70 Fix override error message. 2019-11-04 13:37:23 +01:00
Alexander Arlt
c908c16acd Remove InternalCompilerError on abstract contract instantiation. 2019-11-01 14:54:47 -05:00
Alexander Arlt
cd3ad73b5a Update tests. 2019-11-01 14:54:47 -05:00
Alexander Arlt
e87924a96e Update soltest related tests. 2019-11-01 14:54:47 -05:00
Alexander Arlt
54c5e604e5 Add new tests. 2019-11-01 14:54:47 -05:00
Mathias Baumann
6c6a9054b2 Implement override checking 2019-10-30 17:31:33 +01:00
Mathias Baumann
20e227afb5 Ensure list of overrides consists of contracts 2019-10-30 17:31:33 +01:00
Mathias Baumann
b76106fc4a Parse override keyword for modifier definitions 2019-10-30 17:31:33 +01:00
chriseth
499fe57d33 Tests 2019-10-29 14:32:16 +01:00
Leonardo Alt
8a42e3f87a [SMTChecker] Support assignments to m-d arrays and mappings 2019-10-28 17:27:39 +01:00
chriseth
edf1e83fda Merge remote-tracking branch 'origin/develop' into develop_060 2019-10-28 15:21:49 +01:00
chriseth
607bf24afe
Merge pull request #7386 from ethereum/060-strict-inline-assembly
Defaulting to strict inline assembly (instead of loose)
2019-10-28 12:48:58 +01:00
chriseth
9719f099aa
Merge pull request #7551 from ethereum/060-cxx17-std-optional
Use `std::optional<>` rather than `boost::optional<>`
2019-10-28 12:17:31 +01:00
chriseth
07c67b98f6 Merge remote-tracking branch 'origin/develop' into HEAD 2019-10-28 12:12:52 +01:00
Christian Parpart
df729b3084 Make use of C++17 std::optional<> instead of boost::optional<>. 2019-10-28 11:39:30 +01:00
Christian Parpart
30a99e0df4 test: Adapts InlineAssembly test case for jump instruction (which doesn't "exist" in strict assembly). 2019-10-28 10:03:16 +01:00
Henry Lee
24cbb4dd17 Treat magic variables as unknown identifiers in inline assembly
This fixes #4575. For keywords such as 'super' and 'this', will be
treated as unknown identifiers.
2019-10-28 14:59:50 +11:00
Christian Parpart
f05718ef5d Syntax tests: Adapted to changes. 2019-10-25 15:01:27 +02:00
Christian Parpart
e40c498260 Adapting the tests to strict inline assembly. 2019-10-25 15:01:25 +02:00
chriseth
15e39f7d65
Merge pull request #7556 from ethereum/ice-7550
Check for use of modifiers in invalid contexts
2019-10-24 10:32:49 +02:00
Mathias Baumann
c3e8023ad5 Fix wrong assert in overflow check 2019-10-23 14:59:34 +02:00
Mathias Baumann
8c5d1da5a5 Check for use of modifiers in invalid contexts 2019-10-23 12:36:20 +02:00
Mathias Baumann
ad7cf42aad Add missing dots in deprecation warning 2019-10-23 12:23:21 +02:00
Mathias Baumann
6ac12afd06 Disallow call of same-class-ctor as modifier 2019-10-23 10:29:41 +02:00
Mathias L. Baumann
7e01696030
Merge pull request #7554 from ethereum/develop
Merge develop into develop_060
2019-10-21 17:05:12 +02:00
chriseth
e626437d77
Merge pull request #7538 from ghallak/7198-remove-padded-zeros
Remove trailing zeros from the output of BytesUtils::formatBytes
2019-10-16 15:55:02 +02:00
chriseth
ebfe7391ff Use selfbalance for `address(this).balance`. 2019-10-16 14:25:56 +02:00
Gaith Hallak
8a8f553e4d Remove trailing zeros from the output of BytesUtils::formatBytes 2019-10-16 14:42:12 +03:00
Gaith Hallak
02ae43aad4 Fix the documentation for TestFunctionCall::format 2019-10-16 14:42:12 +03:00
chriseth
cea6d6df8b Merge remote-tracking branch 'origin/develop' into develop_060 2019-10-05 13:08:44 +02:00
Gaith Hallak
51ae296cac Modify the expectation files in ASTJSON tests. 2019-10-02 22:31:12 +02:00
Gaith Hallak
6c7e849431 Modify the expectation files in ASTJSON tests
The following changes to expecation files are required for the ASTJSON
tests to pass:

* remove trailing spaces in ASTJSON tests
* replace indention tabs with 2 spaces in ASTJSON tests
* remove the space between the key and the colon in ASTJSON tests
2019-10-02 19:14:41 +03:00
chriseth
f884373142 Merge branch 'origin/develop' into develop_060 2019-10-02 16:29:36 +02:00
Daniel Kirchner
7202ebb5b2 Fix internal compiler error for arrays of recursive structs. 2019-10-01 16:51:14 +02:00
Christian Parpart
00d7dac15f Fixes source location in warning for shadowing import delcarations. 2019-09-30 11:45:46 +02:00
Leonardo Alt
b40895c100 Fix try catch test 2019-09-26 18:27:09 +02:00
Leonardo
ca714a2d3d
Merge pull request #7485 from ethereum/develop
Merge develop into develop_060
2019-09-26 15:43:12 +02:00
Christian Parpart
f85f6ba7e0 Fixes doxygen style multiline comment parsing for files with CRLF as line terminators. 2019-09-25 12:59:46 +02:00
chriseth
cda23d63e9
Merge pull request #7458 from ethereum/fixErrorMessage
Fix error message about accessing storage pointers.
2019-09-24 15:11:03 +02:00
Leonardo
9c23f35bec
Merge pull request #7462 from ethereum/version-060
Build version 0.6.0
2019-09-24 12:48:00 +02:00
Erik Kundt
e3a29ffcd3 Updates tests to version 0.6.0. 2019-09-24 12:01:14 +02:00
chriseth
973e4ca90a
Merge pull request #7453 from ethereum/smt_lib_const_array
[SMTChecker] Add "as const: function to SMTLib2Interface
2019-09-24 11:02:34 +02:00
chriseth
ca21659749 Fix error message about accessing storage pointers. 2019-09-24 10:52:02 +02:00
chriseth
f3c4f466f6 Merge remote-tracking branch 'origin/develop' into develop_060
Had to adjust gas costs during merge.
2019-09-24 10:28:22 +02:00
chriseth
b5d6d5fcf9 Create. 2019-09-23 17:22:56 +02:00
chriseth
b5bc52f2a7 Control flow for try statements. 2019-09-23 17:22:56 +02:00
chriseth
644a402166 Tests. 2019-09-23 17:22:56 +02:00
chriseth
bfc8fd23ac Document chainid and selfbalance. 2019-09-19 15:35:37 +02:00
Leonardo Alt
ed9674be8d [SMTChecker] Add as const function to SMTLib2Interface 2019-09-18 22:57:14 +02:00
Leonardo Alt
43d6e00b14 Add push() for dynamic storage arrays 2019-09-17 13:47:33 +02:00
chriseth
7a79742f3d Out of body again. 2019-09-17 12:30:15 +02:00
chriseth
5b3efee93b
Merge pull request #7442 from ethereum/develop
Merge develop into develop_060
2019-09-17 12:16:27 +02:00
Leonardo Alt
eab9f65610 Fix ICE when pop dyn storage array of mapping 2019-09-16 16:33:17 +02:00
Leonardo Alt
d685554980 Create option for metadata hash 2019-09-13 18:59:12 +02:00
Leonardo Alt
e1c238e25f [SMTChecker] Add loop support 2019-09-13 12:40:53 +02:00
Daniel Kirchner
c72d1ffb65
Merge pull request #7421 from ethereum/develop
Merge develop into develop_060
2019-09-13 12:14:02 +02:00
Daniel Kirchner
4782c800ec Initial introduction of array slices with partial implementation for dynamic calldata arrays. 2019-09-13 10:57:53 +02:00
Erik Kundt
e92b921123 [isoltest] Adds support for fallback and ether functions. 2019-09-13 10:55:46 +02:00
chriseth
50ce3b0ac8
Merge pull request #7420 from ethereum/develop
Merge develop into develop_060
2019-09-12 22:06:55 +02:00
chriseth
4f80117eef Use builtin iszero for for loop condition rewriting. 2019-09-12 10:26:16 +02:00
Erik Kundt
4162c3d7af [isoltest] Adds fallback formatting. 2019-09-11 15:45:53 +02:00
chriseth
acf10ef60f
Merge pull request #7393 from ethereum/develop
Merge develop into 0.6.0
2019-09-10 12:27:02 +02:00
Leonardo Alt
5cfe0b7670 Allow explicit conversion from address to address payable 2019-09-09 23:46:00 +02:00
Erik Kundt
5e12e0cf27 [isoltest] Fixes auto-update for revert. 2019-09-09 22:46:43 +02:00
chriseth
a272506a34
Merge pull request #7374 from ethereum/hexStringUnderscores
Allow  underscores in hex strings.
2019-09-09 11:48:46 +02:00
Daniel Kirchner
6f3341a204 Allow underscores in hex strings. 2019-09-06 17:58:35 +02:00
Daniel Kirchner
f4d990e5be Drop constant and payable fields from ABI. 2019-09-06 14:42:09 +02:00
Daniel Kirchner
9bcaeef39f Fix test wrt changed json ABI sorting. 2019-09-05 13:39:23 +02:00
chriseth
fd687f50ff
Merge pull request #7353 from ethereum/develop
Update 0.6.0 from develop
2019-09-04 20:21:37 +02:00
krk
33f7f960cf Allow exponentials with signed base and unsigned power. 2019-09-04 17:32:47 +02:00
chriseth
8485a1abec Change ABI sorting order. 2019-09-04 13:06:09 +02:00
Leonardo Alt
a774b2d905 [SMTChecker] Zero-initialize arrays 2019-09-02 22:37:30 +02:00
chriseth
c499758cd8
Merge pull request #7326 from ethereum/develop
Merge develop into 0.6.0 branch.
2019-09-02 16:11:20 +02:00
Daniel Kirchner
467d420f7e ABI and AST tests. 2019-09-02 12:23:21 +02:00
Daniel Kirchner
2b938d703c Allow global enum definitions. 2019-09-02 11:52:51 +02:00
Daniel Kirchner
fae0e10d26 Import tests. 2019-09-02 11:17:57 +02:00
Daniel Kirchner
872d21f527 Allow global struct definitions. 2019-09-02 11:17:42 +02:00
Leonardo Alt
214e5c6369 [SMTChecker] Fix index access type type error 2019-08-27 16:39:19 +02:00
Mathias Baumann
24716404f8 Parse override keyword 2019-08-26 17:34:21 +02:00
Mathias L. Baumann
e1bb4b9f81
Merge pull request #7280 from ethereum/isoltest-empty-revert
[isoltest] Support empty revert message
2019-08-26 11:45:36 +02:00
Erik Kundt
755dae5d66 [isoltest] Supports empty revert message. 2019-08-26 11:06:30 +02:00
Mathias L. Baumann
502bf01be2
Merge pull request #7278 from ethereum/develop
Merge develop into develop_060
2019-08-26 10:26:48 +02:00
Leonardo Alt
c27235b2f5 [SMTChecker] Adapt division test for Z3 only 2019-08-23 17:33:29 +02:00
Mathias Baumann
0e3ff25b4e Make sure json output array order is consistent
The source of the "contractDependencies" value was an std::map, thus
order was more or less random.
2019-08-19 17:42:03 +02:00
Daniel Kirchner
4354ef2ef4 Add update suggestion. 2019-08-19 14:58:05 +02:00
Daniel Kirchner
20b23e124b Add test case. 2019-08-19 14:56:04 +02:00
Daniel Kirchner
9f6fff2120 Replace casting of external functions to address by a member named "address". 2019-08-19 14:56:04 +02:00
Daniel Kirchner
aa2167b208 Extract some import tests. 2019-08-19 14:45:26 +02:00
Daniel Kirchner
6ed219ebe8 Support multiple sources for syntax tests. 2019-08-19 14:45:26 +02:00
Daniel Kirchner
4a65c5ebaa Compile succeeding syntax tests. 2019-08-16 17:14:49 +02:00
Leonardo Alt
1a70a46f9b [CHC] Add function blocks and check asserts 2019-08-15 12:25:15 +02:00
chriseth
2508cbc1eb
Merge pull request #7095 from ethereum/isoltest-failure-reason
[isoltest] Support FAILURE with reason
2019-08-15 11:37:56 +02:00
Erik Kundt
6c73bc5bac [isoltest] Refactors parameter formatting. 2019-08-14 21:28:43 +02:00
Erik Kundt
18157f5a49 [isoltest] Splits smoke test into separate files. 2019-08-14 21:28:43 +02:00
Erik Kundt
30483acc42 [isoltest] Support FAILURE with reason. 2019-08-14 21:28:43 +02:00
Daniel Kirchner
b0a5666b43 Better error messages when writing to expressions that cannot be written to. 2019-08-14 17:59:48 +02:00
Leonardo
ffe906129f
Merge pull request #7210 from ethereum/smt_fix_type_mismatch
[SMTChecker] Support StringLiteral type
2019-08-12 14:32:43 +02:00
Leonardo Alt
955b97097c [SMTChecker] Relax expectations for complex nonlinear tests 2019-08-11 22:20:31 +02:00
Leonardo Alt
360f868836 [SMTChecker] Fix literal string type mismatch 2019-08-10 21:51:46 +02:00
Leonardo Alt
4214cd1354 [SMTChecker] Fix ICE when reporting cex concerning state vars from different source files 2019-08-10 20:56:52 +02:00
Leonardo Alt
7b22496b1f [SMTChecker] Fix ICE when inlining functions that use state vars and are in a different source 2019-08-09 17:50:52 +02:00
Daniel Kirchner
77729023a8 Enable asan workaround in optimizer test for gcc as well. 2019-08-09 16:11:54 +02:00
Bhargava Shastry
a20dc624d4 Selectively disable time sensitive check in the constant_optimization_early_exit unit test for address sanitizer builds. 2019-08-08 17:35:46 +02:00
chriseth
c4638cc5cb Remove mention of IPC. 2019-08-08 17:35:46 +02:00
chriseth
3dec3af638 Use evmone for testing. 2019-08-08 17:35:44 +02:00
chriseth
9955c51769
Merge pull request #7077 from ethereum/sol-yul-delete-fixed-storage
[Sol->Yul] Implement delete for fixed-sized storage arrays
2019-08-08 16:47:16 +02:00
mingchuan
15631a7fbe Split calldataEncodedSize into calldataEncodedSize, calldataEncodedTailSize and calldataHeadSize and fix all usages. 2019-08-08 15:52:21 +02:00
Mathias Baumann
e072885031 [Sol->Yul] Implement delete for fixed-sized storage arrays 2019-08-07 18:28:52 +02:00
chriseth
d44f680a51
Merge pull request #7091 from ethereum/isoltest-value-format-fix
[isoltest] Fix (aligned) hex parsing and formatting
2019-08-07 17:55:37 +02:00
Erik Kundt
5ca991ac81 [isoltest] Allows odd-sized hex literals. 2019-08-07 17:19:27 +02:00
chriseth
c8f04b88bf
Merge pull request #7176 from ethereum/decodeMemoryLocation
Always copy dynamically-sized memory arrays during CompilerUtils::abiDecode
2019-08-07 15:42:14 +02:00
Erik Kundt
fe15db6537 [isoltest] Fixes exception handling while parsing literals. 2019-08-07 12:22:52 +02:00
Erik Kundt
e206ad6c24 [isoltest] Fixes hex (plus alignment) formatting. 2019-08-07 12:15:10 +02:00
Daniel Kirchner
efb34bdf22 Always copy dynamically-sized memory arrays during CompilerUtils::abiDecode. 2019-08-06 14:11:14 +02:00
Mathias Baumann
e4ad0e8e6d Fix gcc9 errors 2019-08-06 12:12:09 +02:00
chriseth
24074d8bac
Merge pull request #7172 from ethereum/smt_fix_return_tuple
[SMTChecker] CHC create function returned expressions
2019-08-05 16:48:13 +02:00
chriseth
42290f912b
Merge pull request #7052 from ethereum/isoltest-update-improvements
[isoltest] Update improvements (support for missing types)
2019-08-05 16:45:06 +02:00
Erik Kundt
f914415fb2 [isoltest] Updates type retrieval from ABI and its formatting. 2019-08-05 16:15:07 +02:00
Erik Kundt
38285b33d7 [isoltest] Prints bytes result if expectations mismatch. 2019-08-05 15:11:43 +02:00
Erik Kundt
07051f41d2 [isoltest] Reworks (default) ABI Type construction. 2019-08-05 15:00:04 +02:00
Erik Kundt
d9b98bf7af [isoltest] Cleans up BytesUtils. 2019-08-05 15:00:04 +02:00
Erik Kundt
a7a8ba73f9 [isoltest] Moves error types to dedicated file. 2019-08-05 15:00:04 +02:00
Leonardo Alt
369f8cd97f [SMTChecker] CHC create function return variables 2019-08-05 12:36:51 +02:00
Leonardo
11632966c9
Merge pull request #7171 from ethereum/smt_fix_compound_bitwise
[SMTChecker] Fix ICE compound bitwise op inside branch
2019-08-05 12:15:01 +02:00
chriseth
9b375edfe3
Merge pull request #6787 from ethereum/sol2yul-ctor-code
Improve constructor-code codegen (wrt. state variable initialization)
2019-08-05 11:50:34 +02:00
Christian Parpart
235638b3fc Implements constructor code for state variables. 2019-08-05 11:23:01 +02:00
Leonardo Alt
d5fb8cf58a [SMTChecker] Fix ICE compound bitwise op inside branch 2019-08-02 20:02:39 +02:00
Leonardo Alt
7b5863e583 Do not erase knowledge about storage pointers when another pointer is assigned 2019-08-02 13:09:06 +02:00
chriseth
7421d85346
Merge pull request #7094 from ethereum/isoltest-arrow-optional
[isoltest] Introduce shorthand declaration: make `->` optional.
2019-08-01 15:42:42 +02:00
chriseth
742b4271fd
Merge pull request #7159 from ethereum/always_demand_tests
Make sure a semantic test file always contains function calls
2019-08-01 15:12:13 +02:00
chriseth
2a25d7461f
Merge pull request #7123 from rocky/tolerate-pragma-mismatch
A pragma version mismatch is not fatal if ...
2019-08-01 14:48:24 +02:00
chriseth
6730a59f74
Merge pull request #7157 from ethereum/fix-7155
FunctionType: Return correct stacksize for transfer/send
2019-08-01 14:40:35 +02:00
Mathias Baumann
c920b50ebe Make sure a semantic test file always contains function calls
Because if not, the code isn't even compiled.
2019-08-01 14:02:33 +02:00
Mathias Baumann
e887c06f6b FunctionType: Return correct stacksize for transfer/send 2019-08-01 13:56:09 +02:00
Leonardo Alt
44d7c6976a Erase pointer knowledge properly inside loops 2019-07-30 12:47:50 +02:00
Leonardo
00accd9daa
Merge pull request #7141 from ethereum/smt_fix_json
[SMTChecker] Reset SSA index to 0 instead of increasing in context reset
2019-07-29 10:20:06 +02:00
Leonardo Alt
847f574e22 [SMTChecker] Fix ICE when inlining function with tuple expression 2019-07-26 16:29:29 +02:00
Leonardo Alt
6bcbeb1d23 [SMTChecker] Reset SSA index to 0 instead of increasing in context reset 2019-07-25 14:16:34 +02:00
Christian Parpart
b6446aa615 Extracting more end-to-end tests. 2019-07-22 16:31:46 +02:00
Erik Kundt
41fb6f4ff8 isoltest: Removes additional whitespaces from output. 2019-07-22 13:43:20 +02:00
Erik Kundt
8c51a089d7 isoltest: Makes -> declaration optional. 2019-07-22 13:25:11 +02:00
Christian Parpart
58d8243921 isoltest: Fixes parsing and printing strings with *basic* escape sequences in it.
We explicitly did not implement a fully conformant ANSI escape sequence
parser but only what is needed for now.
2019-07-22 11:32:17 +02:00
Leonardo
508cf66da2
Merge pull request #7062 from ethereum/smt_chc_checker
[SMTChecker] Add skeleton for CHC
2019-07-19 15:41:43 +02:00
Leonardo Alt
03cc124f32 Add CHC skeleton 2019-07-19 11:52:05 +02:00
chriseth
a30be56c27 Additional type info for ABI. 2019-07-18 16:54:11 +02:00
rocky
f9b631f410 A pragma version mismatch is not fatal if ...
error recovery is desired.

Fixes #7085
2019-07-17 19:01:01 -04:00
chriseth
147f736f10
Merge pull request #7092 from ethereum/isoltest-parser-linenumbers
[isoltest] Add source location to parser errors
2019-07-16 10:09:15 +02:00
Erik Kundt
2a1473fd30 Adds line numbers to parser errors in isoltest. 2019-07-15 14:16:07 +02:00
Erik Kundt
e269a0ff70 Adds constructor calls with ether value to isoltest. 2019-07-13 12:42:25 +02:00
Mathias Baumann
d264e3e0ba [Sol->Yul] Implement getter functions 2019-07-10 13:42:39 +02:00
Mathias Baumann
37f04976a2 [Sol->Yul] Implement keccak256 2019-07-09 18:25:07 +02:00
chriseth
15eb8fec50
Merge pull request #7015 from ethereum/sol-yul-arrays
[Sol->Yul] Implement uint256[] memory arrays
2019-07-09 17:34:46 +02:00
Mathias Baumann
0f24fcea17 [Sol->Yul] Implement uint256[] memory arrays 2019-07-09 15:36:02 +02:00
chriseth
479b843067
Merge pull request #7048 from ethereum/soltest-refactoring
[isoltest] Types and formatting refactoring
2019-07-09 12:50:15 +02:00
chriseth
8d006d2017
Merge pull request #7068 from ethereum/asmConstNoValue
Cope with constants without value in inline assembly.
2019-07-09 12:13:56 +02:00
chriseth
9cb9021c36 Cope with constants without value in inline assembly. 2019-07-09 11:12:13 +02:00
chriseth
04bad01ab1
Merge pull request #7063 from ethereum/EndToEndTest-extractions-2
Extracting more end-to-end tests.
2019-07-08 16:15:22 +02:00
Christian Parpart
a9a56bc6dd
Extracting more end-to-end tests. 2019-07-08 16:04:52 +02:00
Leonardo Alt
be663680d4 [SMTChecker] Clear encoding context before engine starts 2019-07-08 11:56:04 +02:00
Erik Kundt
d06be2c53f Restructures alignment and bytes utils in isoltest. 2019-07-04 19:15:43 +02:00
Erik Kundt
de34f7712d Separates types and conversion functions in soltest. 2019-07-04 14:11:07 +02:00
Leonardo Alt
934e00d235 [SMTChecker] SymbolicVariables use EncodingContext to declare SMT vars 2019-07-03 16:05:56 +02:00
chriseth
2b91022b25 Fix view/pure checker for access to base. 2019-07-03 11:19:57 +02:00
chriseth
a4ef435c07 Automated ABI Json tests. 2019-07-02 18:11:49 +02:00
chriseth
60525dbf52
Merge pull request #7026 from ethereum/asmConstants
Support direct constants in inline assembly.
2019-07-02 14:21:24 +02:00
chriseth
e542e46163
Merge pull request #7022 from ethereum/smt_create_expr
[SMTChecker] Always create symbolic expression
2019-07-02 14:07:24 +02:00
chriseth
cdd137e3d1 Support constant numbers in inline assembly. 2019-07-02 14:01:05 +02:00
chriseth
ca10b59b25
Merge pull request #7020 from ethereum/smt_fix_callstack_message
[SMTChecker] Fix wrong assertion in callstack message
2019-07-02 13:47:49 +02:00
Leonardo Alt
fb3c85633b Always create symbolic expression 2019-07-01 16:25:33 +02:00
Leonardo Alt
75663dc91e [SMTChecker] Fix require with message 2019-07-01 16:17:06 +02:00
Leonardo Alt
6606a13ed2 [SMTChecker] Remove unsound assertion (too strong) 2019-07-01 16:16:39 +02:00
chriseth
22776cddcd
Merge pull request #7025 from ethereum/EndToEndTest-extractions-1
Extracting some Solidity end-to-end tests.
2019-07-01 15:54:09 +02:00
Christian Parpart
62f6e4bad3 Extracting some Solidity end-to-end tests. 2019-07-01 15:37:46 +02:00
Leonardo Alt
3cb4ed83c1 [SMTChecker] Split SMTChecker into SMTEncoder and BMC 2019-07-01 15:05:03 +02:00
chriseth
8c65a2383f
Merge pull request #7014 from ethereum/constantOptDirtyScratch
Add test for constant optimization with dirty scratch space.
2019-06-27 16:17:31 +02:00
chriseth
3be21800ac
Merge pull request #6683 from ethereum/updateSwarm
Update swarm hash.
2019-06-27 13:18:29 +02:00
chriseth
89f0e1e6da Use updated swarm hash. 2019-06-27 12:49:06 +02:00
chriseth
aa11ad7d0a Update swarm hash. 2019-06-27 12:48:51 +02:00
chriseth
55bf1b547e Add test for constant optimization with dirty scratch space. 2019-06-27 12:15:49 +02:00
Leonardo Alt
a28b84fdc3 [SMTChecker] Add a more general VerificationTarget 2019-06-27 10:31:50 +02:00
chriseth
b4a0a79398
Merge pull request #6993 from ethereum/smt_false_positives
[SMTChecker] Remove overflow check for assignments
2019-06-26 13:06:31 +02:00
chriseth
f58bd5551e Test for sign bit chopping. 2019-06-25 13:00:02 +02:00
Leonardo Alt
48d6729164 [SMTChecker] Remove overflow check for assignments 2019-06-24 17:58:56 +02:00
Mathias Baumann
5f072d30df Enable yul for more end to end tests 2019-06-24 16:06:22 +02:00
chriseth
350631ae0d
Merge pull request #6940 from ethereum/sol-yul-storage-array-index
[Sol->Yul] Implement index access for storage arrays
2019-06-24 12:49:19 +02:00
Mathias Baumann
1dd63f416e [Sol->Yul] Implement index access for storage arrays 2019-06-20 16:14:51 +02:00
chriseth
9bb7160c4c
Merge pull request #6958 from sifmelcara/fix-abiencoderv2-codegen
Fix incorrect abi encoding of storage array of data type that occupy multiple storage slots
2019-06-20 13:08:42 +02:00
Daniel Kirchner
fcd3410f26 Implement checked mod for sol->yul code generation. 2019-06-20 12:30:32 +02:00
Daniel Kirchner
a5b9f634ef Implement signed multiplication for sol->yul code generation. 2019-06-20 12:30:30 +02:00
Daniel Kirchner
5f6af8b374 Implement signed subtraction for sol->yul code generation. 2019-06-20 12:16:56 +02:00
Daniel Kirchner
88988af561 Implement signed addition for sol->yul code generation. 2019-06-20 11:42:50 +02:00
Mathias Baumann
910cb8d329 [Sol->Yul] Implement .length for storage arrays 2019-06-19 18:09:23 +02:00
mingchuan
13c1409669
Add test case that abi.encode nested storage arrays 2019-06-19 10:46:47 +08:00
rocky
1a7e09ab7a Add errorRecovery boolean to StandardCompiler 2019-06-18 15:54:05 -04:00
rocky
ca3afea1d7 Add Steve Johnson-style parser recovery rules:
SourceUnit = Error $
    Block = '{' Error '}'
    ContractDefinition = '{' Error '}'
    Statement = Error ';'

Co-Authored-By: chriseth <chris@ethereum.org>
2019-06-17 14:47:07 +02:00
Daniel Kirchner
4d38df6920 Set state mutability of function type members `gas and value` to pure. 2019-06-13 18:27:53 +02:00
Leonardo
d2019f49ea
Merge pull request #6906 from ethereum/delegatecall_value_msg
Improve error message for delegatecall.value
2019-06-12 21:14:54 +02:00
Daniel Kirchner
2849169bff
Merge pull request #6909 from ethereum/yul-delete-operation
[Sol->Yul] Make IRStorageItem work with dynamic offsets
2019-06-12 16:46:00 +02:00
Mathias Baumann
9e23d6d05e [Sol->Yul] Compile some tests with yul 2019-06-11 17:44:36 +02:00
Daniel Kirchner
bd1f65d609
Merge pull request #6888 from anurag-git/anurag_semantic_test_update
New semantic tests extracted
2019-06-11 10:50:10 +02:00
Anurag Dashputre
60332c6469 Extract semantic tests for
1. Transaction Status
2. Empty Contract
3. Smoke test for Range
2019-06-09 14:46:02 +02:00
Daniel Kirchner
8e20a5e59a Allow extracted semantics tests to run both with and without Yul. 2019-06-06 20:19:16 +02:00
Daniel Kirchner
6368cd4c82 AsmParser: disallow trailing commas in function call arguments. 2019-06-06 13:16:27 +02:00
Leonardo Alt
b7634faa3d Improve error message for delegatecall.value 2019-06-06 12:55:12 +02:00
Leonardo Alt
d9ce9cab99 [SMTChecker] Use smtlib's implies instead of \!a or b 2019-06-04 14:23:44 +02:00
chriseth
4ee703e6e5 Revert "Add Steve Johnson-style parser recovery rules:"
This reverts commit 97f8ee0d1b.
2019-05-28 18:09:24 +02:00
rocky
97f8ee0d1b Add Steve Johnson-style parser recovery rules:
SourceUnit = Error $
    Block = '{' Error '}'
    ContractDefinition = '{' Error '}'
    Statement = Error ';'

Co-Authored-By: chriseth <chris@ethereum.org>
2019-05-28 15:06:34 +02:00
chriseth
df96648b1c Do not allow msize in inline assembly if the Yul optimizer is active. 2019-05-28 12:54:33 +02:00
chriseth
b95eebee1c
Merge pull request #6822 from ethereum/uninitializedLoadFromStorage
Explicitly turn uninitialized internal function pointers into invalid function when loaded from storage.
2019-05-28 11:48:56 +02:00
chriseth
01b6b680f1
Merge pull request #6829 from ethereum/solYulDivision
[SolYul] Division.
2019-05-28 11:48:20 +02:00
chriseth
7183940e24
Merge pull request #6770 from ethereum/isoltest-parser-fix
[isoltest] TestFileParser: Fixes access of iterator at and beyond iterator ends
2019-05-27 19:14:35 +02:00
chriseth
fbf189151d [SolYul] Division. 2019-05-27 17:53:46 +02:00
chriseth
5b1a984882 Explicitly turn uninitialized internal function pointers into invalid function when loaded from storage. 2019-05-27 17:26:37 +02:00
chriseth
a600126703
Merge pull request #6833 from sifmelcara/fix-struct-array-mapping
Fix assignment of struct containing array of mappings
2019-05-27 11:14:28 +02:00
mingchuan
bf8af89bba
Fix assignment of struct containing array of mappings 2019-05-25 01:33:49 +08:00
chriseth
73d0eb6b7a Modify test to prevent underflow. 2019-05-23 21:32:30 +02:00
chriseth
ee7548a339 Activate some tests. 2019-05-23 21:32:30 +02:00
Mathias Baumann
981983089c [Sol -> Yul] Implement delete for function pointers 2019-05-23 15:51:59 +02:00
Mathias Baumann
81702717b0 [Sol -> Yul] Enable function pointer comparison 2019-05-23 12:52:50 +02:00
chriseth
0291abf10f
Merge pull request #6818 from ethereum/alwaysUseBuiltins
Provide builtin functions even in loose assembly mode.
2019-05-23 12:29:12 +02:00
chriseth
90e8594858 Update tests. 2019-05-23 11:30:12 +02:00
chriseth
9a00729ce7 Provide dialect to Parser and InlineAssembly AST nodes. 2019-05-23 00:24:58 +02:00
chriseth
7506b5752a Do not require payable for callvalue instruction. 2019-05-22 11:30:29 +02:00
Mathias Baumann
cbf81b123a Fix new found spelling mistakes and add exceptions 2019-05-21 10:59:34 +02:00
chriseth
e324deabd6
Merge pull request #6740 from ethereum/unary-ops
[Sol -> Yul] Implement Int/Bool Unary: ++, --, ~, !
2019-05-20 18:06:01 +02:00
chriseth
af2bdfd2fa
Merge pull request #6793 from ethereum/irCheckedMul
[Sol - Yul] Implement checked multiplication.
2019-05-20 17:54:57 +02:00
Daniel Kirchner
b6f4d4e9bc [Sol - Yul] Implement checked multiplication. 2019-05-20 17:36:53 +02:00
chriseth
46d9df7574 Add EVM opcodes as builtins. 2019-05-20 16:46:31 +02:00
Christian Parpart
63ae9f1415
[isoltest] TestFileParser: Fixes access of iterator at and beyond iterator ends. 2019-05-20 16:29:03 +02:00
Mathias Baumann
86000fdcce [Sol -> Yul] Implement unary -, + 2019-05-20 16:14:46 +02:00
chriseth
e08f521b7e
Merge pull request #6764 from ethereum/smt_fix_tuple_ice
[SMTChecker] Fix ICE in unsupported function calls with multi return values
2019-05-20 15:18:11 +02:00
Mathias Baumann
7dbcb80523 [Sol -> Yul] Implement Int/Bool Unary: ++, --, ~, ! 2019-05-20 11:43:12 +02:00
Daniel Kirchner
e20fbd388b
Merge pull request #6779 from ethereum/gasCostFix
Fix gas cost test.
2019-05-16 21:48:05 +02:00
chriseth
315f66fc93
Merge pull request #6771 from ethereum/fixConstructorABIV2
Fix handling of structs of dynamic size as constructor parameters.
2019-05-16 20:53:16 +02:00
Daniel Kirchner
95ed4daf20 Subtract bzzr0 data cost from used gas in gas cost test. 2019-05-16 20:38:25 +02:00
Leonardo Alt
60a4f03d3d [SMTChecker] Fix ice in unsupported functions with multi return values 2019-05-16 18:23:42 +02:00
chriseth
f2ae30f620 Fix handling of structs of dynamic size as constructor parameters. 2019-05-16 17:10:54 +02:00
chriseth
5824f5d42f Use shift directly instead of multiplication in constant optimizer. 2019-05-16 12:50:53 +02:00
chriseth
fa23601d52
Merge pull request #6766 from ethereum/isoltest-constructor-arguments
[soltest] Adds support for constructor arguments
2019-05-16 12:36:50 +02:00
chriseth
f6437a2016 Optimizer rules that combine shifts and masks. 2019-05-15 20:30:53 +02:00
Daniel Kirchner
e8480664d3 Move output selection wildcard tests from command line tests to StandardCompiler.cpp. 2019-05-15 13:15:59 +02:00
Erik Kundt
5d85ab49b9 Allow the constructor to revert. 2019-05-15 12:24:23 +02:00
Erik Kundt
94597ad9ae Adds support for constructor arguments in isoltest. 2019-05-15 12:01:14 +02:00
chriseth
8c232e8196
Merge pull request #6690 from ethereum/useConditionalWhiskers
Use conditional whiskers
2019-05-13 10:23:30 +02:00
chriseth
03c8e43da5
Merge pull request #6605 from ethereum/natspec-colon-fix
Fix Natspec parser error
2019-05-13 10:19:47 +02:00
chriseth
e5d46767f1
Merge pull request #6722 from ethereum/smt_fix_variable_usage
[SMTChecker] Fix VariableUsage for IndexAccess
2019-05-13 10:17:26 +02:00
chriseth
a28b6224a4
Merge pull request #6714 from ethereum/finishERC20
Finish ERC20
2019-05-13 10:00:38 +02:00
Leonardo Alt
3ea5c112d3 [SMTChecker] Fix VariableUsage for IndexAccess 2019-05-10 11:28:10 +02:00
Erik Kundt
656364d967 Fixes Natspec parser error when whitespace is missing. 2019-05-10 10:53:32 +02:00
chriseth
89700dbcff
Merge pull request #6665 from ethereum/smt_inline_external_this
[SMTChecker] Inline external function calls to `this`
2019-05-09 19:09:08 +02:00
chriseth
5e5138869b Test. 2019-05-09 17:57:30 +02:00
Leonardo Alt
ef32bf185f [SMTChecker] Inline external function calls to this. 2019-05-09 16:53:30 +02:00
Leonardo Alt
6027383ae5 [SMTChecker] Fix call to function at state var init 2019-05-09 16:12:44 +02:00
chriseth
c3a1c168d0
Merge pull request #6711 from ethereum/solYulIf
[Sol -> Yul] Implement if statements
2019-05-09 15:33:34 +02:00
chriseth
c093d00af1 Update gas test. 2019-05-09 15:27:42 +02:00
Daniel Kirchner
b83f6d8d46 [Sol -> Yul] Implement if statements 2019-05-09 14:52:20 +02:00
Leonardo
9e09b5d33b
Merge pull request #6679 from ethereum/smt_fix_ssa_reset
[SMTChecker] Fix ICE in touched vars
2019-05-09 12:17:32 +02:00
chriseth
0852ccc318
Merge pull request #4764 from ethereum/cbor-version
Store compiler version in CBOR metadata
2019-05-09 10:10:50 +02:00
Mathias Baumann
0abe00d393 [Sol -> Yul] Fix ForLoops and implement WhileLoops 2019-05-09 09:46:19 +02:00
chriseth
f61348728c
Merge pull request #6704 from ethereum/abiEncodeV2Cleanup
Add ABIEncoderV2 cleanup tests.
2019-05-09 09:30:58 +02:00
Leonardo Alt
3d52a6ca68 [SMTChecker] Fix ICE in branch-inline function call-modify local variable 2019-05-09 09:15:11 +02:00
Daniel Kirchner
a6a28ac475 Allow overwriting the release flag for tests and adjust test suite to CBOR metadata. 2019-05-08 22:21:50 +02:00
Alex Beregszaszi
e121c8f3c7 Store compiler version in CBOR metadata 2019-05-08 22:21:50 +02:00
Daniel Kirchner
62dc8d0a87 Add ABIEncoderV2 cleanup tests. 2019-05-08 22:16:06 +02:00
chriseth
4d460915f3
Merge pull request #6655 from ethereum/storageMappings
[SolYul] Storage mappings
2019-05-08 20:38:46 +02:00
Leonardo
241b6b4bae
Merge pull request #6702 from ethereum/smt_fix_asgn_unsupported_type
[SMTChecker] Fix unsupported type assignment
2019-05-08 16:12:46 +02:00
chriseth
595544645e Mappings. 2019-05-08 15:54:52 +02:00
chriseth
4037da9575
Merge pull request #6663 from ethereum/events
Events
2019-05-08 14:58:41 +02:00
chriseth
54a3116ab8
Merge pull request #6698 from ethereum/asmPrinterOneLine
Format short blocks and loops on a single line.
2019-05-08 14:46:02 +02:00
Leonardo Alt
0b046897ae [SMTChecker] Fix unsupported type assignment 2019-05-08 14:28:23 +02:00
chriseth
b4d6f847b4 Events. 2019-05-08 13:29:11 +02:00
chriseth
5fb85a6118
Merge pull request #6662 from ethereum/msgSender
Implement most trivial members.
2019-05-08 13:28:43 +02:00
chriseth
0532a8cef2 Format short blocks and loops on a single line. 2019-05-08 13:28:00 +02:00
chriseth
97f16421f5
Merge pull request #6692 from ethereum/runEndToEndTestsViaYul
Run end to end tests via yul
2019-05-08 12:49:45 +02:00
chriseth
ed450a31a3
Merge pull request #6696 from ethereum/sol-yul-while
Fix wrong test settings
2019-05-08 12:48:57 +02:00
Mathias Baumann
85b67d3820 Fix wrong test settings 2019-05-08 10:46:38 +02:00
Daniel Kirchner
76b88bdfd8 Allow test cases to indicate fatal errors. 2019-05-07 18:12:21 +02:00
Daniel Kirchner
0a99519142 Move gas cost tests from command line tests to interactive gas cost tests. 2019-05-07 18:12:21 +02:00
chriseth
6c9c54a657
Merge pull request #6657 from ethereum/smt_tuple_multi_decl
[SMTChecker] Support tuples as multi var decl
2019-05-07 17:55:36 +02:00
chriseth
701aed4beb Also run some end to end tests via yul. 2019-05-07 17:37:29 +02:00
chriseth
e43df3b72a Move compile to cpp file. 2019-05-07 17:37:29 +02:00
chriseth
acca390ef5 Most trivial members. 2019-05-07 17:19:45 +02:00
chriseth
b99ad2aaa3
Merge pull request #6639 from ethereum/yul-require-assert
Yul generation of "require" and "assert"
2019-05-07 16:59:37 +02:00
Leonardo Alt
3c7540ceb2 [SMTChecker] Support tuples with multiple var decls 2019-05-07 16:57:27 +02:00
chriseth
c604481cef Logical operators. 2019-05-07 15:59:35 +02:00
chriseth
3fa4c3da1e Comparison operations. 2019-05-07 12:35:05 +02:00
Mathias Baumann
7f14352bbf Yul generation of require and assert 2019-05-07 12:19:41 +02:00
chriseth
ad817ac630 Tests for string literals. 2019-05-07 11:55:18 +02:00
chriseth
49b1ff76ae Test file reorganisation. 2019-05-07 11:55:07 +02:00
chriseth
e12da81899
Merge pull request #6672 from ethereum/soltest-string-literals
[soltest] Add support for string literals
2019-05-07 11:54:54 +02:00
Erik Kundt
9956319e8b Adds support for string literals to soltest. 2019-05-07 11:36:38 +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
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
dcca6f6318 Tests that compile via Yul have to use the Yul optimizer. 2019-05-02 17:02:05 +02:00
chriseth
f5f0804c19
Merge pull request #6504 from ethereum/soltest-interactive-update
[soltest] Improve interactive update routine
2019-05-02 16:41:52 +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
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
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
Erik Kundt
8103d22acf Takes type formats in isoltest from contract ABI. 2019-04-30 16:01:04 +02:00
Mathias Baumann
00172192bf Reorganize 'shadows builtin" syntax tests 2019-04-30 15:37:03 +02:00
chriseth
bab2391a7c Test case for loops. 2019-04-30 13:10:37 +02:00
chriseth
c1ca16cd33 Implement return. 2019-04-30 13:10:36 +02:00
Leonardo Alt
0cdb9e48b0 Update SMTChecker JSON tests expectation 2019-04-30 11:08:36 +02:00
Erik Kundt
a6cc296cd9 Adds error reporter for auto-updates in (i)soltest. 2019-04-29 15:56:15 +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
00d81929b1
Merge pull request #6576 from ethereum/isoltest-evmversion-comparator
Allow additional EVMVersion comparators in isoltest
2019-04-25 17:37:46 +02:00
chriseth
169b555a22
Merge pull request #6507 from ethereum/smt_address_members
[SMTChecker] Address members
2019-04-25 17:29:42 +02:00
Erik Kundt
15d753a3e0 Allows additional EVMVersion comparators in isoltest. 2019-04-25 17:13:17 +02:00
chriseth
f9ec1231b6 Support period as part of identifiers for Yul and Inline Assembly. 2019-04-25 16:48:16 +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
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
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
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
58a45f2cb6 [libsolidity] TypeProvider: adds explicit uint256() accessor and removes default params in integerType(...). 2019-04-16 18:28:40 +02:00
Christian Parpart
bf43eebea9 libsolidity: Introducing TypeProvider API, for clear type system ownership. 2019-04-16 18:26:45 +02:00
Christian Parpart
862d798047 [test] AnalysisFramework's instance of CompilerStack to be lazily instanciated. 2019-04-16 18:25:03 +02:00
Mathias Baumann
efc8d79d53 Fix wrong location for inline asm blocks 2019-04-15 16:40:07 +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
Mathias Baumann
71d752d878 Fix infinite loop when encountering unexpected test specifications 2019-04-11 13:37:42 +02:00