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