Hi, I'm really stuck here, meanwhile I made the testing program look exactly the same in structure like the code sequence in question, forced both to use AnsiStrings and stared at the assembler code - to no avail, because I do not understand enough x86 asm. ;)
The string variable is holding the same directory name and path in both cases, of course. For the code look into my previous mail, please. Can someone comment on these snippets: <original> # [457] fpaccess((*ExpandFileName*) tmp , R_OK); movl $4,%ebx movl -192(%ebp),%eax call FPC_ANSISTR_INCR_REF leal -520(%ebp),%eax call FPC_ANSISTR_DECR_REF movl -192(%ebp),%eax movl %eax,-520(%ebp) movl %ebx,%edx movl -520(%ebp),%eax testl %eax,%eax jne .L583 movl $FPC_EMPTYCHAR,%eax .L583: call FPC_SYSC_ACCESS # [458] n := getlastoserror; call SYSUTILS_GETLASTOSERROR$$LONGINT movl %eax,-120(%ebp) # [459] writeln(n); call fpc_get_output </original> <test> # [11] res := fpaccess(tmp, R_OK); movl $4,%ebx movl U_P$STAT_TMP,%eax call FPC_ANSISTR_INCR_REF leal -44(%ebp),%eax call FPC_ANSISTR_DECR_REF movl U_P$STAT_TMP,%eax movl %eax,-44(%ebp) movl %ebx,%edx movl -44(%ebp),%eax testl %eax,%eax jne .L24 movl $FPC_EMPTYCHAR,%eax .L24: call FPC_SYSC_ACCESS movw %ax,U_P$STAT_RES # [13] res := getlastoserror; call SYSUTILS_GETLASTOSERROR$$LONGINT movw %ax,U_P$STAT_RES # [14] writeln(res); </test> For me the look structurally identical, but some differences like the $XXX-variables(?) don't. Marc _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal