[fpc-devel] building ppcrossavr, internal error 200309041

Florian Klämpfl florian at freepascal.org
Fri Apr 10 10:09:07 CEST 2015

Am 10.04.2015 um 04:10 schrieb Georg Hieber:
> In build 30522 I think I observed a variant of the problem:
> The make cycle aborts again when crosscompiling system.pp with the error message:
> sstrings.inc(1268,3) Error: Local variables size exceeds supported limit
> sstrings.inc(1261,18) Fatal: Procedure too complex, it requires too many registers
> First there was the Internal error 200309041 in generic.inc, line 1917, which I "fixed" by putting
> the procedure in {$ifndef CPUavr} .. {$endif} block, after that occurred  the above. I "fixed" this
> the same way, and the rtl compiles.
> Please confirm if that is the same issue, or something new.

Yes, this is the same issue.

> For the time being, I won't file a bug report, as you say it does not make much sense. I will,
> however, keep track of the behaviour, and if one day I see a certain pattern, I will document it.

The pattern is simple: procedures with high register pressure calling procedure taking a lot of
parameters in combination with code which generates instructions working with constants.

I am currently working on improving the avr cg so it wastes less registers, this might help. Though
it does not solve the problem but it only hides it.

More information about the fpc-devel mailing list