<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jan 14, 2015 at 11:39 AM, Duncan P. N. Exon Smith <span dir="ltr"><<a href="mailto:dexonsmith@apple.com" target="_blank">dexonsmith@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
> On 2015-Jan-14, at 11:26, Adrian Prantl <<a href="mailto:aprantl@apple.com">aprantl@apple.com</a>> wrote:<br>
><br>
><br>
>> On Jan 14, 2015, at 11:12 AM, David Blaikie <<a href="mailto:dblaikie@gmail.com">dblaikie@gmail.com</a>> wrote:<br>
>><br>
>><br>
>><br>
>> On Wed, Jan 14, 2015 at 11:04 AM, Adrian Prantl <<a href="mailto:aprantl@apple.com">aprantl@apple.com</a>> wrote:<br>
>> One small request: Omitting the column field from MDLocation if it is 0 is fine, because it won’t make it into the line table. Omitting the line if it is 0 is not, because it gives the wrong impression that the line is being ignored, which is not the case. Line 0 will be emitted in the line table and has special semantics (Line 0 in DWARF may be used to mark compiler-generated code that has no corresponding source line number).<br>
>><br>
>> I don't know - I think I might be OK with it being implicitly zero (I think that's the column behavior - if the column is never set it's just zero in the line table? (which is "no specific column") - that seems consistent with zero line ("no actual line in the source code”))<br>
><br>
> The difference is that column 0 won’t be emitted into the line table, but line 0 will be — which is why I think it would less misleading to mirror this behavior in the IR.<br>
<br>
</span>What about this:<br>
<br>
  - Still have `MDLocation(scope: !0)` imply `line: 0`.<br>
  - Change printout to include `line:` even when it's `0`.<br>
<br>
There's a sane default, so we shouldn't have to specify it.<br>
However, the value is important and relevant, so the assembly<br>
writer *does* print it out.<br>
<br>
Thoughts?<br>
<br>
(Frankly I still prefer `line: 0` being omitted, but it did<br>
seem kind of funny when I was updating tests that CHECK for<br>
`line: 0` that they now check for `MDLocation(scope:`, so I<br>
guess on balance I'm indifferent here.)</blockquote><div><br>I'm pretty much in agreement with you on all counts there.<br><br>Omitting it is important for easy of writability of test cases.<br><br>I'm not sure it'll substantially hinder readability to have it omitted, so I'm not in any hurry to have it print by default - but perhaps others feel more strongly.<br> </div></div><br></div></div>