Commit Graph

3281 Commits

Author SHA1 Message Date
Alex Beregszaszi
9140a7d64e Support catching YulException nicely in StandardCompiler 2019-12-03 19:06:21 +01:00
Leonardo Alt
b1577f5e46 [SMTChecker] Fix ICE in array of structs type 2019-12-03 01:12:30 +01:00
Daniel Kirchner
05baa23e8a Require unimplemented functions to be virtual. 2019-12-02 21:59:00 +01:00
Daniel Kirchner
77a9e91443 Enable yul optimizer by default. 2019-12-02 19:30:14 +01:00
chriseth
c61ed0b22d
Merge pull request #7797 from ethereum/allowTranslationInAssemblyMode
Allow EVM to EWasm translation in assembly mode.
2019-12-02 13:15:06 +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
Daniel Kirchner
025a696bb0 Fix unrelated test failure. 2019-11-28 20:01:36 +01:00
Daniel Kirchner
7d1b0c6023 Fix Yul IR push 2019-11-28 18:11:38 +01:00
chriseth
ccfc1840a9 Allow assembly stack to translate its source. 2019-11-28 16:15:15 +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
23181f549e Remove plain new operators from AST. 2019-11-27 18:03:09 +01:00
chriseth
0bb88dabb7 Restrict usage of plain "new". 2019-11-27 17:55:11 +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
Leonardo Alt
ddc478e3e4 Add CallbackKind and use it for the SMT solver 2019-11-21 22:10:21 +00:00
chriseth
a00f824479
Merge pull request #7773 from ethereum/develop
Merge develop into develop_060
2019-11-21 21:49:22 +01:00
chriseth
a26dd5a428 Remove trailing spaces in output. 2019-11-21 20:09:03 +01: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
389da5228e Merge remote-tracking branch 'origin/develop' into merge_develop_060 2019-11-20 12:27:40 +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
chriseth
32f321e416
Merge pull request #7751 from ethereum/replace_boost_variant_std
Replace boost::variant by std::variant in libyul
2019-11-19 19:40:39 +01:00
chriseth
d696b3c92b
Merge pull request #7743 from ethereum/fixice-7558
Disallow conversion from ``super``
2019-11-19 18:52:33 +01:00
Leonardo Alt
be849b3c47 Replace boost::variant by std::variant in libyul 2019-11-19 17:23:18 +01:00
Mathias Baumann
23cad71c88 Disallow conversion from `super` 2019-11-19 17:14:11 +01:00
Alex Beregszaszi
840aba8929 Add new gas price for deployed bytecode (EIP2028) 2019-11-19 17:09:18 +01:00
Erik Kundt
ecaed1030f Makes array length access read-only. 2019-11-19 16:09:21 +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
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
chriseth
8d46f39643
Merge pull request #7707 from ethereum/smt_ice_implicit_conversion
[SMTChecker] Fix ICE in string literal to fixed bytes conversion
2019-11-14 11:52:58 +01:00
Mathias Baumann
5b8ff78176 Implement virtual keyword 2019-11-14 11:49:39 +01:00
chriseth
f6191a7183
Merge pull request #7709 from ethereum/overloadMsgForMagic
Reconstruct function definition for magic variables in overload error message.
2019-11-14 11:24:54 +01:00
Leonardo Alt
5f43b8dbeb Output the storage layout of a contract via storageLayout artifact 2019-11-14 10:19:17 +01:00
chriseth
06588cde76 Reconstruct function definition for magic variables in overload error message. 2019-11-14 10:13:22 +01:00
Leonardo Alt
8efacfb545 [SMTChecker] Fix ICE in string literal to fixed bytes implicit conversion 2019-11-13 22:25:18 +01:00
chriseth
c4441bac5b
Merge pull request #7705 from ethereum/list-overloads-7146
List candidates when overload failed
2019-11-13 17:35:37 +01:00
Mathias Baumann
15df2b30d7 List candidates when overload failed
fixes #7146
2019-11-13 15:54:36 +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
djudjuu
e437443645 Inline assembly to AST json export 2019-11-13 12:13:22 +01:00
Daniel Kirchner
ce7268272d Allow obtaining the address of a library by conversion to `address`. 2019-11-12 17:09:13 +01:00
Daniel Kirchner
8148619d5b Merge branch 'develop' into develop_060 2019-11-12 10:32:41 +01:00
Mathias Baumann
e35a23bbcc Add `switch (..) to style checker 2019-11-11 17:44:21 +01:00
Mathias Baumann
e643c4ca28 Add `while (..) to style checker 2019-11-11 17:28:41 +01:00
chriseth
2e5a42836c
Merge pull request #7681 from ethereum/develop
Merge develop into develop_060
2019-11-11 16:42:03 +01:00
Christian Parpart
f15d47f165 Yul: Remove obsoleted FunctionalInstruction. 2019-11-11 16:04:39 +01:00
Alexander Arlt
ce0cef7cbc Output which functions are not implemented 2019-11-08 14:06:57 -05: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
Leonardo Alt
6b10efff8c Add CHCSmtLib2Interface 2019-11-07 11:12:11 +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
chriseth
30ea41c36d
Merge pull request #7526 from ethereum/modifierDepth
Add modifier depth to source mappings.
2019-11-06 13:03:40 +01:00
Leonardo Alt
10e70b8603 [SMTChecker] Support inheritance and resolve overrides 2019-11-06 11:00:06 +01:00
chriseth
587c87b15b Commandline interface additions for webassembly binary. 2019-11-05 20:05:57 +01:00
chriseth
e79a32e9d5 Wasm to binary assembly stack. 2019-11-05 20:02:42 +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
cb2096c82a Add modifier depth to source mappings. 2019-11-05 16:50:38 +01:00
chriseth
5388c919f0 Some changes to "abstract". 2019-11-05 13:55:31 +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
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
f3f652e290 Update TypeChecker.cpp 2019-11-01 14:54:47 -05:00
Alexander Arlt
c908c16acd Remove InternalCompilerError on abstract contract instantiation. 2019-11-01 14:54:47 -05:00
Alexander Arlt
62950a9234 Support for abstract contracts. 2019-11-01 14:54:47 -05:00
Mathias Baumann
6c6a9054b2 Implement override checking 2019-10-30 17:31:33 +01:00
Mathias Baumann
5ff02c12e2 Add reference to contract in FunctionDefinition annotation 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
Mathias Baumann
f4c40080c4 Move if-condition to function for re-use 2019-10-30 17:31:33 +01:00
chriseth
c30839888f Use `leave` in code generator. 2019-10-29 14:32:16 +01:00
chriseth
ceb8ee9124 [Yul] leave statement. 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
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
3c1d12b16c Assembly: Remove errorTypeForLoose property from AsmAnalyzer. 2019-10-25 15:01:26 +02:00
Christian Parpart
dc2adb3d9d Assembly: Removing EVMDialect::looseAssemblyForEVM(). 2019-10-25 15:01:26 +02:00
Christian Parpart
e23998fc6e Assembly: Remove Label instruction. 2019-10-25 15:01:25 +02:00
Christian Parpart
5e8d348f66 Assembly: Remove StackAssignment instruction. 2019-10-25 15:01:25 +02:00
Christian Parpart
5a52fa547e Assembly: Changed parser to use strict assembly mode. 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
Christian Parpart
76c72ba89f Fixes signedness (causes compilation failure on MSVC). 2019-10-23 16:32:41 +02:00
Mathias Baumann
c3e8023ad5 Fix wrong assert in overflow check 2019-10-23 14:59:34 +02:00
Christian Parpart
c6152b8059 Compile fix. 2019-10-23 13:08:17 +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
ebfe7391ff Use selfbalance for `address(this).balance`. 2019-10-16 14:25:56 +02:00
Gaith Hallak
62a62555bc Remove trailing spaces from JSON output 2019-10-02 19:02:35 +02:00
Gaith Hallak
9d34d7de2f Remove trailing spaces from JSON output 2019-10-02 18:01:47 +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
ca714a2d3d
Merge pull request #7485 from ethereum/develop
Merge develop into develop_060
2019-09-26 15:43:12 +02:00
chriseth
387cb620e9
Merge pull request #7452 from ethereum/smt_fix_function_name
[SMTChecker] Fix SMT name for function identifiers
2019-09-24 15:55:14 +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 Alt
83ef34f41d [SMTChecker] Fix SMT name for function identifiers 2019-09-24 11:23:10 +02:00
chriseth
ca21659749 Fix error message about accessing storage pointers. 2019-09-24 10:52:02 +02:00
chriseth
b5d6d5fcf9 Create. 2019-09-23 17:22:56 +02:00
chriseth
70b796bd1a Code generator for try/catch. 2019-09-23 17:22:56 +02:00
chriseth
8e736a9f49 Type Checker for try/catch. 2019-09-23 17:22:56 +02:00
chriseth
b5bc52f2a7 Control flow for try statements. 2019-09-23 17:22:56 +02:00
chriseth
6d6914f98f Parser for try/catch. 2019-09-23 17:22:42 +02:00
chriseth
a66c354698 AST for try and catch. 2019-09-23 17:22:09 +02:00
Leonardo Alt
ed9674be8d [SMTChecker] Add as const function to SMTLib2Interface 2019-09-18 22:57:14 +02:00
chriseth
9ecd51c54d Refactor. 2019-09-18 14:06:03 +02:00
Leonardo Alt
43d6e00b14 Add push() for dynamic storage arrays 2019-09-17 13:47:33 +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
4782c800ec Initial introduction of array slices with partial implementation for dynamic calldata arrays. 2019-09-13 10:57:53 +02:00
Leonardo Alt
5cfe0b7670 Allow explicit conversion from address to address payable 2019-09-09 23:46:00 +02:00
Daniel Kirchner
f4d990e5be Drop constant and payable fields from ABI. 2019-09-06 14:42:09 +02:00
Daniel Kirchner
5d69bdf81e Remove ASTPrinter. 2019-09-06 12:38:55 +02:00
chriseth
ea0a952a69
Merge pull request #7362 from ethereum/develop
Merge develop into develop_060
2019-09-05 16:50:44 +02:00