I have created https://gitlab.com/freepascal.org/fpc/s … sues/39438
]]>Its a change in ncal.pas.
FPC 3.2.0 and earlier have: tcb.emit_pchar_const(pchar(methodname),length(methodname),true);
FPC 3.2.2 and newer have: tcb.emit_pchar_const(pchar(methodname),length(methodname)-1,true);
The change is commented by:
{ length-1, because the following names variable *always* starts
with #0 which will be the terminator for methodname }
If this change is reverted, all test run green on 3.2.3 and trunk.
Greetings, Alf.
]]>But some problems occurs when running variant late binding with a method name of 1 character.
No problem when calling variantvalue.toto but variantvalue.a or variantvalue.b have a Parameter with the method name transmitted as #0 so there is no method name to match.
Sounds like a compiler regression. It seems to have nothing to do with mORMot itself: the generated asm have a wrong pointer constant.
I was not able to find in https://bugs.freepascal.org/roadmap_page.php from which
So we will stick to FPC 3.2.0 as supported version of FPC.
We advise you against using FPC 3.2.2 on production, if you consider using variant late binding.