Distinguishing Between User-Defined and Library Functions in LLVM IR


I would like to ask whether there is a definite way to distinguish between user-defined and library functions in an LLVM IR Pass (IR emitted by Clang from C++, if it matters, but would prefer a cross-language solution).

I tried checking for unmangled names, linkage etc., but did not manage to find an accurate solution.

Thank you very much in advance. :slightly_smiling_face:

I don’t think there is any logical boundary between “user” code and library code - they’re all user code, just written by different users.