{ "tokens": { "input": 249754, "cache_read": 166428, "cache_write": 3618, "output": 11206 }, "reviews": [ { "key": [ "https://ftp.debian.org/debian/pool/main/o/openal-soft/openal-soft_1.25.2.orig.tar.gz", "your kcat-openal-soft-b2c48f7/alc/panning.cpp:297:33: style: Comparing expression of type 'const signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "`SpatialMode` is evidently an enum with `bool` as its underlying type, and `Periphonic` has the value 1. The new enum-underlying-type handling gives the parameter the nonsensical type 'signed bool'. Cppcheck then treats 1 as out of range and claims `mode == Periphonic` is always false. A bool-based enum can hold 1, so the condition is not always false. This new warning is a false positive with an inaccurate type in its message." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openal-soft/openal-soft_1.25.2.orig.tar.gz", "your kcat-openal-soft-b2c48f7/alc/panning.cpp:419:47: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "`m3DMode` is an enum whose underlying type is `bool` (e.g. `enum DevAmbiDimensions : bool { Pantaphonic, Periphonic }`), so `Periphonic` has the value 1. The new `parsedecl` path takes the underlying type `bool` but leaves the sign as signed, producing the nonsensical type 'signed bool'. Cppcheck then treats 1 as out of range for that type. A bool-based enum can hold 1, so `m3DMode == Periphonic` can be true. This is a new false positive caused by the PR." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openal-soft/openal-soft_1.25.2.orig.tar.gz", "your kcat-openal-soft-b2c48f7/alc/panning.cpp:421:46: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "`decoder.m3DMode` is an enum with `bool` as its underlying type (Pantaphonic/Periphonic, values 0 and 1). The patched parsedecl now gives the enum the underlying type's ValueType but still marks it signed, producing the nonsensical type 'signed bool'. The range check then treats the type as holding only 0, so comparing with Periphonic (1) is reported as always false. The variable is assigned Periphonic on line 404, so the condition is clearly reachable. This is a new false positive." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openal-soft/openal-soft_1.25.2.orig.tar.gz", "your kcat-openal-soft-b2c48f7/alc/panning.cpp:764:48: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "`decoder.m3DMode` is an enum whose underlying type is `bool` (e.g. `enum DecoderMode : bool { Pantaphonic, Periphonic }`), and `Periphonic` has value 1. Comparing it with `Periphonic` can be true. With this PR, the enum's value type becomes 'bool' but still marked SIGNED, giving the bogus type 'signed bool'. The range check then treats 1 as out of range and claims the condition is always false. This new warning is a false positive." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openal-soft/openal-soft_1.25.2.orig.tar.gz", "your kcat-openal-soft-b2c48f7/alc/panning.cpp:780:51: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "`decoder.m3DMode` is an enum with `bool` as its underlying type (Pantaphonic/Periphonic, i.e. false/true). The PR now takes the value type from the underlying type but wrongly marks it 'signed bool'. Cppcheck then thinks the range excludes 1, so `m3DMode == Periphonic` is reported as always false. That is plainly wrong: Periphonic is a valid value, and the code compares against it all over the file. This is a new false positive with a nonsensical type name." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openal-soft/openal-soft_1.25.2.orig.tar.gz", "your kcat-openal-soft-b2c48f7/alc/panning.cpp:802:45: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "`decoder.m3DMode` is an enum whose underlying type is `bool` (for example `enum DecoderMode : bool`), with `Periphonic` as the true value 1. The PR's new enum handling gives it the invalid type 'signed bool' and treats value 1 as out of range. So `decoder.m3DMode == Periphonic` is wrongly reported as always false. Comparing a bool-based enum with its true enumerator can clearly be true, so this is a new false positive." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openal-soft/openal-soft_1.25.2.orig.tar.gz", "your kcat-openal-soft-b2c48f7/alc/panning.cpp:840:29: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "decoder.m3DMode is an enum value, probably declared as `enum DecoderMode : bool { Pantaphonic, Periphonic }`, so Periphonic == 1 (true) and the comparison is a valid check. With this PR, Cppcheck now takes the enum's underlying type and builds the nonsensical type 'signed bool'. Since signed bool is treated as 1-bit signed, it thinks the value 1 is out of range and reports that the condition is always false. That is wrong, so this is a new false positive caused by the PR's handling of bool-based enums." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openal-soft/openal-soft_1.25.2.orig.tar.gz", "your kcat-openal-soft-b2c48f7/examples/allafplay.cpp:659:26: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "`Mode` is an enum with `bool` as its underlying type (`enum class Mode : bool { Channels, Objects }`), so `Mode::Objects` is 1 and `laf->mMode == Mode::Objects` can be true. The pull request now takes the value type from the enum's underlying type. For `bool` it produces the nonsensical type 'signed bool' and then wrongly treats 1 as out of range. The warning is a false positive, and the same pattern appears in the other new warnings for this package." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openal-soft/openal-soft_1.25.2.orig.tar.gz", "your kcat-openal-soft-b2c48f7/utils/makemhr/loaddef.cpp:1246:32: style: Comparing expression of type 'const signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "In openal-soft, `ChannelModeT` is declared as `enum ChannelModeT : bool { CM_AllowStereo, CM_ForceMono };`, so `CM_ForceMono` is `true` (1). The PR now takes the underlying type from the enum base. For `bool` it produces the bogus type 'signed bool' and treats the value range as if it cannot hold 1. As a result, `chanMode == CM_ForceMono` is wrongly reported as always false, even though it is true whenever chanMode is CM_ForceMono. This is a new false positive, and the same pattern appears in the other added warnings for bool-based enums." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/Modules/cache/DOMCache.cpp:496:278: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "ShouldRetrieveResponses is a WebKit enum declared as `enum class ShouldRetrieveResponses : bool { No, Yes };`. The PR now takes the type of `bool` from the enum's underlying type through parsedecl, but it wrongly marks it as 'signed bool'. That makes the value range 0..0, so comparing against Yes (value 1) is reported as always false. The comparison is valid: a bool-based enum can hold 1. This is a false positive, and the same mistake shows up in dozens of new warnings across the package." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/Modules/indexeddb/IDBGetAllResult.cpp:77:43: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "IndexedDB::GetAllType is an enum class with underlying type bool (`enum class GetAllType : bool { Keys, Values }`). Values is 1, so `m_type == IndexedDB::GetAllType::Values` can be true. The PR now parses the underlying type `bool` and labels it 'signed bool', which is a nonsensical type. It then claims that bool cannot hold 1, which is wrong. The many identical 'signed bool' warnings across the package come from the same bug. This is a new false positive." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp:803:104: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "DidCreateIndexInBackingStore is a WebKit enum declared with 'bool' as its underlying type (enum class DidCreateIndexInBackingStore : bool { No, Yes }). Comparing it against Yes (value 1) is valid and can be true. The PR now takes the enum's value type from its underlying type, but it labels bool as 'signed bool' and seems to treat its range as only 0. That produces a bogus 'always false' warning. The many identical 'signed bool' warnings across the package all come from this same false positive." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/Modules/url-pattern/URLPatternCanonical.cpp:55:39: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "BaseURLStringType is a WebKit enum, most likely declared as `enum class BaseURLStringType : bool { Pattern, URL };`. Its enumerator URL has value 1, and comparing `inputType == BaseURLStringType::URL` is a valid comparison that can be true. The new enum-underlying-type handling in the PR makes Cppcheck treat a 'bool' underlying type as 'signed bool' with a range that excludes 1. That produces the bogus type 'signed bool' and a false 'Condition is always false' warning. Many identical new warnings across the package show the same false positive pattern." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/Modules/url-pattern/URLPatternParser.cpp:540:46: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "`URLPatternUtilities::IsFirst` is a WebKit enum declared as `enum class IsFirst : bool { No, Yes };`. Its underlying type is `bool`, so `IsFirst::Yes` has the value 1 and `first == IsFirst::Yes` can be true or false. The PR's new enum-underlying-type handling now treats `bool` as 'signed bool', a type that cannot hold 1. That makes Cppcheck wrongly claim the condition is always false. This is a false positive, and the same pattern repeats across many files in this package." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/Modules/url-pattern/URLPatternTokenizer.cpp:94:38: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "TokenizePolicy is a WebKit enum declared as `enum class TokenizePolicy : bool { Strict, Lenient }`. With this PR, Cppcheck resolves the underlying type through parsedecl and gets the nonsensical type 'signed bool'. It then treats bool as signed, so its range would be -1..0 and the value 1 (Lenient) looks out of range. That is wrong: comparing m_policy against Lenient (1) is perfectly valid, and after the Strict early return the assertion is in fact always true. The same bogus 'signed bool' warning shows up dozens of times in this package, so this is a false positive introduced by the PR." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/Modules/web-locks/WebLockManager.cpp:214:53: style: Comparing expression of type 'signed bool' against value 1. Condition is always true. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "WebLockMode is a WebKit enum with underlying type bool (`enum class WebLockMode : bool { Exclusive, Shared }`), so Exclusive has the value 0. The new parsedecl path gives an enum with a bool underlying type the bogus type 'signed bool' and treats the enumerator as being out of range. The comparison `options.mode != WebLockMode::Exclusive` is a valid runtime check, since mode can be Exclusive or Shared, so it is not always true. The message is also wrong: the value is not 1, and bool has no sign. This is a new false positive caused by the PR, and the same pattern produces the many other 'signed bool' warnings in this package." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/PAL/pal/text/TextCodecCJK.cpp:1035:27: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "`IsGBK` is declared as `enum class IsGBK : bool { No, Yes }`. In `isGBK == IsGBK::Yes`, the enumerator `Yes` has value 1, which is a valid bool value, so the condition can be true (for example when gbkEncode passes IsGBK::Yes). The PR now gives the enum the underlying type 'signed bool', which is nonsense: bool is not signed. The range check then wrongly treats 1 as out of range. This is a new false positive caused by the type change." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/PAL/pal/text/TextCodecCJK.cpp:1054:27: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "`IsGBK` is declared as `enum class IsGBK : bool { No, Yes };`, and `IsGBK::Yes` has value 1. The PR now derives the enum's value type from its underlying type, but for `bool` it produces the nonsensical 'signed bool'. That type gets a range that excludes 1, so cppcheck claims `isGBK == IsGBK::Yes` is always false. That is wrong: `gbkEncode` passes `IsGBK::Yes`, so the branch is reachable. This is a new false positive, and the same pattern repeats across many files in this package." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/PAL/pal/text/TextCodecCJK.cpp:553:23: style: Condition 'state!=State::ASCII' is always true [knownConditionTrueFalse]\n jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/PAL/pal/text/TextCodecCJK.cpp:552:41: note: Assuming that condition 'state!=State::ASCII' is not redundant\n jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/PAL/pal/text/TextCodecCJK.cpp:553:23: note: Condition 'state!=State::ASCII' is always true" ], "verdict": { "verdict": "improvement", "confidence": "high", "explanation": "Line 552 already requires `state != State::ASCII`, and nothing between lines 552 and 553 changes `state`. So the inner `if (state != State::ASCII)` on line 553 really is always true. This is a genuine redundant condition and a true positive. It most likely appears now because the PR gives enums with an explicit underlying type a correct value type. Unlike the many 'signed bool' warnings in this package, this one is correct." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/css/parser/CSSParserToken.cpp:696:38: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "`SerializationMode` is a WebKit enum with `bool` as its underlying type, e.g. `enum class SerializationMode : bool { Normal, CustomProperty }`. The PR now takes the underlying type from the enum declaration. Here it marks the type as 'signed bool', which is nonsense, and the value range check then treats 1 as outside that range. `CustomProperty` has the value 1, and a bool-based enum can hold it, so `mode == SerializationMode::CustomProperty` is not always false. This is a new false positive. The same pattern produces dozens of similar warnings across this package." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/css/parser/CSSParserToken.cpp:706:38: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "SerializationMode is a WebKit enum class with underlying type bool, e.g. `enum class SerializationMode : bool { Normal, CustomProperty }`. CustomProperty has value 1, which is a valid value for bool. The new parsedecl path gives the enum the type 'signed bool' and then decides that comparing it against 1 is out of range. So 'Condition is always false' is wrong: `mode == SerializationMode::CustomProperty` can be true. The same false positive appears many times across the package, which confirms the PR mishandles bool as an enum's underlying type." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/css/parser/CSSParserToken.cpp:712:38: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "WebKit declares enums like 'enum class SerializationMode : bool { Normal, CustomProperty }'. After the PR the enum's value type is computed as 'signed bool', which is wrong because bool has no signedness. Cppcheck then thinks CustomProperty (value 1) is outside the range of the type and reports the comparison 'mode == SerializationMode::CustomProperty' as always false. The comparison is valid and can be true. This is a new false positive with a nonsensical type name, and the same pattern appears across the whole package." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/css/parser/CSSParserToken.cpp:755:47: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "`SerializationMode` is presumably declared as `enum class SerializationMode : bool`. That makes `SerializationMode::CustomProperty` equal to 1 (true). The PR now resolves the enum's underlying type through `parsedecl`, but for `bool` it produces 'signed bool', which is a nonsensical type. The range check then treats it as signed 1-bit, so the value range is [-1,0] and the value 1 counts as out of range. The comparison `mode == SerializationMode::CustomProperty` can in fact be true, so the claim 'Condition is always false' is a false positive. The same bogus 'signed bool' warning appears across many files in this package." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/css/parser/CSSParserToken.cpp:761:49: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "SerializationMode is most likely an enum with underlying type bool (e.g. `enum class SerializationMode : bool { Normal, CustomProperty }`). Comparing `mode == SerializationMode::CustomProperty` is valid and can be true or false. The PR now parses the bool underlying type wrongly as 'signed bool', so value 1 looks out of range and Cppcheck wrongly reports the condition as always false. The bogus type 'signed bool' and the many identical new warnings across WebCore confirm this is a false positive." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/css/typedom/transform/CSSTransformComponent.h:56:46: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "`enum class Is2D : bool { No, Yes };` has `bool` as its underlying type, so `Is2D::Yes` equals 1 and `m_is2D == Is2D::Yes` can be true. The PR now builds the enum's value type from its underlying type and gets it wrong for `bool`: it reports the type as 'signed bool' and treats 1 as out of range. The warning that the condition is always false is a false positive, and the same pattern shows up dozens of times in this package." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/dom/SpaceSplitString.cpp:103:75: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "ShouldFoldCase is a WebKit enum declared as `enum class ShouldFoldCase : bool { No, Yes }`. Comparing it with `ShouldFoldCase::Yes` (value 1) is valid and can be true. The PR now takes the underlying type `bool` from the enum declaration but gives it a sign ('signed bool'). The range check then wrongly treats 1 as out of range. This is a false positive, and the same mistake appears in dozens of other files in this package." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/dom/SpaceSplitString.cpp:147:93: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "ShouldFoldCase is a WebKit enum declared as `enum class ShouldFoldCase : bool { No, Yes }`. The PR now resolves the enum's underlying type. For `bool` it builds a nonsensical 'signed bool' type and treats Yes (1) as outside its range. The comparison `shouldFoldCase == ShouldFoldCase::Yes` is valid and can be true, so this is a new false positive. The same pattern shows up in dozens of other new warnings in this package." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/dom/SpaceSplitString.cpp:148:92: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "ShouldFoldCase is a WebKit enum declared as `enum class ShouldFoldCase : bool { No, Yes };`. Comparing `shouldFoldCase == ShouldFoldCase::Yes` is a valid comparison against value 1, which a bool can hold. The new enum handling in parsedecl resolves the underlying type 'bool' wrongly as 'signed bool' (bool is not treated as a standard type here, or the sign is set incorrectly). As a result, Cppcheck thinks the value range excludes 1 and reports that the condition is always false. This is a false positive, and the same pattern produces dozens of bogus 'signed bool' warnings across the package." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/html/shadow/DateTimeFieldElement.cpp:203:26: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "EventBehavior is a WebKit enum declared with `bool` as its underlying type, e.g. `enum EventBehavior : bool { DispatchNoEvents, DispatchInputAndChangeEvents };`. DispatchInputAndChangeEvents has the value 1, which a bool can hold, so `eventBehavior == DispatchInputAndChangeEvents` can be true and is a normal check. The PR's new enum-underlying-type handling makes the type 'signed bool' (bool should not be signed), whose range then excludes 1. That produces a false 'always false' compareValueOutOfTypeRangeError. The same bogus 'signed bool' message appears on many other lines in this package." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/inspector/InspectorFrontendAPIDispatcher.cpp:85:39: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "UnsuspendSoon is a WebKit enum declared as `enum class UnsuspendSoon : bool { No, Yes }`. Comparing `unsuspendSoon == UnsuspendSoon::Yes` is valid and is not always false. The PR now takes the underlying type from the enum, but it mishandles `bool`: it produces the type 'signed bool' and treats 1 as out of range. This is a false positive, and the same pattern appears in many other bool-based enums in this package." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/loader/CrossOriginOpenerPolicy.cpp:231:200: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "`CrossOriginEmbedderPolicyValue` is declared in WebKit as `enum class CrossOriginEmbedderPolicyValue : bool { UnsafeNone, RequireCORP };`. `RequireCORP` is 1, which is a valid value for a bool-based enum, so `coep.reportOnlyValue == RequireCORP` can be true. With this PR, the underlying type `bool` is parsed and given the sign 'signed', which yields the bogus type 'signed bool'. The range check then treats 1 as out of range and reports a false positive. The many identical 'signed bool' warnings across this package show the same bug." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/loader/CrossOriginOpenerPolicy.cpp:231:61: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "CrossOriginEmbedderPolicyValue is a WebKit enum declared as `enum class ... : bool { UnsafeNone, RequireCORP }`. So `coep.value == RequireCORP` compares against 1, which is a valid value. The PR now treats `bool` as the enum's underlying type and wrongly gives it a 'signed bool' type with range [-1,0]. That makes 1 look out of range, so the warning is a false positive. The many identical 'signed bool' warnings across the package come from the same bug." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/loader/CrossOriginOpenerPolicy.h:75:42: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "COOPDisposition is declared as 'enum class COOPDisposition : bool'. Comparing it with COOPDisposition::Enforce (value 1) is valid and can be true. The PR's new branch runs parsedecl on the 'bool' underlying-type token and gets the type 'signed bool' (bool is neither isSigned nor isUnsigned and is treated as a standard type). Cppcheck then thinks the range excludes 1 and reports that the condition is always false. This is a new false positive with a bogus type name." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/platform/ReferrerPolicy.cpp:39:63: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "`ShouldParseLegacyKeywords` is declared as `enum class ... : bool { No, Yes }`, so `Yes` is 1, which is a valid value of the underlying bool. The comparison `shouldParseLegacyKeywords == ShouldParseLegacyKeywords::Yes` is a normal, reachable check. The PR now gives the enum the type 'signed bool', which is nonsense, and treats 1 as out of range. That yields a false compareValueOutOfTypeRangeError. The same false positive appears on many other `enum class : bool` comparisons in this package." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/platform/ScrollTypes.cpp:199:71: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "ScrollIsAnimated is a WebKit `enum class ScrollIsAnimated : bool { No, Yes }`. The PR now takes the underlying type `bool`, but it wrongly gives it SIGNED sign, producing the bogus type 'signed bool' with range [-1,0]. So it reports that `options.animated == ScrollIsAnimated::Yes` (value 1) is always false. That is wrong: a bool-based enum can hold 1. This is a new false positive caused by the PR's enum underlying-type handling." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/platform/text/WritingMode.h:404:39: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "TextDirection is likely declared as `enum class TextDirection : bool { LTR, RTL }`. The PR's new parsedecl path gives the enum the underlying type's ValueType but applies the wrong sign, producing the nonsensical 'signed bool'. A bool-based enum can hold 1, so comparing bidiDirection with TextDirection::RTL is valid and the condition is not always false. This is a new false positive, and the same pattern repeats across dozens of WebKit files." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/rendering/HitTestRequest.h:103:66: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "HitTestSource is almost certainly declared as `enum class HitTestSource : bool { Script, User }`, so User == 1. The PR's new parsedecl path assigns the underlying type 'bool' but marks it signed ('signed bool'). The range check then treats the type's range as excluding 1 and reports `m_source == HitTestSource::User` as always false. That is wrong: User is a valid enumerator with value 1, and the comparison can be true. This is a new false positive from the PR, and the same 'signed bool' pattern appears across the whole package." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/rendering/line/LineInlineHeaders.h:62:35: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "`WhitespacePosition` is declared as `enum WhitespacePosition : bool`, so `TrailingWhitespace` has value 1 (true). Comparing `whitespacePosition == TrailingWhitespace` is valid and can be true. The PR now takes the underlying type from the enum base, but it treats `bool` as 'signed bool' with range [0,0], or at least thinks 1 is out of range. That is a bug: bool-based enums are wrongly typed. The new warning is a false positive, and the same mistake appears across many WebKit files." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/rendering/line/TrailingObjects.cpp:45:53: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "CollapseFirstSpace is a WebKit enum declared as `enum class CollapseFirstSpace : bool { No, Yes };`. The PR's new parsedecl path now resolves the underlying type `bool` and labels it 'signed bool'. The check then treats the enum's range as excluding 1. In fact Yes == 1 is a valid value, so `collapseFirstSpace == CollapseFirstSpace::Yes` is not always false. This is a new false positive caused by the PR treating a bool underlying type as signed. The same pattern appears in many other added lines for this package." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/rendering/line/TrailingObjects.cpp:63:56: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "CollapseFirstSpace is an enum class with underlying type bool (`enum class CollapseFirstSpace : bool { No, Yes }`), so Yes has value 1. The PR now resolves the enum's underlying type through parsedecl. For bool it produces the nonsensical type 'signed bool' and treats the range as if 1 were out of range. Comparing against CollapseFirstSpace::Yes (value 1) is valid and can be true. This is a false positive, and the same pattern appears across the many other 'signed bool' warnings added for this package." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/style/values/grid/StyleGridTemplateAreas.cpp:41:62: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "GridTrackSizingDirection is a WebKit enum declared with a bool underlying type (enum class GridTrackSizingDirection : bool { Columns, Rows }), so Rows has the value 1. The comparison `direction == GridTrackSizingDirection::Rows` is legitimate and can be true. The PR now takes the enum's underlying type through parsedecl and gets a bogus 'signed bool' type. Cppcheck then wrongly thinks 1 is out of range and reports the condition as always false. This is a false positive caused by mishandling bool-based enums, and the same pattern produces dozens of new false warnings in this package." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/svg/SVGTransformList.cpp:112:57: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "ListReplacement is presumably declared as `enum class ListReplacement : bool { Append, Replace }`, so Replace has value 1. With the PR, the enum's underlying type 'bool' goes through parsedecl and comes out as the bogus type 'signed bool'. compareValueOutOfTypeRangeError then thinks 1 is outside the range of that type and reports the comparison as always false. It is not: currentListReplacement can be Replace (it starts as listReplacement, which can be Replace). This false positive appears many times across the package for bool-based enums, so the warning is a new false positive caused by the PR." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/svg/SVGTransformList.cpp:84:54: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "ListReplacement is an enum class with underlying type `bool` (WebKit's `enum class ListReplacement : bool { Append, Replace }`). The PR now gives it the value type 'signed bool', which is nonsense. Cppcheck then treats Replace (value 1) as out of range, so it reports the comparison as always false. In fact `currentListReplacement == ListReplacement::Replace` is a valid runtime condition. This false positive comes from the new enum underlying-type handling for bool, and the same bogus message appears across the whole package." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/svg/SVGTransformList.cpp:89:58: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "ListReplacement is presumably declared as `enum class ListReplacement : bool { Append, Replace }`. Replace has value 1, which is a valid bool value. The PR now resolves the enum's underlying type to a bogus 'signed bool' and treats 1 as out of range, so it claims the condition is always false. That is wrong: the comparison can be true, and `currentListReplacement` is initialized from the parameter, which callers pass as Replace. This is a false positive caused by the new enum underlying-type handling, as the many identical 'signed bool' warnings across the package also show." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/svg/properties/SVGAnimatedString.cpp:41:81: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "IsHrefProperty is a WebKit 'enum class IsHrefProperty : bool { No, Yes }'. The new parsedecl code takes the enum's underlying type 'bool' (a non-standard type in Cppcheck's isStandardType sense) and wrongly gives it a signed sign. The result is a bogus 'signed bool' type with range {-1,0}, so comparing against IsHrefProperty::Yes (1) is reported as always false. The comparison m_isHrefProperty == IsHrefProperty::Yes is perfectly valid. This is a new false positive, and the same pattern repeats across many WebKit files." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/workers/AbstractWorker.cpp:50:35: style: Comparing expression of type 'const signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "WebKit declares enums like `enum class WorkerType : bool { Classic, Module };`. The new parsedecl code takes the enum's underlying type (bool) and ends up with the invalid type 'signed bool', a 1-bit signed range. It then wrongly says that comparing against Module (value 1) is always false. `options.type == WorkerType::Module` is a normal comparison that can be true, so this is a false positive. The many other 'signed bool' warnings in this package come from the same bug." } }, { "key": [ "https://ftp.debian.org/debian/pool/main/o/openjfx/openjfx_21.0.12+3.orig.tar.xz", "your jfx21u-21.0.12-3/modules/javafx.web/src/main/native/Source/WebCore/xml/XMLHttpRequest.cpp:871:46: style: Comparing expression of type 'signed bool' against value 1. Condition is always false. [compareValueOutOfTypeRangeError]" ], "verdict": { "verdict": "regression", "confidence": "high", "explanation": "FinalMIMEType is a WebKit enum declared as 'enum class FinalMIMEType : bool { No, Yes };'. Its enumerators have the values 0 and 1, so comparing against FinalMIMEType::Yes (1) is perfectly valid and the condition can be true. The new parsedecl path gives an enum with underlying type 'bool' the type 'signed bool', which is nonsense, and then treats 1 as out of range. The warning that the condition is always false is a false positive caused by mishandling the bool underlying type." } } ], "started": "2026-10-12 21:28:00 UTC", "runner": "pc" }