<div dir="ltr">I have encountered the same issue, but my use case is probably a little different. I'm using clang in an interactive setting, where users frequently mistype their #include's. However, I see there already is a SuppressIncludeNotFoundError, in the Preprocessor, which is basically what I need (though I would still prefer to get the diagnostic that the file wasn't found as an error).</div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jan 4, 2015 at 10:19 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 Sat, Jan 3, 2015 at 11: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">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></span><div>Olivier, is this also the case for you, or do you want to see other diagnostics after a missing #include?</div><span class=""><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc 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></span><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><span class=""><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc 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>
> <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><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><br>
</blockquote></span></div><br></div></div>
<br>_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu">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><br>
<br></blockquote></div><br></div>