https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110000
--- Comment #8 from Nikolas Klauser <nikolasklauser at berlin dot de> --- (In reply to Florian Weimer from comment #7) > (In reply to Nikolas Klauser from comment #6) > > Does that make sense? > > Not quite. I was trying to suggest that you also need to suppress all > inter-procedural analysis. This will inhibit quite a few useful > optimizations. Why would you need to do that? As long as any functions that are part of the ABI don't change in a non-benign way, everything is fine. If an implementation-detail function doesn't get inlined, but the public function does, it's fine because the detail function gets emitted by every TU that uses it, which means that it'll always be there as long as some function relies on the symbol. If the implementation-detail function gets inlined, the code will obviously be there - no need to have a symbol anywhere.