[fpc-pascal] set addition bug?
Peter Vreman
peter at freepascal.org
Tue Feb 12 18:38:48 CET 2008
Adam Naumowicz wrote:
> Hello again,
>
> On Mon, 11 Feb 2008, Adam Naumowicz wrote:
>
>> Hello,
>>
>> I'd like to know if this is a known issue, or a new bug.
>>
>> With the following code:
>> ------------------
>> program tester;
>>
>> type SomeType = ( SomeElem );
>>
>> const ElemSet = [ SomeElem ];
>>
>> begin
>> writeln(SomeElem in ElemSet);
>> writeln(SomeElem in (ElemSet + []));
>> end.
>> ------------------
>>
>> one gets:
>>
>> TRUE
>> FALSE
>>
>> while it should rather be
>>
>> TRUE
>> TRUE
>>
>> The problem concerns FPC 2.2.0 on i386/Linux. Actually, I was tracing
>> a bug that was only visible with 2.2.0 while the 2.0.0 version of the
>> compiler did not produce an errorneous code on that. Unfortunately, I
>> didn't succeed to separate a small snippet of code responsible for
>> that - in that case, however, the set after the '+' was another set
>> constant, not an empty set, so the problem is rather general. As I
>> said, with 2.0.0 the boolean value was correct, while with 2.2.0 it
>> was plain wrong.
>
> It seems I've found an example that produces 'FALSE' with 2.2.0 and
> 'TRUE' with 2.0.0 trying to eliminate my code as much as possible - the
> piece is still a bit longish, so I attach it as a separate file - it
> seems, however, that removing lines any further 'hides' the bug.
>
> I hope it will help you find the solution for this nasty problem.
Fixed in 2.3.1 in r10311.
More information about the fpc-pascal
mailing list