[PATCH] D44559: [Sema] Wrong width of result of mul operation

Aaron Ballman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 21 10:01:23 PDT 2018


aaron.ballman added a comment.

In https://reviews.llvm.org/D44559#1044639, @rjmccall wrote:

> In https://reviews.llvm.org/D44559#1044186, @avt77 wrote:
>
> > >> In https://reviews.llvm.org/D44559#1040799, @rjmccall wrote:
> > >> 
> > >>> I think we're correct not to warn here and that GCC/ICC are being noisy.  The existence of a temporary promotion to a wider type doesn't justify warning on arithmetic between two operands that are the same size as the ultimate result.  It is totally fair for users to think of this operation as being "closed" on the original type.
> > >> 
> > >> 
> > >> Could you please clarify, are you saying that PR35409 <https://bugs.llvm.org/show_bug.cgi?id=35409> is not a bug, and clang should continue to not warn in those cases?
> > > 
> > > Correct.
> >
> > Does it mean we should abandon this revision? On the other hand it's a real bug, isn't it?
>
>
> Not as I see it, no.


Do you see this code as having a bug when `a` is >= 182?

  short foo(unsigned char a) {
    return a * a;
  }

(If you don't like seeing `unsigned char`  you can imagine it was spelled as `uint8_t`.)


https://reviews.llvm.org/D44559





More information about the llvm-commits mailing list