mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Control flow analysis for inline assembly.
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
contract C {
|
||||
function f() public pure {
|
||||
assembly {
|
||||
revert(0, 0)
|
||||
revert(0, 0)
|
||||
}
|
||||
}
|
||||
function g() public pure {
|
||||
assembly {
|
||||
revert(0, 0)
|
||||
}
|
||||
revert();
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning: (100-112): Unreachable code.
|
||||
// Warning: (222-230): Unreachable code.
|
||||
@@ -0,0 +1,13 @@
|
||||
contract C {
|
||||
function f() public pure {
|
||||
assembly {
|
||||
for { let a := 0} lt(a,1) { a := add(a, 1) } {
|
||||
break
|
||||
let b := 42
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning: (103-117): Unreachable code.
|
||||
// Warning: (160-171): Unreachable code.
|
||||
@@ -0,0 +1,12 @@
|
||||
contract C {
|
||||
function f() public pure {
|
||||
assembly {
|
||||
for { let a := 0} lt(a,1) { a := add(a, 1) } {
|
||||
continue
|
||||
let b := 42
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning: (163-174): Unreachable code.
|
||||
@@ -0,0 +1,17 @@
|
||||
contract C {
|
||||
function f(uint256 y) public pure returns (uint256 x) {
|
||||
assembly {
|
||||
return(0, 0)
|
||||
x := y
|
||||
}
|
||||
}
|
||||
function g(uint256 y) public pure returns (uint256 x) {
|
||||
assembly {
|
||||
return(0, 0)
|
||||
}
|
||||
x = y;
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning: (129-135): Unreachable code.
|
||||
// Warning: (274-279): Unreachable code.
|
||||
@@ -0,0 +1,17 @@
|
||||
contract C {
|
||||
function f(uint256 y) public pure returns (uint256 x) {
|
||||
assembly {
|
||||
revert(0, 0)
|
||||
x := y
|
||||
}
|
||||
}
|
||||
function g(uint256 y) public pure returns (uint256 x) {
|
||||
assembly {
|
||||
revert(0, 0)
|
||||
}
|
||||
x = y;
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning: (129-135): Unreachable code.
|
||||
// Warning: (274-279): Unreachable code.
|
||||
Reference in New Issue
Block a user