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

Sven Barth pascaldragon at googlemail.com
Sat Jun 13 20:43:19 CEST 2020


Am 30.05.2020 um 14:28 schrieb Sven Barth:
> 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...

Fixed in r45646.

Regards,
Sven


More information about the fpc-devel mailing list