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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[14 Regression] Misaligned  |Signed integer overflow
                   |address check missing       |check is not done if on
                   |                            |left side comma operator
                   |                            |and unused

--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Reduced testcase:
```
int16_t  func_1(void)
{ 
    int32_t l_4 = 0x9351F200;
    int t = (((uint16_t)l_4 * (uint16_t)l_4) == 123), 1 ;
    return t;
}
```

First off GCC never produced an overflow check here; which I think is correct
as left hand side of the comma operator has no side effects otherwise. Yes
there is undefined behavior in that multiply with respect to an overflow but I
am not sure GCC needs to report it ...

Reply via email to