[fpc-devel] adding a new token to compiler cause exception

Jonas Maebe jonas.maebe at elis.ugent.be
Tue Oct 13 21:51:17 CEST 2015


On 13/10/15 19:59, Mohsen wrote:
> if (idtoken in [_EXPORT,_EXTERNAL,_WEAKEXTERNAL,_PUBLIC,_CVAR]) then
>
> ptconst.pas(95,45) Error: range check error in set constructor or
> duplicate set element
>
> how to solve it ?

Pascal sets can only contain values/enumerations whose ordinal value is 
<= 255. There are more than 256 tokens already. If you add new tokens at 
the start, existing tokens may get an ordinal value > 255, so existing 
set expressions that previously worked may now fail.

The only way to solve that is to remove the items whose ordinal values 
are > 255 from set expressions and to test for them using the regular 
'=' operator.


Jonas



More information about the fpc-devel mailing list