<div dir="ltr">yeah, I'm not terribly fussed either way - we support old DWARF versions on an as-needed basis, so someone can complain if they get DWARF parsing errors or if they get optimized out debug info. Though while I like the certainty of implementing on-spec, it's easier for a user to identify a problem if they get a parsing error, I guess... :/ Seems like a dodgy way to drive adoption of newer standards, though.<br><br>Meh.<br><br>- Dave</div><br><div class="gmail_quote"><div dir="ltr">On Mon, Aug 28, 2017 at 10:01 AM Adrian Prantl via Phabricator <<a href="mailto:reviews@reviews.llvm.org">reviews@reviews.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">aprantl added a comment.<br>
<br>
In fully-compliant mode we should just not emit any DWARF expression that ends with a DW_OP_stack_value in DWARF < 4. However, LLDB and GDB (at least the version Apple used to ship in Xcode) support a couple of expressions that are outside of the specification but do work in practice, so I'm reluctant to drop support for that by being stricter.<br>
That said, Darwin has been using DWARF 4 for a while now, so an argument could be made that it is okay to regress on older deployment targets for the sake of correctness/standards compliance.<br>
<br>
<br>
<a href="https://reviews.llvm.org/D35994" rel="noreferrer" target="_blank">https://reviews.llvm.org/D35994</a><br>
<br>
<br>
<br>
</blockquote></div>