Bug 146608 - Unpredictable CInt(), CLng() results when given erroneous date literals
Summary: Unpredictable CInt(), CLng() results when given erroneous date literals
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: BASIC (show other bugs)
Version:
(earliest affected)
Inherited From OOo
Hardware: All All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: Macro-StarBasic
  Show dependency treegraph
 
Reported: 2022-01-06 10:35 UTC by Alain Romedenne
Modified: 2022-12-08 12:21 UTC (History)
2 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alain Romedenne 2022-01-06 10:35:44 UTC Comment hidden (obsolete, pls_delete)
Comment 1 Andreas Heinisch 2022-01-07 18:56:12 UTC
Hi Alain, I think you forgot to attach a sample document 😊
Comment 2 Alain Romedenne 2022-02-04 16:54:29 UTC
Ignore above comments and consider the following Basic routine:

Sub Date2Integer()
   Const DAY_ONE = #1899-12-30# ' = 1
   MAX_DATE = DateAdd("d", DAY_ONE, 2^15-2) ' #1989-09-16#
   Print CInt(#1989-09-16) , CInt(#09/16/1989) , MAX_DATE ' 1964 , 0 , #1989-09-16#
   Print CInt(#1989-09-16#), CInt(#09/16/1989#) ' 32767 , 32767
   Print CLng(#1989-09-16) , CLng(#09/16/1989) , MAX_DATE ' 1964 , 0 , #1989-09-16#
End Sub

- Erroneous date literals should raise Error #5 at runtime
OR BETTER
- Be trapped at compile time

When provided with valid date literals CInt() returns a valid 1-32667 number, otherwise raises an overflow when dates are above MAX_DATE. 

Note: DateAdd() intercepts such invalid date syntax with Error #5
Comment 3 Buovjaga 2022-12-08 12:21:44 UTC
I get a warning dialog with

 1964          0            15.09.1989

Setting to NEW.

Arch Linux 64-bit
Version: 7.5.0.0.alpha1+ (X86_64) / LibreOffice Community
Build ID: 705b2924a14841883b4a8cac549f7af326d7a185
CPU threads: 8; OS: Linux 6.0; UI render: default; VCL: kf5 (cairo+xcb)
Locale: fi-FI (fi_FI.UTF-8); UI: en-US
Calc: threaded Jumbo
Built on 8 December 2022