[llvm-dev] LLVM plugin: access function signature of a function pointer parameter

Marc via llvm-dev llvm-dev at lists.llvm.org
Mon Feb 8 08:20:54 PST 2021


Hi,

I am unable to find any information on how to extract the function
signature from calls that receive a function pointer. e.g.:

C code:
  signal(SIG_TERM, a_function_ptr);

IR:
  %call = call void (i32)* @signal(i32 4, void (i32)* %1) #3, !dbg !26

And Value* of callInst->GetOperand(1) resulting in: void (i32)*

How can I extract that (i32) information, so basically the function
parameter signature?

I want to add a feature into an llvm plugin that parses all calls,
identifies function pointers and then dumps the function signature.
(Yes if a function point is hidden to be a size_t* bitcast and
transfered I will not be able to see this, but in cases where this is
visible I would like to get that information.

Thank you!

Regards,
Marc

-- 
Marc Heuse
PGP: AF3D 1D4C D810 F0BB 977D  3807 C7EE D0A0 6BE9 F573


More information about the llvm-dev mailing list