aaron.ballman added a comment.

In https://reviews.llvm.org/D44559#1040398, @craig.topper wrote:

> gcc also warns for this
>
> short foo(char a) {
>
>   return a * a;
>
> }
>
> Despite the fact that the char would be promoted to int, the upper bits are 
> just sign bits and the multiply result still fits in a short.


But it *should* warn if the underlying char type is unsigned, because 255 * 255 
= 65025 which is too large to fit into a signed short.


Repository:
  rC Clang

https://reviews.llvm.org/D44559



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

Reply via email to