hasAddressTaken ‐ returns true if there are any uses of this function other than direct calls or invokes to it, or blockaddress expressions. Optionally passes back an offending user for diagnostic purposes, ignores callback uses, assume like pointer annotation calls, references in llvm.used and llvm.compiler.used variables, operand bundle "clang.arc.attachedcall", and direct calls with a different call site signature (the function is implicitly casted).