[fpc-pascal] Error: Local variables size exceeds supported limit
Jonas Maebe
jonas at freepascal.org
Sun Mar 10 12:48:17 CET 2019
On 10/03/2019 11:40, Yuriy Sydorov wrote:
> If I recall correctly, currently the compiler uses longints as stack
> offsets internally in several places. That's why the limit is 2GB even
> for 64-bit targets.
That would be compiler bugs that need to be fixed. Ideally, the commit
message would also have mentioned that :)
> The issue in this tread is caused by the incorrect declaration of
> procedure's params. See my other answer. In this case 2GB of stack is
> not needed at all.
Indeed.
> I suppose there are no real world apps which require 2GB of stack for
> local vars or parameters. Even if we consider future apps it is useless
> to support 64-bit stack offsets for local vars of a single procedure.
If the architecture and OS support it, I see no reason to forbid it.
It's always possible to add a hint about efficiency in case the size of
the locals grows beyond offsets that can be embedded in a single
instruction, although this hint would trigger already at 32KB of locals
on e.g. PowerPC.
Jonas
More information about the fpc-pascal
mailing list