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:
parent
10c1b050c7
commit
f36b9b544d
2 changed files with 4 additions and 4 deletions
|
@ -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 */
|
/* Load a constant into the primary register */
|
||||||
{
|
{
|
||||||
unsigned char B1, B2, B3, B4;
|
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 */
|
/* Define data with the size given in flags */
|
||||||
{
|
{
|
||||||
if (flags & CF_CONST) {
|
if (flags & CF_CONST) {
|
||||||
|
|
|
@ -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 */
|
/* Load a constant into the primary register */
|
||||||
|
|
||||||
void g_getstatic (unsigned Flags, uintptr_t Label, long Offs);
|
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);
|
void g_res (unsigned n);
|
||||||
/* Reserve static storage, n bytes */
|
/* 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 */
|
/* Define data with the size given in flags */
|
||||||
|
|
||||||
void g_defbytes (const void* bytes, unsigned count);
|
void g_defbytes (const void* bytes, unsigned count);
|
||||||
|
|
Loading…
Add table
Reference in a new issue