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:
|
||||
|
||||
* Optimizer: Fixed a bug in BlockDeDuplicator.
|
||||
|
||||
|
||||
### 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