https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115695

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Reduced testcase:
```
int f() {
  short a = 0;
  return (unsigned)a * sizeof(short);
}
```

The warning in GCC 9 and before was:
```
<source>:4:16: warning: conversion to 'long unsigned int' from 'short int' may
change the sign of the result [-Wsign-conversion]

```

I think that is wrong too.

Looks like the warning is happening after some optimization moving the multiply
and then giving the wrong types incorrectly.

Reply via email to