https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115760
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |INVALID Status|UNCONFIRMED |RESOLVED --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- int32_t a = 1 / ((0 >= a) + (int32_t)4294967295); This uses `a` before it is initialized. The divide by zero is random. Sometimes it happens sometimes it does not even. <source>: In function 'main': <source>:3:41: warning: 'a' is used uninitialized [-Wuninitialized] 3 | void main() { int32_t a = 1 / ((0 >= a) + (int32_t)4294967295); printf("%d", a);} | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ <source>:3:23: note: 'a' was declared here 3 | void main() { int32_t a = 1 / ((0 >= a) + (int32_t)4294967295); printf("%d", a);} | ^