Function Pointer Eliminator for C Programs
summary
Tool converts C to LLVM via Clang, runs SVF pointer analysis, extracts possible targets into JSON, then rewrites the original C to replace each indirect call with conditional direct calls so the program has no function-pointer calls. It handles common fp forms but not functions that return function pointers. Tested on gzip, git, OpenSSL; analysis plus transform runs in about 13–16 minutes for large trees and yields over-approximated target sets (max/average targets reported) and working transformed C.
AI-written summary · about
chapters (8)
- 0:00Project introduction
- 1:32FPE as SLAC front-end
- 2:21FPE structure and modules
- 3:36A-module example
- 5:31T-module process
- 7:47Unsupported pointer forms
- 8:08Experimental results
- 9:25Summary and availability
related talks
41mC++ Overload Inspector - A Tool for Analyzing and Profiling Overloaded Function Calls
24m(Ab)using Compiler Tools
23mTargeted Static Analysis for OCaml C Stubs: Eliminating gremlins from the code
49mPets, Cattle and Automatic Clang Operations with C++ Code
01h 30mDangerous Optimizations in C and C++ Programming Languages
49mThe Evolution of Functional Programming in C++
01h 08mImplementing the C++ Core Guidelines’ Lifetime Safety Profile in Clang
01h 13mNot Leaving Performance On The Jump Table
