mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-23 04:42:32 +00:00
cfe7c44df0
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.
41 lines
715 B
R
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;
|
|
}
|