https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114554
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Plus I get the following warnings at -O2: In function 'wyrand', inlined from 'main' at <source>:84:5: <source>:76:7: warning: iteration 2 invokes undefined behavior [-Waggressive-loop-optimizations] 76 | *p1 += 3257665815644502181; | ^~ <source>: In function 'main': <source>:83:12: note: within this loop 83 | for (; i < 10; i++) { | ~~^~~~ ASM generation compiler returned: 0 In function 'wyrand', inlined from 'main' at <source>:84:5: <source>:76:7: warning: iteration 2 invokes undefined behavior [-Waggressive-loop-optimizations] 76 | *p1 += 3257665815644502181; | ^~ <source>: In function 'main': <source>:83:12: note: within this loop 83 | for (; i < 10; i++) { | ~~^~~~ With -fwrapv, the code "works" but that is because signed integer overflow has changed from undefined behavior to being defined as wrapping.