<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Jan 5, 2015 at 8:30 AM, Richard Smith <span dir="ltr"><<a href="mailto:richard@metafoo.co.uk" target="_blank">richard@metafoo.co.uk</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"><div class="gmail_extra"><div class="gmail_quote"><span class="">On Sun, Jan 4, 2015 at 8:15 PM, Jason Haslam <span dir="ltr"><<a href="mailto:jason.haslam@gmail.com" target="_blank">jason.haslam@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">I wonder if it should continue to report all fatal errors instead of just file-not-found.</div></blockquote><div><br></div></span><div>I think it makes sense to report file-not-found repeatedly, because recovery from previous errors is very unlikely to be the cause of later file-not-found errors. For the other fatal cases, that is not the case, so I don't think it makes as much sense to suppress them.</div></div></div></div></blockquote><div><br></div><div>Umm, ... to *not* suppress them =)</div><div> </div><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"><span class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Also, my patch sort of circumvents the 20 error fatal cutoff. Maybe that’s okay.</div></blockquote><div><br></div></span><div>That seems problematic; if essentially-correct code #includes a bunch of headers, but the build fails due to a missing -I path, it seems especially important to respect the error limit.</div><div><br></div><div>I would prefer that we add a flag to diagnostics to indicate if they should be shown even after a fatal error, and then mark err_pp_file_not_found with that flag in the .td file, rather than hard-coding that particular diagnostic.</div><div><div class="h5"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><span><font color="#888888"><div>Jason</div></font></span><div><div><div><br></div><div><br><div><blockquote type="cite"><div>On Jan 4, 2015, at 2:19 AM, Richard Smith <<a href="mailto:richard@metafoo.co.uk" target="_blank">richard@metafoo.co.uk</a>> wrote:</div><br><div><div dir="ltr" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><div class="gmail_extra"><div class="gmail_quote">On Sat, Jan 3, 2015 at 11:15 PM, Jason Haslam<span> </span><span dir="ltr"><<a href="mailto:jason.haslam@gmail.com" target="_blank">jason.haslam@gmail.com</a>></span><span> </span>wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">This is important to us for the same reasons. In our case we only care about reporting additional file-not-found errors.</blockquote><div><br></div><div>Olivier, is this also the case for you, or do you want to see other diagnostics after a missing #include?</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">The others usually become too noisy. I haven’t found any existing option to control this. We have a local patch to continue reporting file-not-found errors after a fatal error (may be slightly out of date):<br><br>--- a/lib/Basic/DiagnosticIDs.cpp<br>+++ b/lib/Basic/DiagnosticIDs.cpp<br>@@ -618,7 +618,7 @@ bool DiagnosticIDs::ProcessDiag(DiagnosticsEngine &Diag) const {<br><br> // If a fatal error has already been emitted, silence all subsequent<br> // diagnostics.<br>- if (Diag.FatalErrorOccurred) {<br>+ if (Diag.FatalErrorOccurred && DiagID != diag::err_pp_file_not_found) {<br> if (DiagLevel >= DiagnosticIDs::Error &&<br> Diag.Client->IncludeInDiagnosticCounts()) {<br> ++Diag.NumErrors;<br><br>I would love to see an option to control this behavior added to the mainline.</blockquote><div><br></div><div>I don't think we need an option for this; it seems reasonable to always report missing #includes, even if we've already hit a fatal error, because a missing include is very unlikely to be caused by a prior missing include (they may have a common cause, but that's OK).</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Are there already other flags meant specifically for IDE integration? Maybe this could piggyback on one of them or do something similar?<br><br>Jason<br><div><div><br><br>> On Dec 31, 2014, at 4:13 AM, Olivier J. G. <<a href="mailto:olivier.jg@gmail.com" target="_blank">olivier.jg@gmail.com</a>> wrote:<br>><br>> Hello,<br>><br>> We've run into a problem using libclang for cpp support in KDevelop: once an #included file is not found, a fatal error is generated which disables all further diagnostics.<br>><br>> In the context of KDevelop, it is quite important that this be downgraded to a non-fatal error so that further missing includes and issues can be marked in the IDE. It's further desirable that the IDE support is still helpful in the absence of a missing but unimportant #include.<br>><br>> I've found no way to do this with compiler flags; err_pp_file_not_found has no category so -Wno-fatal-errors=foo can't help (not clear if that's the correct method even if there was a category).<br>><br>> Is there a way to do this that I missed seeing? Can this diagnostic be re-mapped from fatal to error?<br>><br>> If there's no existing way to do this, could some interface or compiler flag be added so that err_pp_file_not_found_not_fatal is used instead? What would be the correct place/way to configure this?<br>><br>> Thanks,<br>><br>> -Olivier JG<br></div></div>> _______________________________________________<br>> cfe-dev mailing list<br>><span> </span><a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank">cfe-dev@cs.uiuc.edu</a><br>><span> </span><a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br><br><br>_______________________________________________<br>cfe-dev mailing list<br><a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank">cfe-dev@cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a></blockquote></div></div></div></div></blockquote></div><br></div></div></div></div></blockquote></div></div></div><br></div></div>
</blockquote></div><br></div></div>