https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93806
--- Comment #29 from Vincent Lefèvre <vincent-gcc at vinc17 dot net> ---
And with unsigned too (this should be a bit more readable):
#include <stdio.h>
int main (void)
{
volatile double d = -1.0;
double x = d;
unsigned int i = x;
printf ("%u\n", i);
if (x == -1.0)
printf ("%u\n", i);
return 0;
}
gives
4294967295
0
