Compiler Generates wrong info for DispInvoke with late binding of 1 character
## Summary
Some problems occurs when running variant late binding with a method name of 1 character.
Regression from FPC 3.2.0 to FPC 3.2.2.
Still not fixed in 3.2.3.
## System Information
All targets.
## Steps to reproduce
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.
## What is the current bug behavior?
Any one-char method is not found by DispInvoke.
## What is the expected (correct) behavior?
Late binding should work with one character identifiers.
## Relevant logs and/or screenshots
See https://synopse.info/forum/viewtopic.php?pid=36185#p36185
## Possible fixes
From Alfred:
> 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.
issue