Invalid "Type size mismatch, possible loss of data" for for-in loop when compiling for x86_64
## Summary Consider the following program: ```pascal program test; procedure foo; var i: integer; a: array of integer; begin a := NIL; for i in a do begin end; end; begin foo; end. ``` Everything is fine when I compile it with `fpc -vh -CO test.pas`. But once I add `-Px86_64`, it emits a `Type size mismatch, possible loss of data / range check error` hint for `for i in a do`: ```cmd fpc -vh -CO -Px86_64 test.pas Hint: Start of reading config file C:\FPC\3.2.2\bin\i386-Win32\fpc.cfg Hint: End of reading config file C:\FPC\3.2.2\bin\i386-Win32\fpc.cfg Free Pascal Compiler version 3.2.2 [2021/05/15] for x86_64 Copyright (c) 1993-2021 by Florian Klaempfl and others Target OS: Win64 for x64 Compiling test.pas test.pas(9,7) Hint: Type size mismatch, possible loss of data / range check error ``` You can also replace `integer` by `string`, and the result will still be the same. ## System Information <!-- The more information are provided the easier it is to replicate the bug --> - **Operating system: Windows 7** <!-- Windows, Linux (if possible, also name the distro), FreeBSD, Android, ... --> - **Processor architecture:** x86-64 <!-- x86, x86-64, ARM, AARCH64, AVR, RISC-V, PowerPC, ... --> - **Compiler version:** 3.2.2 <!-- 3.2, 3.2.2, 3.3, trunk, beta, ... (if possible, give also the git hash) --> - **Device:** Computer <!-- Computer, Tablet, Mobile, Amiga, Microcontroller, ... -->
issue