[fpc-devel] Val() behaviour in a function depends on LongStrings ON/OFF?
Bart
bartjunk64 at gmail.com
Wed Oct 14 23:50:48 CEST 2026
On Wed, Oct 14, 2026 at 8:24 PM Bart <bartjunk64 at gmail.com> wrote:
> This is driving me crazy.
> Val('256', AByte, Code) should fail.
Same issue with Word, but not with DWord or QWord.
======================
C:\Users\Bart\LazarusProjecten\ConsoleProjecten>fpc test.pas -Mobjfpc -Sh
Free Pascal Compiler version 3.3.1 [2026/04/05] for i386
Copyright (c) 1993-2026 by Florian Klaempfl and others
Target OS: Win32 for i386
C:\Users\Bart\LazarusProjecten\ConsoleProjecten>test
Val(Byte)
RangeCheck ON
Err=3
RangeCheck OFF
Err=3
TryStrToByte_RangeCheck_ON
FAIL !! : ERangeError: Range check error
TryStrToByte_RangeCheck_OFF
FAIL !! [0]
TryStrToByte_SS_RangeCheck_ON
NOT a Byte
TryStrToByte_SS_RangeCheck_OFF
NOT a Byte
--------------------------------------------------
Val(Word)
RangeCheck ON
Err=5
RangeCheck OFF
Err=5
TryStrToWord_RangeCheck_ON
FAIL !! : ERangeError: Range check error
TryStrToByte_RangeCheck_OFF
FAIL !! [0]
TryStrToByte_SS_RangeCheck_ON
NOT a Word
TryStrToByte_SS_RangeCheck_OFF
NOT a Word
--------------------------------------------------
Val(DWord)
RangeCheck ON
Err=10
RangeCheck OFF
Err=10
TryStrToDWord_RangeCheck_ON
NOT a DWord
TryStrToDWord_RangeCheck_OFF
NOT a DWord
TryStrToDWord_SS_RangeCheck_ON
NOT a DWord
TryStrToDWord_SS_RangeCheck_OFF
NOT a DWord
--------------------------------------------------
Val(QWord)
RangeCheck ON
Err=11
RangeCheck OFF
Err=11
TryStrToQWord_RangeCheck_ON
NOT a QWord
TryStrQWord_RangeCheck_OFF
NOT a QWord
TryStrToQWord_SS_RangeCheck_ON
NOT a QWord
TryStrToQWord_SS_RangeCheck_OFF
NOT a QWord
ExceptionCount : 2
WrongValueCount: 2
======================================
C:\Users\Bart\LazarusProjecten\ConsoleProjecten>fpc test.pas -Mobjfpc
Free Pascal Compiler version 3.3.1 [2026/04/05] for i386
Copyright (c) 1993-2026 by Florian Klaempfl and others
Target OS: Win32 for i386
C:\Users\Bart\LazarusProjecten\ConsoleProjecten>test
Val(Byte)
RangeCheck ON
Err=3
RangeCheck OFF
Err=3
TryStrToByte_RangeCheck_ON
NOT a Byte
TryStrToByte_RangeCheck_OFF
NOT a Byte
TryStrToByte_SS_RangeCheck_ON
NOT a Byte
TryStrToByte_SS_RangeCheck_OFF
NOT a Byte
--------------------------------------------------
Val(Word)
RangeCheck ON
Err=5
RangeCheck OFF
Err=5
TryStrToWord_RangeCheck_ON
NOT a Word
TryStrToByte_RangeCheck_OFF
NOT a Word
TryStrToByte_SS_RangeCheck_ON
NOT a Word
TryStrToByte_SS_RangeCheck_OFF
NOT a Word
--------------------------------------------------
Val(DWord)
RangeCheck ON
Err=10
RangeCheck OFF
Err=10
TryStrToDWord_RangeCheck_ON
NOT a DWord
TryStrToDWord_RangeCheck_OFF
NOT a DWord
TryStrToDWord_SS_RangeCheck_ON
NOT a DWord
TryStrToDWord_SS_RangeCheck_OFF
NOT a DWord
--------------------------------------------------
Val(QWord)
RangeCheck ON
Err=11
RangeCheck OFF
Err=11
TryStrToQWord_RangeCheck_ON
NOT a QWord
TryStrQWord_RangeCheck_OFF
NOT a QWord
TryStrToQWord_SS_RangeCheck_ON
NOT a QWord
TryStrToQWord_SS_RangeCheck_OFF
NOT a QWord
--
Bart
More information about the fpc-devel
mailing list