1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-01 13:41:34 +00:00

Fix segfault on 64-bit LLP64 Windows builds

There are many occurrences of unsigned long in codegen.h's function
arguments. Changing g_getimmed and g_defdata makes `make` succeed
without segfaulting. I don't know if it makes cc65 behave correctly in
all cases, or if there are more unsigned long that need to be changed.
This commit is contained in:
nyanpasu64 2022-02-21 21:15:43 -08:00 committed by mrdudz
parent eb2f2a2fca
commit b9651e4b06
2 changed files with 4 additions and 4 deletions

View File

@ -689,7 +689,7 @@ void g_restore_regvars (int StackOffs, int RegOffs, unsigned Bytes)
void g_getimmed (unsigned Flags, unsigned long Val, long Offs)
void g_getimmed (unsigned Flags, uintptr_t Val, long Offs)
/* Load a constant into the primary register */
{
unsigned char B1, B2, B3, B4;
@ -4394,7 +4394,7 @@ void g_res (unsigned n)
void g_defdata (unsigned flags, unsigned long val, long offs)
void g_defdata (unsigned flags, uintptr_t val, long offs)
/* Define data with the size given in flags */
{
if (flags & CF_CONST) {

View File

@ -271,7 +271,7 @@ void g_restore_regvars (int StackOffs, int RegOffs, unsigned Bytes);
void g_getimmed (unsigned Flags, unsigned long Val, long Offs);
void g_getimmed (unsigned Flags, uintptr_t Val, long Offs);
/* Load a constant into the primary register */
void g_getstatic (unsigned Flags, uintptr_t Label, long Offs);
@ -461,7 +461,7 @@ void g_ge (unsigned flags, unsigned long val);
void g_res (unsigned n);
/* Reserve static storage, n bytes */
void g_defdata (unsigned flags, unsigned long val, long offs);
void g_defdata (unsigned flags, uintptr_t val, long offs);
/* Define data with the size given in flags */
void g_defbytes (const void* bytes, unsigned count);