Annotate function ID of functions that may be called via the internal dispatch.

Co-authored-by: Daniel <daniel@ekpyron.org>
This commit is contained in:
Rodrigo Q. Saramago
2023-03-20 20:14:41 +01:00
co-authored by Daniel
parent e7ec40b1af
commit a0e62bbd3d
11 changed files with 1631 additions and 27 deletions
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,48 @@
function free1() {}
function free2() {}
function free3() {}
library L {
function ext() external {}
function inr1() internal {}
function inr2() internal {}
function inr3() internal {}
function access() public {
free1;
inr1;
L.ext;
}
function expression() public {
(free2)();
(inr2)();
}
}
contract C {
function ext1() external {}
function ext2() external {}
function ext3() external {}
function inr1() internal {}
function inr2() internal {}
function inr3() internal {}
function access() public {
this.ext1;
inr1;
free1;
L.inr1;
L.ext;
}
function expression() public {
(this.ext2)();
(inr2)();
(free2)();
(L.inr2)();
(L.ext)();
}
}
contract D is C {
constructor() {
access();
expression();
}
}
// ----