[cfe-dev] -Wtautological-constant-compare issues

John McCall via cfe-dev cfe-dev at lists.llvm.org
Tue Dec 19 19:51:26 PST 2017


> On Dec 19, 2017, at 6:02 PM, Shoaib Meenai <smeenai at fb.com> wrote:
> 
> Hi all (CC some people who have been involved in this discussion already and Hans for clang 6 release discussion),
>  
> -Wtautological-constant-compare was introduced in r315614 to diagnose tautological comparisons against a type's maximum and minimum bounds. However, this warning can fire spuriously when a type's size is platform-dependent. For example, libc++ has some generic code for which the warning fires on platforms where int and long have the same size; seehttps://reviews.llvm.org/D39149 <https://reviews.llvm.org/D39149> for my initial attempt to work around the warning, and then https://reviews.llvm.org/D41368 <https://reviews.llvm.org/D41368>, which just silences the warning where it's problematic.
>  
> Unfortunately, this appears to be a pretty widespread problem. For example, Petr Hosek reported in https://reviews.llvm.org/D39462 <https://reviews.llvm.org/D39462> that he had to globally disable the warning when they rolled out a newer clang. Roman attempted to address this problem by having the warning take type size differences into account in https://reviews.llvm.org/D39462 <https://reviews.llvm.org/D39462>, but that's tricky to implement and hit some implementation roadblocks.
>  
> I think shipping the warning in its current state in clang 6 is going to be problematic, because there are going to be many instances of generic code running into spurious warnings. At the very least, I think the warning as-is shouldn't be part of -Wall. What are other people's thoughts on this issue?

If there's significant community concern about this, and to me that standard has been met, then I think the only reasonable solution is to take it out of -Wall until we feel more confident in it.

John.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20171219/76954279/attachment-0001.html>


More information about the cfe-dev mailing list