<div dir="ltr"><div class="gmail_extra">I agree that this really needs to be fixed before 3.4...<br><div class="gmail_quote">On Mon, Nov 18, 2013 at 9:56 AM, Bob Wilson <span dir="ltr"><<a href="mailto:bob.wilson@apple.com" target="_blank" class="cremed">bob.wilson@apple.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id=":4fq" style="overflow:hidden">Sometime over the last year, and I'm fairly certain it has been since we released 3.3, the debug info metadata format has changed in incompatible ways.  If you try to use an older bit code file with the current compiler, it is not uncommon for the compiler to crash.  This goes against our goals for keeping backward compatibility for bit code files and is especially problematic for LTO since you can't reliably mix objects from different versions of clang.<br>
</div></blockquote><div><br></div><div>I don't think that you need LTO for this to be a problem. The bitcode really has to be readable by future versions of LLVM.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div id=":4fq" style="overflow:hidden">
<br>
At a minimum, it seems like we need a version number in the debug info metadata so we can detect this situation and avoid crashing.<br></div></blockquote><div><br></div><div>Or to put it in the terms of the IR: we need to autoupgrade the debug info metadata just like we do intrinsics. With debug info this might (at the worst) involve dropping old metadata.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id=":4fq" style="overflow:hidden">
<br>
I don't have a test case but we should be able to come up with one if needed.</div></blockquote></div><br>I think doing so would be useful.</div></div>