I had a look at the assembler generated by 3.3.1 .....
# Var uix located in stack [rsp+83240] movl %edx,%eax movq %rax,83280(%rsp) # Var AttackLoc *located in stack [rsp+83280]* # [503] var ..... # [587] TestLoc := AttackLoc; *movl 83280(%rsp),%r14d* # <<--------------******** # Var AttackLoc *located in register r14d* movl %r14d,24(%rsp) ..... AttackLoc location is changed to a register as before, but here it is actually moved with a movl. It seems the bug is caused by the absence of this movl instruction. Cheers, Peter _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal