<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>On Feb 1, 2012, at 7:56 AM, Douglas Gregor wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Jan 31, 2012, at 10:25 PM, Ted Kremenek wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Jan 31, 2012, at 8:21 PM, Douglas Gregor wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><blockquote type="cite"><div class="gmail_quote"><div>It seems nice to distinguish in the text where the actual text comes from. That said, it just seems nice-to-have, not super important.</div><div><br></div><div>Certainly "#error" seems like a pretty lame way to do this. ;] My initial thought would be:</div><blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; ">foo.cc:42:13: error: (from source directive) this code requires widget to be defined</blockquote><div>or some variant thereof.</div></div></blockquote></div></div></span></blockquote><div><br></div><div>That seems even more verbose, and not any more clearer.</div><br><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><blockquote type="cite"><div class="gmail_quote"><div><br></div><div>Among other nice things is that then the message is the same between #error and #warning, and only the level changes. The downside I see is that it's more verbose.</div></div></blockquote><div><br></div><div>That's a step up from "#error", but I still find it unnecessary.</div></div></div></span></blockquote></div><br><div>We can always support another command line flag that causes us to omit the '#error' and the '#warning' in the message for clients that don't want it (which do exist) since they can use diagnostic categories.  That may seem like overkill, but we have plenty of driver flags for controlling the behavior of diagnostics.  The suggestion of having "from source directive" is just a poor man's replacement of not having good diagnostic categories on the command line (where they make less sense).</div></div></blockquote><div><br></div>We shouldn't be introducing a flag to control a minor aspect of two related diagnostics.</div><div><br><span class="Apple-tab-span" style="white-space:pre">  </span>- Doug</div><br></div></blockquote></div><br><div>Why?  We have flags for controlling the depth of macro stacks in text diagnostics.  How is this any different?</div><div><br></div><div>More generally, I can see different clients wanting to control the diagnostic output of the compiler.  We can look for a general solution here; e.g., a single flag that can control various diagnostic options.</div></body></html>