[fpc-devel] Generic method works on Linux, not on Windows?

Sven Barth pascaldragon at googlemail.com
Sat May 30 14:28:40 CEST 2020

Am 30.05.2020 um 12:33 schrieb Yuriy Sydorov:
> On 29.05.2020 22:36, Sven Barth via fpc-devel wrote:
>> Am 27.05.2020 um 00:41 schrieb Yuriy Sydorov:
>>> On 27.05.2020 1:01, Joost van der Sluis wrote:
>>>> Op 26-05-2020 om 23:36 schreef Yuriy Sydorov:
>>>>> Does it happen with the fpc trunk?
>>>>> If yes, what revision do you use? It looks like an issue with my 
>>>>> initial implementation of the $parentfp parameter optimization. 
>>>>> "$fin$00000037" is a reference to an internal SEH handler 
>>>>> procedure which is a special nested procedure.
>>>> Yes, Trunk, updated last sunday. (And today, didn't help) x86_64
>>>>> The latest trunk for win32 compiles fine the following modified 
>>>>> example:
>>>>> {$mode objfpc}{$H+}
>>>>> generic function CreateObjectFromJSONString<T>(AJSONString: 
>>>>> string; ADescriptionTag: string = ''): T;
>>>>> begin
>>>>>    Result := nil;
>>>>> end;
>>>>> var
>>>>>    LaunchRequest: TObject;
>>>>> begin
>>>>>    LaunchRequest := specialize 
>>>>> CreateObjectFromJSONString<TObject>('qwe');
>>>>> end.
>>>> It's this project: https://gitlab.freepascal.org/Joost/fpdserver/
>>>> And the generic function is defined in:
>>>> https://gitlab.freepascal.org/Joost/cerialization
>>>> I'll try your code tomorrow. Maybe I can get an easier example.
>>> Thanks for the sources. When I put a generic function in a separate 
>>> unit, I am able to reproduce the issue.
>>> Surprisingly it is not caused by my changes, since it fails even 
>>> with earlier revisions. I've tested with r44958 and it still fails.
>>> It would be nice if you find the offending revision.
>> Would you please provide your example that fails? I can't get it to 
>> fail...
> See the test program and unit attached.

Thanks, I can reproduce it now. Seems that it *has* to be a method 
instead of a global function. Hopefully I can now find out the issue...


More information about the fpc-devel mailing list