Вы wrote 5 lines
> I found that this is because tdictionery.rename do not return a nil
> (but a rundom value) when it can not find old node.
> But as I understand, we must always find an old node????
No, not in the case that causes the error I think.
How a dictionery.rename used in other parts of compiler? It is called only when we shure old node is in dictionery? Or we do not check a dictionery before renaming?
Show quoted text 10 lines
> (After patching a tdictionery.rename to return a nil
> when we do not find a old node, ppc2 start droping a job
> in another place)
The strange thing is that this crash happens in different places and if
you try to reproduce it by recompiling the file in which the crash
occurred, it doesn't happen anymore :( Also, the value of the instruction
pointer is invalid when the crash occurs: points to the middle of some
instruction.
Jonas
The more stange thing is that why this crash always in ppc2.... Why not in ppc1 ?! We can assume fpc generates wrong code only when it is compiled with -CR ...
May be there is error in realization part of -CR? Because -Cr do not cause a problem and -CR work normally for FPC v1.0, then error may be in n386cal.pas or in i386.inc ...
Regards,
Sergey Korshunoff
Regards,
Sergey Korshunoff