[fpc-devel] Error: (3069) Call by var for arg no. xx has to match exactly: Got "ShortString" expected "AnsiString"

Michael Van Canneyt michael at freepascal.org
Sun Jul 16 19:18:46 CEST 2023



On Sun, 16 Jul 2023, Maxim Ganetsky via fpc-devel wrote:

> 16.07.2023 20:08, Michael Van Canneyt via fpc-devel пишет:
>>
>>
>> On Sun, 16 Jul 2023, Maxim Ganetsky via fpc-devel wrote:
>>
>>> Hello.
>>>
>>> Recent changes in FPC `main` led to the following errors when 
>>> building some code in Lazarus tree:
>>>
>>> Error: (3069) Call by var for arg no. xx has to match exactly: Got 
>>> "ShortString" expected "AnsiString"
>>>
>>> See:
>>>
>>> https://gitlab.com/freepascal.org/lazarus/lazarus/-/issues/40381
>>>
>>> Note that the unit which fails to build has {$H-} directive.
>>>
>>> Is it a bug in compiler?
>>
>> No. We're preparing for the unicode RTL.
>>
>> Part of that was changing string -> shortstring and pchar -> ansichar.
>>
>> In some rare places I changed string to ansistring in preparation of
>> unicodestring, in this case it was misplaced since it was a var 
>> argument. I added an overloaded version, which should fix the 
>> compilation error.
>
> But I thought that it was possible to assign ShortString to AnsiString. 
> Am I mistaken?

It is, but not for a var argument. As it says in the error message 
"Call by var for arg no. xx has to match exactly"

Anyway, please try the fix with the latest fpc.

Michael.


More information about the fpc-devel mailing list