X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=src%2Fcc65%2Fdatatype.c;h=1c17c27960007cdb3ad02da11436b774d5b96b78;hb=3f4096d3030095605f28b4cfa73563c53a563df6;hp=282385ed7e211c34173ff7dae4609f006ea80aa3;hpb=f817b05fa974ed51a7152bacb9aae566efc66f77;p=cc65 diff --git a/src/cc65/datatype.c b/src/cc65/datatype.c index 282385ed7..1c17c2796 100644 --- a/src/cc65/datatype.c +++ b/src/cc65/datatype.c @@ -6,10 +6,10 @@ /* */ /* */ /* */ -/* (C) 1998-2003 Ullrich von Bassewitz */ -/* Römerstrasse 52 */ +/* (C) 1998-2004 Ullrich von Bassewitz */ +/* Römerstraße 52 */ /* D-70794 Filderstadt */ -/* EMail: uz@musoftware.de */ +/* EMail: uz@cc65.org */ /* */ /* */ /* This software is provided 'as-is', without any expressed or implied */ @@ -138,7 +138,7 @@ void TypeFree (type* T) int SignExtendChar (int C) /* Do correct sign extension of a character */ { - if (SignedChars && (C & 0x80) != 0) { + if (IS_Get (&SignedChars) && (C & 0x80) != 0) { return C | ~0xFF; } else { return C & 0xFF; @@ -150,7 +150,7 @@ int SignExtendChar (int C) type GetDefaultChar (void) /* Return the default char type (signed/unsigned) depending on the settings */ { - return SignedChars? T_SCHAR : T_UCHAR; + return IS_Get (&SignedChars)? T_SCHAR : T_UCHAR; } @@ -327,6 +327,12 @@ void PrintFuncSig (FILE* F, const char* Name, type* Type) /* Print a comment with the function signature */ PrintType (F, GetFuncReturn (Type)); + if (D->Flags & FD_NEAR) { + fprintf (F, " __near__"); + } + if (D->Flags & FD_FAR) { + fprintf (F, " __far__"); + } if (D->Flags & FD_FASTCALL) { fprintf (F, " __fastcall__"); } @@ -570,6 +576,11 @@ unsigned TypeOf (const type* T) case T_ULONG: return CF_LONG | CF_UNSIGNED; + case T_FLOAT: + case T_DOUBLE: + /* These two are identical in the backend */ + return CF_FLOAT; + case T_FUNC: F = DecodePtr (T+1); return (F->Flags & FD_VARIADIC)? 0 : CF_FIXARGC;