Edit: Dass da was wegoptimiert wird, hat sich als falsch herausgestellt. Es war ein Fehler in den Typen. Anfängerfehler bei C/C++, wenn man hardwarenah wird.
Angeblich optimieren viele Compiler sowas wie (i+1)<i weg. Also Überlaufprüfungen. Weil Überläufe im Sprachstandard nicht definiert sind. Würde mich freuen, zu hören, ob eure Programmiere der Quellcode mal danach durchforstet haben.
Bei Visual Studio Community-Edition ergibt der unten stehende Quellcode die darauf folgend angegebenen Ergebnisse.
C
32758 32759 32761 32762 32763 32764 32765 32766 32767 -32768 Programmende
Also macht der das auch. (Von Hand abgetippt; kann Abschreibefehler enthalten.)