[fpc-devel] Fpc does not allow Chr() in type definition. Bug?
Anton Shepelev
anton.txt at gmail.com
Sun Nov 8 22:17:10 CET 2020
I wrote to Bart:
> > Type
> > SubRange = Chr(1)..Chr(2);
> > begin
> > end.
> >
> > This compiles in TP 6.0 and Delphi 7.0, but fpc doesn't.
>
> It also compiles in BP 7.0, but why? I think it can work
> only if the compilers treats Chr(1) as a macro, not as a
> function. Does any dialect Pascal allow function
> invocations in type definitions?
The Borland Pascal manual explains it:
A constant expression is an expression that can be
evaluated by the compiler without actually executing a
program.
[...]
these constructs are not allowed in constant expres-
sions:
[...]
function calls (except the following)
Abs Chr
Hi Length
Lo Odd
Ord Pred
Ptr Round
SizeOf Succ
Swap Trunc
Did you try compiling it with FreePascal in Borland mode?
More information about the fpc-devel
mailing list