Indirect function call


The "LLVM Language Reference Manual" mentions about "indirect function call".
I am just curious about what exactly is the __syntax__ of them and how I can
get the callee of an indirect callsite.

From my point of view, there is hardly any cases where indirect calls are

needed, because anywhere we use a "fptr" in C, it could just be represented
in LLVM IR like this:

%tmp = load void ()** %fptr
call void ()* %tmp( )

So what is indirect call used for?

Sorry, again for my noise. :frowning:
The paper -- "The LLVM Instruction Set and Compilation Strategy" thoroughly discussed the issue
although not mentioned in details in "Ref Manual".

So what is indirect call used for?

Virtual method calls or delegates :slight_smile: