<div dir="ltr"><div><div>Hi everyone,<br><br></div>In llvm 4.0 the MCJIT::getFunctionAddress function return 0 (a null address) when the symbol is not found :<br></div><br><i>uint64_t MCJIT::getSymbolAddress(const std::string &Name, bool CheckFunctionsOnly) {<br>  std::string MangledName;<br>  {<br>    raw_string_ostream MangledNameStream(MangledName);<br>    Mangler::getNameWithPrefix(MangledNameStream, Name, getDataLayout());<br>  }<br>  return findSymbol(MangledName, CheckFunctionsOnly).getAddress();<br>}</i><br><br>Now with the current implementation (llvm 5.0 rc1 tag) :<br><br><div><div><i><span style="font-family:arial,helvetica,sans-serif">uint64_t MCJIT::getSymbolAddress(const std::string &Name, bool CheckFunctionsOnly) {<br>  std::string MangledName;<br>  {<br>    raw_string_ostream MangledNameStream(MangledName);<br>    Mangler::getNameWithPrefix(MangledNameStream, Name, getDataLayout());<br>  }<br>  if (auto Sym = findSymbol(MangledName, CheckFunctionsOnly)) {<br>    if (auto AddrOrErr = Sym.getAddress())<br>      return *AddrOrErr;<br>    else {<br>      report_fatal_error(AddrOrErr.takeError());<br>    }<br>  } else {<br>    report_fatal_error(Sym.takeError());<br>  }<br>}</span><br><br></i></div><div>If the function <span style="font-family:arial,helvetica,sans-serif">findSymbol return</span><span style="font-family:arial,helvetica,sans-serif"> </span><span style="font-family:arial,helvetica,sans-serif">nullptr</span><span style="font-family:arial,helvetica,sans-serif">, we are executing report_fatal_error and kill everything :(</span><span style="font-family:arial,helvetica,sans-serif"></span><span style="font-family:arial,helvetica,sans-serif"><br></span></div><div><span style="font-family:arial,helvetica,sans-serif"><br>What is the reason for this change?</span><span style="font-family:arial,helvetica,sans-serif"> </span><span style="font-family:arial,helvetica,sans-serif">Is this a bug?</span></div><div><span style="font-family:arial,helvetica,sans-serif"><br>If this is intended, how can we check from the ExecutionEngine that the symbol already exists?<br><br><br></span></div><div><span style="font-family:arial,helvetica,sans-serif">Regards,<br></span></div><div><span style="font-family:arial,helvetica,sans-serif">Christophe<br></span></div><div><span style="font-family:arial,helvetica,sans-serif"><br><br><br></span></div><div><br></div><div><br></div></div></div>