[cfe-dev] -Wtautological-constant-compare issues
Marshall Clow via cfe-dev
cfe-dev at lists.llvm.org
Wed Dec 20 07:06:54 PST 2017
On Tue, Dec 19, 2017 at 7:51 PM, John McCall <rjmccall at apple.com> wrote:
> 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; see
> https://reviews.llvm.org/D39149 for my initial attempt to work around the
> warning, and then 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 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, 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
> 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.
Yesterday I received the following bug report against libc++:
Bug 35698 - include/istream causes test failures on x86 due to
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the cfe-dev