<div dir="ltr">I believe, yes, the possible discriminators could be 0 and 1. But I'm still OK with treating zero as not-present for the purposes of the verbose/human-readable dumper. If someone's reading a dump with non-zero discriminators and the zero discriminator entries show up without a discriminator it's not ambiguous (ie: the dumper hasn't collapsed two distinct states (not present and zero) into one, losing information) it might be slightly confusing to the reader, but I don't think so. Seems pretty OK to treat zero as the default and not render it here in any case.</div><br><div class="gmail_quote"><div dir="ltr">On Fri, Jan 27, 2017 at 8:04 AM Simon Que <<a href="mailto:sque@google.com">sque@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg">The spec is saying "if only one block, then discriminator=0" but it's not the same logical meaning as "if discriminator==0, then there is only one block." If there are two blocks, could the possible discriminator values be 0 and 1?</div><div class="gmail_extra gmail_msg"></div><div class="gmail_extra gmail_msg"><br class="gmail_msg"><div class="gmail_quote gmail_msg">On Thu, Jan 26, 2017 at 5:30 PM, David Blaikie <span dir="ltr" class="gmail_msg"><<a href="mailto:dblaikie@gmail.com" class="gmail_msg" target="_blank">dblaikie@gmail.com</a>></span> wrote:<br class="gmail_msg"><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg"><br class="gmail_msg"><br class="gmail_msg"><div class="gmail_quote gmail_msg"><span class="gmail_msg"><div dir="ltr" class="gmail_msg">On Thu, Jan 26, 2017 at 2:09 PM Simon Que via Phabricator <<a href="mailto:reviews@reviews.llvm.org" class="gmail_msg" target="_blank">reviews@reviews.llvm.org</a>> wrote:<br class="gmail_msg"></div><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">sque added inline comments.<br class="m_1704679947921090876m_-1999535714428788584gmail_msg gmail_msg">
<br class="m_1704679947921090876m_-1999535714428788584gmail_msg gmail_msg">
<br class="m_1704679947921090876m_-1999535714428788584gmail_msg gmail_msg">
================<br class="m_1704679947921090876m_-1999535714428788584gmail_msg gmail_msg">
Comment at: lib/DebugInfo/Symbolize/DIPrinter.cpp:85<br class="m_1704679947921090876m_-1999535714428788584gmail_msg gmail_msg">
+    OS << "  Column: " << Info.Column << "\n";<br class="m_1704679947921090876m_-1999535714428788584gmail_msg gmail_msg">
+    OS << "  Discriminator: " << Info.Discriminator << "\n";<br class="m_1704679947921090876m_-1999535714428788584gmail_msg gmail_msg">
+  } else {<br class="m_1704679947921090876m_-1999535714428788584gmail_msg gmail_msg">
----------------<br class="m_1704679947921090876m_-1999535714428788584gmail_msg gmail_msg">
dblaikie wrote:<br class="m_1704679947921090876m_-1999535714428788584gmail_msg gmail_msg">
> sque wrote:<br class="m_1704679947921090876m_-1999535714428788584gmail_msg gmail_msg">
> > Should this be marked as DWARF-only, or placed in a DWARF-only section?<br class="m_1704679947921090876m_-1999535714428788584gmail_msg gmail_msg">
> I'm /guessing/ (though you can probably reproduce this by running -verbose on a checked in COFF/CodeView file - I assume/imagine we have some of those in the dumper testing) that the Discriminator is 0 when not provided?<br class="m_1704679947921090876m_-1999535714428788584gmail_msg gmail_msg">
><br class="m_1704679947921090876m_-1999535714428788584gmail_msg gmail_msg">
> Perhaps it'd be easy enough to not print it when it's zero? If that works/you can confirm CodeView is doing what I assume it is - add a test? (for either CV, or a case a zero or not present discriminator in ELF).<br class="m_1704679947921090876m_-1999535714428788584gmail_msg gmail_msg">
I am not familiar with possible values of the discriminator. Does discriminator == 0 mean it's invalid? Could it have a valid value of 0?<br class="m_1704679947921090876m_-1999535714428788584gmail_msg gmail_msg"></blockquote></span><div class="gmail_msg"><br class="gmail_msg">I'm not 100% sure either - just looked it up in the DWARF4 spec and it says "Where only one
block exists for a given source position, the discriminator value should be
zero. " - so, yes, seems it's default value of zero is the same as not-present, basically.<br class="gmail_msg"><br class="gmail_msg">So, yes, happy to not print it if it's zero to make it more terse in general and avoid confusion when dumping on platforms that don't have a discriminator at all.<br class="gmail_msg"> </div><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br class="m_1704679947921090876m_-1999535714428788584gmail_msg gmail_msg">
<br class="m_1704679947921090876m_-1999535714428788584gmail_msg gmail_msg">
<a href="https://reviews.llvm.org/D29094" rel="noreferrer" class="m_1704679947921090876m_-1999535714428788584gmail_msg gmail_msg" target="_blank">https://reviews.llvm.org/D29094</a><br class="m_1704679947921090876m_-1999535714428788584gmail_msg gmail_msg">
<br class="m_1704679947921090876m_-1999535714428788584gmail_msg gmail_msg">
<br class="m_1704679947921090876m_-1999535714428788584gmail_msg gmail_msg">
<br class="m_1704679947921090876m_-1999535714428788584gmail_msg gmail_msg">
</blockquote></div></div>
</blockquote></div><br class="gmail_msg"><br clear="all" class="gmail_msg"><div class="gmail_msg"><br class="gmail_msg"></div></div><div class="gmail_extra gmail_msg">-- <br class="gmail_msg"><div class="m_1704679947921090876gmail_signature gmail_msg" data-smartmail="gmail_signature"><div dir="ltr" class="gmail_msg">Simon Que<div class="gmail_msg">Software Engineer</div></div></div>
</div></blockquote></div>