<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, May 6, 2015 at 5:30 PM, Zhoulai <span dir="ltr"><<a href="mailto:zell08v@gmail.com" target="_blank">zell08v@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I just tried with reinterpret-cast instead of static_cast. It seems working. I hope it is safe.</div></blockquote><div><br>Yep, my mistake. reinterpret_cast is the right tool for this conversion.<br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><span class="HOEnZb"><font color="#888888"><br></font></span></div><div class="gmail_extra"><span class="HOEnZb"><font color="#888888"><br clear="all"><div><div>Zhoulai</div></div>
<br></font></span><div class="gmail_quote"><span class="">On Wed, May 6, 2015 at 5:21 PM, Zhoulai <span dir="ltr"><<a href="mailto:zell08v@gmail.com" target="_blank">zell08v@gmail.com</a>></span> wrote:<br></span><div><div class="h5"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>David, <br><br></div>As you suggested, I try to  compile the following test code:<br><div><br><i>include "llvm/IR/Instruction.h"<br>#include "stdint.h"<br>extern void callback(intptr_t);<br>void foo(){<br>  llvm::Instruction* i;<br>  intptr_t zzzz=static_cast<intptr_t>(i);<br>   callback(zzzz);<br>}<br></i><br></div><div>but got this compilation error:<br><br><i>      'intptr_t' (aka 'long') is not allowed<br>  intptr_t zzzz=static_cast<intptr_t>(i);<br>                ^~~~~~~~~~~~~~~~~~~~~~~~<br>1 warning and 1 error generated.<br></i><br><br></div><div>For information, my OS is a Ubuntu 14.04 (VM), and my command line used to compile the program is<br><br><i>clang  prog.cpp  -c -fno-rtti -std=c++11 `llvm-config --cxxflags` -o prog.cpp.bc <br></i><br></div><div>Any idea on why the casting does not work? Thanks in advance. <br></div><div class="gmail_extra"><span><font color="#888888"><br clear="all"><div><div>Zhoulai</div></div></font></span><div><div>
<br><div class="gmail_quote">On Wed, May 6, 2015 at 4:12 PM, David Blaikie <span dir="ltr"><<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">intptr_t id = static_cast<intptr_t>(inst); <br><br>?</div><div class="gmail_extra"><br><div class="gmail_quote"><div><div>On Wed, May 6, 2015 at 3:33 PM, Zhoulai <span dir="ltr"><<a href="mailto:zell08v@gmail.com" target="_blank">zell08v@gmail.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr"><div>Hi, </div><div><br></div><div>I wonder whether we can easily retrieve an LLVM instruction ID that uniquely identifies the instruction. In my case, I need to avoid using llvm::Instruction* directly. Given an 'inst' of type llvm::instruction*, is there some readily usable method as simple as  “int id = inst->id( )”?  Thanks. <br></div><span><font color="#888888"><div><br></div><div><div>Zhoulai</div></div>
</font></span></div>
<br></div></div><span>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
<br></span></blockquote></div><br></div>
</blockquote></div><br></div></div></div></div>
</blockquote></div></div></div><br></div>
</blockquote></div><br></div></div>