aaron.ballman added a comment.

In D150226#4404808 <https://reviews.llvm.org/D150226#4404808>, @rupprecht wrote:

> I suppose including this warning in `ShowInSystemHeader` with your diff above 
> would be a good first step anyway, right? If we're about to make it a hard 
> error anyway, then making it a `ShowInSystemHeader` error first would ease 
> that transition.

Yes and no.

If we're going to turn something into a hard error, letting folks implementing 
system headers know about it is important, so from that perspective, it makes 
sense to enable the diagnostic in system headers. However, *users* have no 
choice in their system headers (oftentimes) which makes the diagnostic 
unactionable for them as they're not going to (and shouldn't have to) modify 
system headers, so from that perspective, enabling the diagnostic in a system 
header introduces friction.

If this diagnostic is showing up in system headers, I think we would likely 
need to consider adding a compatibility hack to allow Clang to still consume 
that system header while erroring when outside of that system header (we've 
done this before to keep STL implementations working, for example). Between 
this need and the friction it causes users to have an unactionable diagnostic, 
I think we probably should not enable `ShowInSystemHeader`.


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

https://reviews.llvm.org/D150226

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

Reply via email to