Unused function code might occur in the following situations:
Where you have legacy functions that are no longer used in your source code. Rather than manually remove the unused function code from your source code, you can use linker feedback to remove the unused object code automatically from the final image.
Where a function is inlined. Where an inlined function is not declared as static, the out-of-line function code is still present in the object file, but there is no longer a call to that code.