[fpc-pascal] crash in lazbuild only on powerpc 64bit
Mattias Gaertner
nc-gaertnma at netcologne.de
Sun Sep 23 17:29:23 CEST 2012
Hi,
I was not able to reproduce the crash in a simple program. So I'm
asking for help to create a good bug report.
The crash happens in lazbuild only on powerpc 64bit Linux with fpc
2.6.0 and fpc 2.7.1. It works on Linux 32+64bit intel+amd and powerpc
32bit OS X with any fpc.
The crashing line looks pretty common:
IncludePath:=OnGetIncludePath(FullDir,false);
OnGetIncludePath is a property:
TOnGetIncludePath = function(const Directory: string; UseCache: boolean): string of object;
property OnGetIncludePath: TOnGetIncludePath read fOnGetIncludePath write fOnGetIncludePath;
Calling the method directly does not crash.
Comparing the property and the address gives true:
writeln('This gives true=',OnGetIncludePath = @CodeToolBoss.GetIncludePathForDirectory);
Here is the assembler of the line
# [1514] IncludePath:=OnGetIncludePath(FullDir,false);
ld r3,152(r1)
ld r3,184(r3)
ld r5,184(r1)
addi r4,r1,200
li r6,0
ld r7,152(r1)
ld r30,176(r7)
ld r31,0(r30)
std r2,40(r1)
mtctr r31
ld r2,8(r30)
ld r11,16(r30)
bctrl
ld r2,40(r1)
And here is the assembler of the working call:
# [1512] IncludePath:=CodeToolBoss.GetIncludePathForDirectory(FullDir);
ld r5,184(r1)
addi r4,r1,200
lis r3,(U_CODETOOLMANAGER_CODETOOLBOSS)@highesta
ori r3,r3,(U_CODETOOLMANAGER_CODETOOLBOSS)@highera
sldi r3,r3,32
oris r3,r3,(U_CODETOOLMANAGER_CODETOOLBOSS)@ha
ld r3,(U_CODETOOLMANAGER_CODETOOLBOSS)@l(r3)
li r6,1
bl CODETOOLMANAGER_TCODETOOLMANAGER_$__GETINCLUDEPATHFORDIRECTORY$ANSISTRING$BOOLEAN$$ANSISTRING
nop
Mattias
More information about the fpc-pascal
mailing list