ilya-biryukov added a comment.

In D48116#1322878 <https://reviews.llvm.org/D48116#1322878>, @nik wrote:

> In D48116#1144732 <https://reviews.llvm.org/D48116#1144732>, @ilya-biryukov 
> wrote:
>
> > Have you considered doing the same filtering in ASTUnit's 
> > `StoredDiagnosticConsumer`? It should not be more difficult and allows to 
> > avoid changing the clang's diagnostic interfaces. That's what we do in 
> > clangd.
>
>
> Hmm, it's a bit strange that StoredDiagnosticConsumer should also start to 
> filter things.


I

> For filtering in StoredDiagnosticConsumer one needs to pass the new bool 
> everywhere along where "bool CaptureDiagnostics" is already passed on (to end 
> up in the StoredDiagnosticConsumer constructor) . Also, 
> ASTUnit::CaptureDiagnostics is then not enough anymore since the new bool is 
> also needed in getMainBufferWithPrecompiledPreamble(). One could also (2) 
> convert  "bool CaptureDiagnostics" to an enum with enumerators like 
> CaptureNothing, CaptureAll, CaptureAllWithoutNonErrorsFromIncludes to make 
> this a bit less invasive.
>  If changing clang's diagnostic interface should be avoided, I tend to go 
> with (2). Ilya?

Yeah, LG. The changes in the `ASTUnit` look strictly better than changes in 
clang - the latter seems to already provide enough to do the filtering.
If you avoid changing the `StoredDiagnosticConsumer` (or writing a filtering 
wrapper for `DiagnosticConsumer`), you'll end up having some diagnostics inside 
headers generated **after** preamble was built, right?
That might be either ok or not, depending on the use-case.


Repository:
  rC Clang

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D48116/new/

https://reviews.llvm.org/D48116



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to