<div dir="ltr"><span style="font-size:12.8px">I was wondering if someone could explain why </span><font face="monospace, monospace" style="font-size:12.8px">CallInst::getCalledFunc</font><span style="font-size:12.8px"> behaves the way it does.</span><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">For simple, direct call instructions in my IR, that method behaves just as one would expect.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">However, for instructions like this:</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><font face="monospace, monospace">%25 = call i32 (%struct._IO_FILE*, ...)* bitcast (i32 (...)* @close to i32 (%struct._IO_FILE*, ...)*)(%struct._IO_FILE* %24), !dbg !695</font></blockquote><div><br></div><div><font face="monospace, monospace">getCalledFunc</font> returns null.</div><div><br></div><div>I know <span style="font-family:monospace,monospace">getCalledFunc</span> is <a href="http://llvm.org/docs/doxygen/html/classllvm_1_1CallInst.html#a0bcd4131e1a1d92215f5385b4e16cd2e" target="_blank">expected to return null</a> on indirect calls, but I would have thought naming the callee via a constant expression like the one here would be considered a direct call.</div></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Thanks,</div><div style="font-size:12.8px">Christian</div></div>