[fpc-devel] compiler has problem finding right function: IfThen (Math vs. StrUtils)

Pascal Riekenberg pascal at riekenberg.eu
Tue Jan 5 08:55:56 CET 2021


Since i updated my local fpc trunk some of my programs do not compile anymore. Version from before christmas was okay.

The compiler can't find the function "IfThen(AValue: Boolean; const ATrue: string; const AFalse: string): string;" of StrUtils.

Instead it only seems to see the functions in Math.

SQLGenerator.pas(294,9) Error: Incompatible type for arg no. 3: Got "Char", expected "Double"
math.pp(2523,10) Hint: Found declaration: IfThen(Boolean;const Double;const Double=` 0.00000000000000000000E+0000`):Double;
math.pp(2518,10) Hint: Found declaration: IfThen(Boolean;const Int64;const Int64=`0`):Int64;
math.pp(2513,10) Hint: Found declaration: IfThen(Boolean;const LongInt;const LongInt=`0`):LongInt;
SQLGenerator.pas(299,9) Error: Incompatible type for arg no. 3: Got "Constant String", expected "Double"
math.pp(2523,10) Hint: Found declaration: IfThen(Boolean;const Double;const Double=` 0.00000000000000000000E+0000`):Double;
math.pp(2518,10) Hint: Found declaration: IfThen(Boolean;const Int64;const Int64=`0`):Int64;
math.pp(2513,10) Hint: Found declaration: IfThen(Boolean;const LongInt;const LongInt=`0`):LongInt;
SQLGenerator.pas(305,7) Error: Incompatible type for arg no. 3: Got "Constant String", expected "Double"
math.pp(2523,10) Hint: Found declaration: IfThen(Boolean;const Double;const Double=` 0.00000000000000000000E+0000`):Double;
math.pp(2518,10) Hint: Found declaration: IfThen(Boolean;const Int64;const Int64=`0`):Int64;
math.pp(2513,10) Hint: Found declaration: IfThen(Boolean;const LongInt;const LongInt=`0`):LongInt;
SQLGenerator.pas(442,60) Error: Incompatible type for arg no. 3: Got "Constant String", expected "Double"
math.pp(2523,10) Hint: Found declaration: IfThen(Boolean;const Double;const Double=` 0.00000000000000000000E+0000`):Double;
math.pp(2518,10) Hint: Found declaration: IfThen(Boolean;const Int64;const Int64=`0`):Int64;
math.pp(2513,10) Hint: Found declaration: IfThen(Boolean;const LongInt;const LongInt=`0`):LongInt;

If i qualify IfThen with "StrUtils." it compiles.


Pascal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20210105/1f642b9f/attachment.htm>


More information about the fpc-devel mailing list