Hello, this maybe a bug in implementation.
demo:
#include <functional>
#include <map>
using namespace std;
void target() {}
void middleFunction(std::function<void()> cb) { cb(); }
int main() {
std::map<int, std::function<void()>> callbacks={{1, target}};
middleFunction(target); // resolved
callbacks[1](); // resolved
middleFunction(callbacks[1]); // can't resolve...
return 0;
}
Params:
// LLVM14
./Release-build/bin/wpa -ander -ff-eq-base -dump-callgraph
./Release-build/bin/wpa -ander -ff-eq-base -svf-main -dump-callgraph
./Release-build/bin/wpa -ander -merge-pwc -vt-in-ir -ff-eq-base -svf-main -dump-callgraph
./Release-build/bin/wpa -ander -model-consts -model-arrays -merge-pwc -vt-in-ir -ff-eq-base -svf-main -dump-callgraph
./Release-build/bin/wpa -fspta -ff-eq-base -dump-callgraph
./Release-build/bin/wpa -fspta -ff-eq-base -fspta -ff-eq-base -svf-main -dump-callgraph
./Release-build/bin/wpa -fspta -merge-pwc -vt-in-ir -ff-eq-base -svf-main -dump-callgraph
./Release-build/bin/wpa -fspta -model-consts -model-arrays -fspta -merge-pwc -vt-in-ir -ff-eq-base -svf-main -dump-callgraph
All the params mentioned aboved fails to resolve the indirect call mentioned in demo, which feels odd.
Hello, this maybe a bug in implementation.
demo:
Params:
All the params mentioned aboved fails to resolve the indirect call mentioned in demo, which feels odd.