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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
          Component|sanitizer                   |middle-end
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot 
gnu.org

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Testcase that goes wrong without -fsanitize=undefined:

short s = 2;
short y = 1;
int i;
int main() {
    i = -(s + (int)(~( y == 0 ? 1 : 0 , (unsigned)(0/y)))) + 0x7fffffff;
    return 0;
}

folded to:

;; Function main (null)
;; enabled by -tree-original


{
  i = y == 0;, -2147483648(OVF) - (int) s;;
  return 0;
}

Reply via email to