<div dir="ltr">I can confirm that removing the ABI incompatibility fixes the issue for me locally.  I tested by commenting out the NDEBUG path in DebugEpochBase.h so that it always used the debug path, and then rebuilding everything.<br><div><br></div><div>Can we change this to be _DEBUG instead of NDEBUG?</div></div><br><div class="gmail_quote">On Wed, Mar 4, 2015 at 11:42 AM Reid Kleckner <<a href="mailto:rnk@google.com">rnk@google.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Mar 4, 2015 at 9:43 AM, Zachary Turner <span dir="ltr"><<a href="mailto:zturner@google.com" target="_blank">zturner@google.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">How necessary to this change is the ABI incompatibility between the cases where NDEBUG is and isn't defined?  Is it possible to make them ABI compatible while still keeping the meat of the change intact?<br><div><br></div><div>It doesn't really seem like a "nice" thing to do to require that people who use LLVM as a library use the same compilation flags as LLVM.  </div></div></blockquote><div><br></div></div></div></div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>Early in the history of LLVM, we allowed NDEBUG to control struct layout and general ABI. Then Alp Toker came along and decided this was a Bad Thing. He audited the headers and removed it all. Now it's crept back in.</div><div><br></div><div>In conclusion, what isn't tested will break. </div></div></div></div>
</blockquote></div>