Skip to content

Commit 2924f2b

Browse files
bdrodesropwareJB
andauthored
Update cpp/ql/src/Likely Bugs/Leap Year/UncheckedLeapYearAfterYearModification.ql
Co-authored-by: Josh Brown <jb1@microsoft.com>
1 parent df3fcfc commit 2924f2b

1 file changed

Lines changed: 27 additions & 26 deletions

File tree

cpp/ql/src/Likely Bugs/Leap Year/UncheckedLeapYearAfterYearModification.ql

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -136,32 +136,33 @@ class IgnorableCharLiteralArithmetic extends IgnorableOperation {
136136
bindingset[c]
137137
predicate isLikelyConversionConstant(int c) {
138138
exists(int i | i = c.abs() |
139-
//| i >= 100)
140-
i = 146097 or // days in 400-year Gregorian cycle
141-
i = 36524 or // days in 100-year Gregorian subcycle
142-
i = 1461 or // days in 4-year cycle (incl. 1 leap)
143-
i = 32044 or // Fliegel–van Flandern JDN epoch shift
144-
i = 1721425 or // JDN of 0001‑01‑01 (Gregorian)
145-
i = 1721119 or // alt epoch offset
146-
i = 2400000 or // MJD → JDN conversion
147-
i = 2400001 or // alt MJD → JDN conversion
148-
i = 2141 or // fixed‑point month/day extraction
149-
i = 65536 or // observed in some conversions
150-
i = 7834 or // observed in some conversions
151-
i = 256 or // observed in some conversions
152-
i = 292275056 or // qdatetime.h Qt Core year range first year constant
153-
i = 292278994 or // qdatetime.h Qt Core year range last year constant
154-
i = 1601 or // Windows FILETIME epoch start year
155-
i = 1970 or // Unix epoch start year
156-
i = 70 or // Unix epoch start year short form
157-
i = 1899 or // Observed in uses with 1900 to address off by one scenarios
158-
i = 1900 or // Used when converting a 2 digit year
159-
i = 2000 or // Used when converting a 2 digit year
160-
i = 1400 or // Hijri base year, used when converting a 2 digit year
161-
i = 1980 or // FAT filesystem epoch start year
162-
i = 227013 or // constant observed for Hirji year conversion, and Hirji years are not applicable for gregorian leap year
163-
i = 10631 or // constant observed for Hirji year conversion, and Hirji years are not applicable for gregorian leap year
164-
i = 0
139+
i = [
140+
146097, // days in 400-year Gregorian cycle
141+
36524, // days in 100-year Gregorian subcycle
142+
1461, // days in 4-year cycle (incl. 1 leap)
143+
32044, // Fliegel–van Flandern JDN epoch shift
144+
1721425, // JDN of 0001‑01‑01 (Gregorian)
145+
1721119, // alt epoch offset
146+
2400000, // MJD → JDN conversion
147+
2400001, // alt MJD → JDN conversion
148+
2141, // fixed‑point month/day extraction
149+
65536, // observed in some conversions
150+
7834, // observed in some conversions
151+
256, // observed in some conversions
152+
292275056, // qdatetime.h Qt Core year range first year constant
153+
292278994, // qdatetime.h Qt Core year range last year constant
154+
1601, // Windows FILETIME epoch start year
155+
1970, // Unix epoch start year
156+
70, // Unix epoch start year short form
157+
1899, // Observed in uses with 1900 to address off by one scenarios
158+
1900, // Used when converting a 2 digit year
159+
2000, // Used when converting a 2 digit year
160+
1400, // Hijri base year, used when converting a 2 digit year
161+
1980, // FAT filesystem epoch start year
162+
227013, // constant observed for Hirji year conversion, and Hirji years are not applicable for gregorian leap year
163+
10631, // constant observed for Hirji year conversion, and Hirji years are not applicable for gregorian leap year
164+
0
165+
]
165166
)
166167
}
167168

0 commit comments

Comments
 (0)