title: Which "C" implementation(s) do not implement modulo arithmetic for signed integers?
body: <p>In reference to <a href="http://port70.net/~nsz/c/c11/n1570.html#3.4.3" rel="nofollow noreferrer">C11 draft, section 3.4.3</a> and <a href="http://port70.net/~nsz/c/c11/n1570.html#H.2.2" rel="nofollow noreferrer">C11 draft, section H.2.2</a>, I'm looking for "C" implementations that implement behaviour other than modulo arithmetic for signed integers.</p>
  
  <p>Specifically, I am looking for instances where this is the default behaviour, possibly due to the underlying machine architecture.</p>
  
  <p>Here's a code sample and terminal session that illustrates modulo arithmetic behaviour for signed integers:</p>
  
  <p><code>overflow.c</code>:</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;limits.h&gt;
  
  int main(int argc, char *argv[])
  {
      int a, b;
      printf ( "INT_MAX = %d\n", INT_MAX );
      if ( argc == 2 &amp;&amp; sscanf(argv[1], "%d,%d", &amp;a, &amp;b) == 2 ) {
          int c = a + b;
          printf ( "%d + %d = %d\n", a, b, c );
      }
      return 0;
  }
  
  </code></pre>
  
  <p>Terminal session:</p>
  
  <pre><code>$ ./overflow 2000000000,2000000000
  INT_MAX = 2147483647
  2000000000 + 2000000000 = -294967296
  </code></pre>