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);}
      |                       ^

Reply via email to