1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-26 08:32:00 +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 ** We abuse the Collection somewhat by using it to store line
** numbers. ** numbers.
*/ */
CollReplace (&CurrentFunc->LocalsBlockStack, (void *)(long)GetCurrentLine (), CollReplace (&CurrentFunc->LocalsBlockStack,
CollCount (&CurrentFunc->LocalsBlockStack) - 1); (void *)(size_t)GetCurrentLine (),
CollCount (&CurrentFunc->LocalsBlockStack) - 1);
} else { } else {
/* Non-initialized local variable. Just keep track of /* Non-initialized local variable. Just keep track of

View File

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