you are viewing a single comment's thread
view the rest of the comments
[–] 4 points 2 years ago (1 child)

It will not "overflow". Signed integer overflow is undefined behavior. The compiler could remove the whole loop or do anything else imaginable (or not).

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 2 years ago (1 child)

    TIL!

    I wonder how many languages out there do define what happens on integer overflow.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 2 years ago

    Languages with dynamic typing and implicit large-integer types, such as Python and Ruby, generally just convert to that large-integer type.

    I figured Java would probably define the behavior in the JVM, but based on a quick web search it sounds like it probably doesn't by default, but does provide library methods to add or subtract safely.

    Rust guarantees a panic by default, but provides library methods for wrapping, saturating, and unchecked (i.e. unsafely opting back in to undefined behavior).

  • source
  • parent