quakeforge/tools/qfcc/test/double-alias.r
Bill Currie cfe7c44df0 [gamecode] Rename ev_integer to ev_int
And other related fields so integer is now int (and uinteger is uint). I
really don't know why I went with integer in the first place, but this
will make using macros easier for dealing with types.
2022-01-18 13:27:19 +09:00

41 lines
715 B
R

void printf (string fmt, ...) = #0;
# define M_PI 3.14159265358979323846
union {
double d;
int i[2];
} type_pun;
int alias_printf (string fmt, ...);
int
test_alias ()
{
int fail = 0;
type_pun.d = M_PI;
fail = alias_printf ("%g %08x%08x\n", type_pun.d,
type_pun.i[1], type_pun.i[0]);
return fail;
}
int
alias_printf (string fmt, ...)
{
int fail = 0;
// this will fail on big-endian systems
fail = (@args.list[2].int_val != 0x54442d18
|| @args.list[1].int_val != 0x400921fb);
printf ("%g %08x%08x\n",
@args.list[0].int_val,
@args.list[2].int_val,
@args.list[1].int_val);
return fail;
}
int
main ()
{
int fail = 0;
fail |= test_alias ();
return fail;
}