fixed negative int overflow