1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-08 15:29:37 +00:00

Fix 32/64-bit int/pointer casts

This commit is contained in:
Bas Wassink 2019-03-23 01:14:04 +01:00
parent 2eac69a943
commit 0614078198
2 changed files with 8 additions and 7 deletions

View File

@ -275,8 +275,9 @@ static void ParseAutoDecl (Declaration* Decl)
** We abuse the Collection somewhat by using it to store line
** numbers.
*/
CollReplace (&CurrentFunc->LocalsBlockStack, (void *)(long)GetCurrentLine (),
CollCount (&CurrentFunc->LocalsBlockStack) - 1);
CollReplace (&CurrentFunc->LocalsBlockStack,
(void *)(size_t)GetCurrentLine (),
CollCount (&CurrentFunc->LocalsBlockStack) - 1);
} else {
/* Non-initialized local variable. Just keep track of

View File

@ -671,7 +671,7 @@ DefOrRef* AddDefOrRef (SymEntry* E, unsigned Flags)
DOR = xmalloc (sizeof (DefOrRef));
CollAppend (E->V.L.DefsOrRefs, DOR);
DOR->Line = GetCurrentLine ();
DOR->LocalsBlockId = (long)CollLast (&CurrentFunc->LocalsBlockStack);
DOR->LocalsBlockId = (ssize_t)CollLast (&CurrentFunc->LocalsBlockStack);
DOR->Flags = Flags;
DOR->StackPtr = StackPtr;
DOR->Depth = CollCount (&CurrentFunc->LocalsBlockStack);
@ -729,9 +729,9 @@ SymEntry* AddLabelSym (const char* Name, unsigned Flags)
/* Are we jumping into a block with initalization of an object that
** has automatic storage duration? Let's emit a warning.
*/
if ((long)CollLast (AIC) != DOR->LocalsBlockId &&
if ((size_t)CollLast (AIC) != (size_t)(DOR->LocalsBlockId) &&
(CollCount (AIC) < DOR->Depth ||
(long)CollAt (AIC, DOR->Depth - 1) != DOR->LocalsBlockId)) {
(size_t)CollAt (AIC, DOR->Depth - 1) != DOR->LocalsBlockId)) {
Warning ("Goto at line %d to label %s jumps into a block with "
"initialization of an object that has automatic storage duration",
GetCurrentLine (), Name);
@ -758,9 +758,9 @@ SymEntry* AddLabelSym (const char* Name, unsigned Flags)
/* Are we jumping into a block with initalization of an object that
** has automatic storage duration? Let's emit a warning.
*/
if ((long)CollLast (AIC) != DOR->LocalsBlockId &&
if ((ssize_t)CollLast (AIC) != DOR->LocalsBlockId &&
(CollCount (AIC) >= DOR->Depth ||
(long)CollLast (AIC) >= (long)DOR->Line))
(ssize_t)CollLast (AIC) >= (long)DOR->Line))
Warning ("Goto at line %d to label %s jumps into a block with "
"initialization of an object that has automatic storage duration",
DOR->Line, Name);