<p dir="ltr">> Our current issue is not reading old bitcode but what to do with new bitcode.<br>
><br>
> For instance you install a beta version of Xcode, build a project with LTO, and then revert Xcode to the previous version.<br>
> At this point the bitcode on your disk is too new for your installed toolchain and a non-clean build may crash libLTO.</p>
<p dir="ltr">That is a bug in llvm. It should never crash on any input. A newer bitcode is just a special case.</p>
<p dir="ltr">I am confident we can get there by fuzz testing.</p>
<p dir="ltr">> Another case is when some people distribute static archive that contains bitcode. Right now we end-up with terrible crash reports while we want to improve user experience with great diagnostics.</p>
<p dir="ltr">With what we have in trunk we should be able to implement errors like:</p>
<p dir="ltr">Error: unknown linkage number XX. Input is likely from a newer llvm version. </p>
<p dir="ltr">Would that be sufficient? </p>
<p dir="ltr">Cheers, Rafael </p>