MacOS Classic (Master) - // Failed to bind call argument.
gbody opened this issue · comments
gbody commented
Sample program LinkIIgs
There are a number of Failed to bind call argument after processing
Example Procedure print_time
I would expect that the reference stackArg12 should have been resolved to dwArg04
word32 print_time(char (* dwArg04)[])
{
ptr32 fp;
ci16 wLoc0C;
word16 wLoc08;
word16 wLoc0A;
word16 wLoc12;
word16 wLoc0E;
ui16 wLoc10;
ui16 wLoc06;
char (* d0_48)[];
word32 v11_24 = *(word32 *) 0x020C;
GetTime(fp + ~0x11);
int32 d0_33 = memory_avail();
if ((wLoc0C > 0x0C ? ~0x00 : 0x00) != 0x00)
d0_48 = g_116320;
else
d0_48 = g_116324;
int32 d0_77 = (int32) wLoc0C;
fprintf(g_116B24, "%s, %s %d, %d %d:%.2d:%.2d %s (%.7d bytes of memory available)", *((char *) g_a1163A2 + wLoc06 * 0x04), *((char *) g_a11636E + wLoc10 * 0x04), (int32) wLoc0E, (int32) wLoc12, (int32) (int16) __swap(SEQ(d0_77 % 0x0C, d0_77 /16 0x0C)), (int32) wLoc0A, (int32) wLoc08, d0_48, d0_33);
if (dwArg04 != null)
{
// Failed to bind call argument.
// Please report this issue at https://github.com/uxmal/reko
char * stackArg12 = (char *) <invalid>;
fprintf(g_116B24, " %s", stackArg12);
}
fprintf(g_116B24, "\r");
return v11_24;
}
00104222 200C move.l a4,d0 |
00104224 4FEF 002C lea $002C(a7),a7 |
00104228 6712 beq $0010423C | if (dwArg04 != null)
0010422A 2F0C move.l a4,-(a7) | StackArg12 should be equal to dwArg04
0010422C 486D F6B8 pea -$0948(a5)
00104230 486D FE74 pea -$018C(a5)
00104234 4EBA 394A jsr.l fprintf
gbody commented
Project file.
LinkIIGS---procedure-names.zip
John Källén commented
Commit e1bfb75 resolved this issue. Thanks for reporting it!