mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Changelog and test
This commit is contained in:
parent
a9fa9429d5
commit
4a291f8551
@ -9,7 +9,7 @@ Compiler Features:
|
|||||||
|
|
||||||
|
|
||||||
Bugfixes:
|
Bugfixes:
|
||||||
|
* Optimizer: Fixed a bug in BlockDeDuplicator.
|
||||||
|
|
||||||
|
|
||||||
### 0.6.8 (2020-05-14)
|
### 0.6.8 (2020-05-14)
|
||||||
|
1
test/cmdlineTests/optimizer_BlockDeDuplicator/args
Normal file
1
test/cmdlineTests/optimizer_BlockDeDuplicator/args
Normal file
@ -0,0 +1 @@
|
|||||||
|
--optimize --asm --metadata-hash none
|
11
test/cmdlineTests/optimizer_BlockDeDuplicator/err
Normal file
11
test/cmdlineTests/optimizer_BlockDeDuplicator/err
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
Warning: Statement has no effect.
|
||||||
|
--> optimizer_BlockDeDuplicator/input.sol:7:27:
|
||||||
|
|
|
||||||
|
7 | function f() public { true ? 1 : 3;}
|
||||||
|
| ^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Warning: Function state mutability can be restricted to pure
|
||||||
|
--> optimizer_BlockDeDuplicator/input.sol:7:5:
|
||||||
|
|
|
||||||
|
7 | function f() public { true ? 1 : 3;}
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
9
test/cmdlineTests/optimizer_BlockDeDuplicator/input.sol
Normal file
9
test/cmdlineTests/optimizer_BlockDeDuplicator/input.sol
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-3.0
|
||||||
|
pragma solidity >=0.0;
|
||||||
|
|
||||||
|
contract C {
|
||||||
|
function fun_x() public {}
|
||||||
|
function fun_() public {}
|
||||||
|
function f() public { true ? 1 : 3;}
|
||||||
|
function() r = true ? fun_x : f;
|
||||||
|
}
|
107
test/cmdlineTests/optimizer_BlockDeDuplicator/output
Normal file
107
test/cmdlineTests/optimizer_BlockDeDuplicator/output
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
|
||||||
|
======= optimizer_BlockDeDuplicator/input.sol:C =======
|
||||||
|
EVM assembly:
|
||||||
|
/* "optimizer_BlockDeDuplicator/input.sol":60:213 contract C {... */
|
||||||
|
mstore(0x40, 0x80)
|
||||||
|
/* "optimizer_BlockDeDuplicator/input.sol":179:210 function() r = true ? fun_x : f */
|
||||||
|
0x00
|
||||||
|
dup1
|
||||||
|
sload
|
||||||
|
not(sub(shl(0x40, 0x01), 0x01))
|
||||||
|
and
|
||||||
|
/* "optimizer_BlockDeDuplicator/input.sol":201:206 fun_x */
|
||||||
|
or(tag_0_7, shl(0x20, tag_4))
|
||||||
|
sub(shl(0x40, 0x01), 0x01)
|
||||||
|
/* "optimizer_BlockDeDuplicator/input.sol":179:210 function() r = true ? fun_x : f */
|
||||||
|
and
|
||||||
|
or
|
||||||
|
swap1
|
||||||
|
sstore
|
||||||
|
/* "optimizer_BlockDeDuplicator/input.sol":60:213 contract C {... */
|
||||||
|
callvalue
|
||||||
|
/* "--CODEGEN--":2:4 */
|
||||||
|
dup1
|
||||||
|
iszero
|
||||||
|
tag_5
|
||||||
|
jumpi
|
||||||
|
/* "--CODEGEN--":27:28 */
|
||||||
|
0x00
|
||||||
|
/* "--CODEGEN--":24:25 */
|
||||||
|
dup1
|
||||||
|
/* "--CODEGEN--":17:29 */
|
||||||
|
revert
|
||||||
|
/* "--CODEGEN--":2:4 */
|
||||||
|
tag_5:
|
||||||
|
/* "optimizer_BlockDeDuplicator/input.sol":60:213 contract C {... */
|
||||||
|
pop
|
||||||
|
jump(tag_6)
|
||||||
|
/* "optimizer_BlockDeDuplicator/input.sol":77:103 function fun_x() public {} */
|
||||||
|
tag_4:
|
||||||
|
jump // out
|
||||||
|
/* "optimizer_BlockDeDuplicator/input.sol":60:213 contract C {... */
|
||||||
|
tag_6:
|
||||||
|
dataSize(sub_0)
|
||||||
|
dup1
|
||||||
|
dataOffset(sub_0)
|
||||||
|
0x00
|
||||||
|
codecopy
|
||||||
|
0x00
|
||||||
|
return
|
||||||
|
stop
|
||||||
|
|
||||||
|
sub_0: assembly {
|
||||||
|
/* "optimizer_BlockDeDuplicator/input.sol":60:213 contract C {... */
|
||||||
|
mstore(0x40, 0x80)
|
||||||
|
callvalue
|
||||||
|
/* "--CODEGEN--":5:14 */
|
||||||
|
dup1
|
||||||
|
/* "--CODEGEN--":2:4 */
|
||||||
|
iszero
|
||||||
|
tag_1
|
||||||
|
jumpi
|
||||||
|
/* "--CODEGEN--":27:28 */
|
||||||
|
0x00
|
||||||
|
/* "--CODEGEN--":24:25 */
|
||||||
|
dup1
|
||||||
|
/* "--CODEGEN--":17:29 */
|
||||||
|
revert
|
||||||
|
/* "--CODEGEN--":2:4 */
|
||||||
|
tag_1:
|
||||||
|
/* "optimizer_BlockDeDuplicator/input.sol":60:213 contract C {... */
|
||||||
|
pop
|
||||||
|
jumpi(tag_2, lt(calldatasize, 0x04))
|
||||||
|
shr(0xe0, calldataload(0x00))
|
||||||
|
dup1
|
||||||
|
0x26121ff0
|
||||||
|
eq
|
||||||
|
tag_3
|
||||||
|
jumpi
|
||||||
|
dup1
|
||||||
|
0x2e1fb2bc
|
||||||
|
eq
|
||||||
|
tag_3
|
||||||
|
jumpi
|
||||||
|
dup1
|
||||||
|
0x4753a67d
|
||||||
|
eq
|
||||||
|
tag_3
|
||||||
|
jumpi
|
||||||
|
tag_2:
|
||||||
|
/* "--CODEGEN--":12:13 */
|
||||||
|
0x00
|
||||||
|
/* "--CODEGEN--":9:10 */
|
||||||
|
dup1
|
||||||
|
/* "--CODEGEN--":2:14 */
|
||||||
|
revert
|
||||||
|
/* "optimizer_BlockDeDuplicator/input.sol":138:174 function f() public { true ? 1 : 3;} */
|
||||||
|
tag_3:
|
||||||
|
tag_6
|
||||||
|
tag_7
|
||||||
|
jump // in
|
||||||
|
tag_6:
|
||||||
|
stop
|
||||||
|
tag_7:
|
||||||
|
jump // out
|
||||||
|
|
||||||
|
auxdata: AUXDATA REMOVED
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user