AI review of 2026-10-08_12-49-15-d9ff8a48bccd-results.txt PR: #8910 https://github.com/cppcheck-opensource/cppcheck/pull/8910 Tested: d9ff8a48bccd04e1db7aea2b041abaa9bbbb82a2 Merge base: fa6c1f1327057cb8ad4764df236daf6d3c70e359 Reviewed: 2026-10-09 05:28:51 UTC Model: claude-opus-5-5 (effort high) Results: 31 reviewed of 31 in the report Verdicts: 22 improvement, 8 regression, 1 unclear Tokens: 52980 input, 73979 cache read, 5102 cache write, 16900 output The verdicts are written by AI and can be wrong. ---- 1 / 31 ---- Verdict: IMPROVEMENT (high confidence) Package: https://ftp.debian.org/debian/pool/main/0/0ad/0ad_0.28.0.orig.tar.xz Result: main 0ad-0.28.0/source/scriptinterface/Promises.h:55:26: warning: Member variable 'QueueElement::scriptInterface' has no initializer. [uninitMemberVarNoCtor] Explanation: QueueElement has a reference member 'scriptInterface' and no constructor. A reference member must be bound when the object is created, so the implicit default constructor is deleted. Every QueueElement is built by aggregate initialization, which always binds the reference. The warning that the reference 'has no initializer' was therefore a false positive, and the PR correctly removes it. ---- 2 / 31 ---- Verdict: REGRESSION (medium confidence) Package: https://ftp.debian.org/debian/pool/main/c/codelite/codelite_17.0.0+dfsg.orig.tar.xz Result: main codelite-17.0.0/ctags/Units/parser-cxx.r/variable-declarations.cpp.d/input.cpp:10:17: warning: Member variable 'Struct1::m03' has no initializer. [uninitMemberVarNoCtor] Explanation: Struct1 has no deleted default constructor. It has no reference members and no const scalar members. m05 is a function pointer that returns std::string&, not a reference member. The struct is default-constructed (v01, v02, v05), and some members have default initializers while m03 (std::string**) has none, so the old uninitMemberVarNoCtor warning was valid. The PR's new check most likely treats m05 as a reference because of the '&' in its declaration. That sets isDefaultConstructible=false and suppresses all warnings for the class (m01, m03, m05 all vanished). A true positive was lost. ---- 3 / 31 ---- Verdict: REGRESSION (high confidence) Package: https://ftp.debian.org/debian/pool/main/c/codelite/codelite_17.0.0+dfsg.orig.tar.xz Result: main codelite-17.0.0/ctags/Units/parser-cxx.r/variable-declarations.cpp.d/input.cpp:11:18: warning: Member variable 'Struct1::m05' has no initializer. [uninitMemberVarNoCtor] Explanation: `m05` is a function pointer whose return type is `std::string&`; the member itself is a pointer, not a reference. The PR apparently treats it as a reference (`var.isReference()` is true because of the `&` in the type), which sets `isDefaultConstructible = false` and skips the whole struct. That is wrong: `Struct1` is default constructible and is default-constructed as globals (`v01`, `v02`, `v05`). It also has default member initializers, so `m05` (and likewise `m01`, `m03`) really is left uninitialized. The removed warning was a true positive. ---- 4 / 31 ---- Verdict: REGRESSION (high confidence) Package: https://ftp.debian.org/debian/pool/main/c/codelite/codelite_17.0.0+dfsg.orig.tar.xz Result: main codelite-17.0.0/ctags/Units/parser-cxx.r/variable-declarations.cpp.d/input.cpp:8:15: warning: Member variable 'Struct1::m01' has no initializer. [uninitMemberVarNoCtor] Explanation: Struct1 is default constructible: it is instantiated as `v01`, `v02[10]` and `v05`. It has no reference members and no const non-class members. `m05` is a function pointer whose return type is `std::string&`. Cppcheck most likely classifies `m05` as a reference, so the new `isDefaultConstructible = false` path skips the whole class. That removes the warning for `m01`, an `unsigned int` with no initializer in a struct whose other members have default initializers. This is a true positive the check is meant to report, so losing it is a regression. The removed `m03` and `m05` warnings appear to be lost the same way. ---- 5 / 31 ---- Verdict: IMPROVEMENT (high confidence) Package: https://ftp.debian.org/debian/pool/main/f/filezilla/filezilla_3.71.0.orig.tar.xz Result: main filezilla-3.71.0/src/engine/server.cpp:10:23: warning: Member variable 't_protocolInfo::protocol' has no initializer. [uninitMemberVarNoCtor] Explanation: t_protocolInfo has const scalar members such as 'ServerProtocol const protocol', 'bool const translateable' and 'char const* const name'. Because of these, its default constructor is implicitly deleted. Every instance must be aggregate-initialized, as the protocolInfos array does, so the member can never be left uninitialized. The warning that 'protocol' has no initializer was a false positive, and removing it is correct. ---- 6 / 31 ---- Verdict: IMPROVEMENT (high confidence) Package: https://ftp.debian.org/debian/pool/main/f/filezilla/filezilla_3.71.0.orig.tar.xz Result: main filezilla-3.71.0/src/engine/server.cpp:12:7: warning: Member variable 't_protocolInfo::alwaysShowPrefix' has no initializer. [uninitMemberVarNoCtor] Explanation: t_protocolInfo has const non-class members such as `ServerProtocol const protocol`, `bool const translateable` and `char const* const name`. Because of these, its implicit default constructor is deleted, so every instance must be aggregate-initialized with all members, as the protocolInfos table does. 'alwaysShowPrefix' therefore can never be left uninitialized, and the uninitMemberVarNoCtor warning was a false positive. Removing it is correct. ---- 7 / 31 ---- Verdict: IMPROVEMENT (high confidence) Package: https://ftp.debian.org/debian/pool/main/f/filezilla/filezilla_3.71.0.orig.tar.xz Result: main filezilla-3.71.0/src/engine/server.cpp:13:7: warning: Member variable 't_protocolInfo::parse_from_prefix' has no initializer. [uninitMemberVarNoCtor] Explanation: t_protocolInfo has const scalar members without initializers (`ServerProtocol const protocol`, `bool const translateable`, `char const* const name`). This deletes its implicit default constructor, so every instance has to be aggregate-initialized with all members. The protocolInfos table does exactly that. The uninitMemberVarNoCtor warning on 'parse_from_prefix' was therefore a false positive, and removing it is correct. ---- 8 / 31 ---- Verdict: IMPROVEMENT (high confidence) Package: https://ftp.debian.org/debian/pool/main/f/filezilla/filezilla_3.71.0.orig.tar.xz Result: main filezilla-3.71.0/src/engine/server.cpp:14:15: warning: Member variable 't_protocolInfo::defaultPort' has no initializer. [uninitMemberVarNoCtor] Explanation: The struct t_protocolInfo has const members of non-class type: `ServerProtocol const protocol`, `bool const translateable` and `char const* const name`. Because of these, its implicit default constructor is deleted. Every instance must be aggregate-initialized, as protocolInfos does, so defaultPort is always initialized. The uninitMemberVarNoCtor warning for 'defaultPort' was a false positive, and removing it is correct. ---- 9 / 31 ---- Verdict: IMPROVEMENT (high confidence) Package: https://ftp.debian.org/debian/pool/main/f/filezilla/filezilla_3.71.0.orig.tar.xz Result: main filezilla-3.71.0/src/engine/server.cpp:15:13: warning: Member variable 't_protocolInfo::translateable' has no initializer. [uninitMemberVarNoCtor] Explanation: t_protocolInfo has const non-class members ('protocol', 'translateable', 'name'). That makes its default constructor implicitly deleted, so every instance must be created with explicit initialization. Here that happens through aggregate initialization in protocolInfos. The warning that 'translateable' (a bool const) has no initializer was therefore a false positive, and removing it is correct. ---- 10 / 31 ---- Verdict: IMPROVEMENT (high confidence) Package: https://ftp.debian.org/debian/pool/main/f/filezilla/filezilla_3.71.0.orig.tar.xz Result: main filezilla-3.71.0/src/engine/server.cpp:16:20: warning: Member variable 't_protocolInfo::name' has no initializer. [uninitMemberVarNoCtor] Explanation: t_protocolInfo has no default member initializers and only const members such as 'char const* const name' and 'ServerProtocol const protocol'. Because of those const scalar members, the implicit default constructor is deleted. The struct can therefore only be aggregate-initialized, and every instance in protocolInfos initializes all members. The uninitMemberVarNoCtor warning on 'name' was a false positive, and the PR correctly removes it. ---- 11 / 31 ---- Verdict: IMPROVEMENT (high confidence) Package: https://ftp.debian.org/debian/pool/main/g/graphite2/graphite2_1.3.15.orig.tar.gz Result: main graphite-1.3.15/src/call_machine.cpp:46:21: warning: Member variable 'regbank::map' has no initializer. [uninitMemberVarNoCtor] Explanation: `regbank` has reference members (`smap`, `ip`, `status`) and a const pointer (`map_base`), so its implicit default constructor is deleted. Any instance must therefore be created by aggregate initialization. In aggregate initialization, members not listed explicitly are value-initialized, so `map` can never be left uninitialized. The `uninitMemberVarNoCtor` warning on `regbank::map` was a false positive, and the PR correctly removes it. ---- 12 / 31 ---- Verdict: IMPROVEMENT (high confidence) Package: https://ftp.debian.org/debian/pool/main/g/graphite2/graphite2_1.3.15.orig.tar.gz Result: main graphite-1.3.15/src/call_machine.cpp:48:21: warning: Member variable 'regbank::map_base' has no initializer. [uninitMemberVarNoCtor] Explanation: regbank has reference members (smap, ip, status) and a const pointer member (map_base). Because of these, the struct has no usable implicit default constructor, so every instance must be aggregate-initialized with all members given. The uninitMemberVarNoCtor warning on 'map_base' was therefore a false positive, and the PR correctly removes it. ---- 13 / 31 ---- Verdict: IMPROVEMENT (high confidence) Package: https://ftp.debian.org/debian/pool/main/g/graphite2/graphite2_1.3.15.orig.tar.gz Result: main graphite-1.3.15/src/call_machine.cpp:49:21: warning: Member variable 'regbank::ip' has no initializer. [uninitMemberVarNoCtor] Explanation: `regbank` has reference members (`smap`, `ip`, `status`) and a const pointer (`map_base`). That makes its implicit default constructor deleted, so every instance has to be aggregate-initialized with all of its members. `ip` is a reference (`const instr * &`), and a reference must always be bound on initialization, so it can never be left uninitialized. The warning 'no initializer' for `ip` was a false positive, and the PR correctly removes it. ---- 14 / 31 ---- Verdict: IMPROVEMENT (high confidence) Package: https://ftp.debian.org/debian/pool/main/g/graphite2/graphite2_1.3.15.orig.tar.gz Result: main graphite-1.3.15/src/call_machine.cpp:52:25: warning: Member variable 'regbank::status' has no initializer. [uninitMemberVarNoCtor] Explanation: 'status' is a reference member (Machine::status_t &). Because regbank also has reference members (smap, ip, status), its implicit default constructor is deleted, so every regbank object has to be aggregate-initialized. Moreover, a reference member can never be left uninitialized. Reporting that the reference 'status' has no initializer is therefore a false positive, and the PR correctly removes it. ---- 15 / 31 ---- Verdict: REGRESSION (low confidence) Package: https://ftp.debian.org/debian/pool/main/m/mmseqs2/mmseqs2_18-8cc5c+ds.orig.tar.xz Result: main MMseqs2-18-8cc5c/src/commons/Command.h:100:17: warning: Member variable 'Command::examples' has no initializer. [uninitMemberVarNoCtor] Explanation: `Command` is a plain aggregate. It has no reference members and no const non-class members: `const char *examples` and the others are pointers to const, not const pointers, and the PR's own test still warns for `const int* d`. So `Command` stays default constructible, and the PR's rule (skip classes whose default constructor is deleted) should not apply. Since all nine members vanished together, `isDefaultConstructible` must have been set to false for some member. The most likely cause is that the function-pointer member `int (*commandFunction)(int, const char **, const Command&)` is misread as a reference or const variable because of the `const Command&` parameter. That would be a misclassification, not better understanding. The warning may have been low-value here, since commands are probably fully brace-initialized, but it was removed for the wrong reason. ---- 16 / 31 ---- Verdict: REGRESSION (medium confidence) Package: https://ftp.debian.org/debian/pool/main/m/mmseqs2/mmseqs2_18-8cc5c+ds.orig.tar.xz Result: main MMseqs2-18-8cc5c/src/commons/Command.h:101:17: warning: Member variable 'Command::author' has no initializer. [uninitMemberVarNoCtor] Explanation: `Command` has no reference members and no const non-class members. Every member is a pointer to const (`const char *`), a plain pointer, a function pointer, an enum, an `unsigned int` or a `std::vector`. So `Command c;` is valid and leaves `author` and the other fields uninitialized. That is exactly what `uninitMemberVarNoCtor` reports, and main warned because the `std::vector` member is self-initialized. All nine warnings disappeared, which means the new `isDefaultConstructible` logic wrongly classified some member as a reference or const. The likely cause is the function pointer whose parameter list contains `const Command&`, or `const char*` being treated as const. The PR's own test expects a warning for `const int* d`, so suppressing these warnings is unintended. Real warnings were lost. ---- 17 / 31 ---- Verdict: REGRESSION (medium confidence) Package: https://ftp.debian.org/debian/pool/main/m/mmseqs2/mmseqs2_18-8cc5c+ds.orig.tar.xz Result: main MMseqs2-18-8cc5c/src/commons/Command.h:102:17: warning: Member variable 'Command::usage' has no initializer. [uninitMemberVarNoCtor] Explanation: `Command` has no reference members and no non-static const scalar members: `const char *usage` is a pointer to const, not a const pointer. So the struct is still default constructible, and the PR's "default constructor is deleted" reasoning does not apply here. All nine warnings for this struct disappeared at once, including the one for `unsigned int citations`. That suggests the new check wrongly treats some member as a reference or const, most likely the function pointer `int (*commandFunction)(int, const char **, const Command&)`, whose parameter list contains `const ... &`. The `usage` warning was removed by a misclassification rather than better understanding, so this is a lost true positive under the checker's semantics. ---- 18 / 31 ---- Verdict: IMPROVEMENT (medium confidence) Package: https://ftp.debian.org/debian/pool/main/m/mmseqs2/mmseqs2_18-8cc5c+ds.orig.tar.xz Result: main MMseqs2-18-8cc5c/src/commons/Command.h:103:18: warning: Member variable 'Command::citations' has no initializer. [uninitMemberVarNoCtor] Explanation: `Command` is a plain aggregate. None of its members has a default initializer, and it is filled with brace initialization in `registerCommands`. `uninitMemberVarNoCtor` is meant for classes that mix default-initialized and uninitialized members. With no default member initializers here, the warning does not fit this struct; the similar `DbType` struct gets no warning either. Main probably flagged it because it misread the function-pointer member (whose signature contains `const Command&`). The PR now treats such a member as making the class non-default-constructible, so the class is skipped. That reason may itself be a misparse, but dropping this likely false positive on an aggregate is a net improvement for users. ---- 19 / 31 ---- Verdict: IMPROVEMENT (medium confidence) Package: https://ftp.debian.org/debian/pool/main/m/mmseqs2/mmseqs2_18-8cc5c+ds.orig.tar.xz Result: main MMseqs2-18-8cc5c/src/commons/Command.h:95:17: warning: Member variable 'Command::cmd' has no initializer. [uninitMemberVarNoCtor] Explanation: `Command` is a plain aggregate with no default member initializers. MMseqs2 builds it by brace (aggregate) initialization in `registerCommands`, with every field supplied. Warning that `Command::cmd` 'has no initializer' is noise rather than a real bug. The removal may come from Cppcheck reading the function-pointer member's `const Command&` parameter as a reference member, which would mark the struct as not default constructible. Even so, dropping these warnings for this aggregate is a better result for users. ---- 20 / 31 ---- Verdict: IMPROVEMENT (low confidence) Package: https://ftp.debian.org/debian/pool/main/m/mmseqs2/mmseqs2_18-8cc5c+ds.orig.tar.xz Result: main MMseqs2-18-8cc5c/src/commons/Command.h:96:11: warning: Member variable 'Command::commandFunction' has no initializer. [uninitMemberVarNoCtor] Explanation: `Command` is a plain aggregate. None of its members has a default member initializer, and MMseqs2 fills it with brace (aggregate) initialization in its command tables. `uninitMemberVarNoCtor` is meant for mixed cases where some members have default initializers and others do not. That does not apply here, so main's warnings on every member are most likely noise or false positives. The PR removes them. The likely trigger is that cppcheck treats `commandFunction` as a reference or const member: its function-pointer type has a `const Command&` parameter, which would set `isDefaultConstructible` to false. That reason is questionable, but the visible effect is the loss of likely false positives. Confidence is low because the mechanism is a guess. ---- 21 / 31 ---- Verdict: UNCLEAR (low confidence) Package: https://ftp.debian.org/debian/pool/main/m/mmseqs2/mmseqs2_18-8cc5c+ds.orig.tar.xz Result: main MMseqs2-18-8cc5c/src/commons/Command.h:97:36: warning: Member variable 'Command::params' has no initializer. [uninitMemberVarNoCtor] Explanation: `Command` is a plain aggregate. Its only non-static members are pointers, a function pointer, an enum, an `unsigned int` and a `std::vector`. None of them is a reference or a top-level const non-class member, so the type really is default constructible. The PR's stated reason for suppressing the check does not apply here. The warnings most likely vanished because the function pointer `int (*commandFunction)(int, const char **, const Command&)` was misread as const or reference, which looks like a side effect of a misclassification. On the other hand, no member has a default initializer, so main's uninitMemberVarNoCtor warnings were themselves questionable. In MMseqs2, `Command` is normally fully aggregate-initialized in `registerCommands`. The warnings were probably low-value or false, but they disappeared for the wrong reason, so the net effect is not clear-cut. ---- 22 / 31 ---- Verdict: REGRESSION (medium confidence) Package: https://ftp.debian.org/debian/pool/main/m/mmseqs2/mmseqs2_18-8cc5c+ds.orig.tar.xz Result: main MMseqs2-18-8cc5c/src/commons/Command.h:98:17: warning: Member variable 'Command::mode' has no initializer. [uninitMemberVarNoCtor] Explanation: `Command` has no const non-class members and no reference members. Its members are plain pointers, a function pointer, an enum (`CommandMode`), an unsigned int and a `std::vector`. So the struct is still default constructible, and a default-constructed `Command` leaves `mode` and the other scalar members uninitialized while `databases` gets constructed. The PR's rule only stops warning when the default constructor is deleted, which is not the case here. The likeliest cause is that cppcheck reads the `const Command&` parameter inside the function-pointer declaration `int (*commandFunction)(int, const char **, const Command&)` as making that member a reference or const. That would wrongly set `isDefaultConstructible = false`. The warning is consistent with the checker's intent (the struct is aggregate-initialized in practice, so its value is debatable), and it was removed for a wrong reason. ---- 23 / 31 ---- Verdict: REGRESSION (medium confidence) Package: https://ftp.debian.org/debian/pool/main/m/mmseqs2/mmseqs2_18-8cc5c+ds.orig.tar.xz Result: main MMseqs2-18-8cc5c/src/commons/Command.h:99:17: warning: Member variable 'Command::description' has no initializer. [uninitMemberVarNoCtor] Explanation: `Command` is a plain aggregate. None of its members is a reference or a top-level const non-class member: `const char *` is a pointer to const, and the other members are an int, a function pointer, an enum and a vector. So the struct is default constructible, and the PR's "default constructor is deleted" reasoning does not apply. Main warned because the `std::vector` member counts as self-initialized, which the PR's own tests keep as intended behavior (e.g. the `std::string` case). The warning on `description` most likely vanished because Cppcheck misclassifies a member, probably the function pointer whose parameter list contains `const` and `&`, as const or reference. These warnings are consistent with the check's design, so losing them is a regression. ---- 24 / 31 ---- Verdict: IMPROVEMENT (high confidence) Package: https://ftp.debian.org/debian/pool/main/p/pistache/pistache_0.4.26+ds.orig.tar.xz Result: main pistacheio-pistache-ddffda8/src/common/http_header.cc:180:31: warning: Member variable 'DirectiveValue::str' has no initializer. [uninitMemberVarNoCtor] Explanation: DirectiveValue is an aggregate with const members `const char* const str` and `const size_t size`, so it has no usable default constructor. Every instance must be aggregate-initialized, and the VALUE macro initializes all three members. A warning that 'str' has no initializer is therefore a false positive. Removing it is correct. ---- 25 / 31 ---- Verdict: IMPROVEMENT (high confidence) Package: https://ftp.debian.org/debian/pool/main/p/pistache/pistache_0.4.26+ds.orig.tar.xz Result: main pistacheio-pistache-ddffda8/src/common/http_header.cc:181:26: warning: Member variable 'DirectiveValue::size' has no initializer. [uninitMemberVarNoCtor] Explanation: DirectiveValue is an aggregate whose members include `const char* const str` and `const size_t size`. Because it has const scalar members without default initializers, it is not default constructible, so every instance must be aggregate-initialized. All instances here are created that way via the VALUE macro, which supplies all three fields. The warning that 'size' has no initializer was a false positive, and the PR correctly removes it. ---- 26 / 31 ---- Verdict: IMPROVEMENT (high confidence) Package: https://ftp.debian.org/debian/pool/main/p/pistache/pistache_0.4.26+ds.orig.tar.xz Result: main pistacheio-pistache-ddffda8/src/common/mime.cc:72:31: warning: Member variable 'Extension::raw' has no initializer. [uninitMemberVarNoCtor] Explanation: `Extension` declares `const char* const raw`, a const non-class member with no default initializer. That makes the implicit default constructor deleted, so every instance must initialize `raw`. Here all instances use aggregate initialization in `KnownExtensions`. Warning that `raw` 'has no initializer' was therefore a false positive, and the PR removes it. ---- 27 / 31 ---- Verdict: IMPROVEMENT (high confidence) Package: https://ftp.debian.org/debian/pool/main/r/ring/ring_20230206.0~ds2.orig.tar.gz Result: main jami-20230206.0/daemon/test/agent/src/bindings/signal.cpp:66:30: warning: Member variable 'cb_ctx::args' has no initializer. [uninitMemberVarNoCtor] Explanation: cb_ctx has two reference members, `me` and `args`. A reference member must be bound at aggregate initialization, and it deletes the implicit default constructor. So `args` can never be left uninitialized. The uninitMemberVarNoCtor warning on the reference member was a false positive, and the PR correctly removes it. ---- 28 / 31 ---- Verdict: IMPROVEMENT (high confidence) Package: https://ftp.debian.org/debian/pool/main/s/springlobby/springlobby_0.274.orig.tar.bz2 Result: main springlobby-0.274/src/downloader/lib/src/BuildGit.cpp:127:21: warning: Member variable 'SubmoduleContext::ModRoot' has no initializer. [uninitMemberVarNoCtor] Explanation: SubmoduleContext has only reference members (StoreT&, PoolArchiveT&, const std::string&) plus an unordered_map, and no constructor. Because of the reference members its implicit default constructor is deleted, so every instance has to be aggregate-initialized with all references bound. A reference cannot be left uninitialized, so the old warning on ModRoot was a false positive. The PR now skips classes that are not default constructible, which removes it. ---- 29 / 31 ---- Verdict: IMPROVEMENT (high confidence) Package: https://ftp.debian.org/debian/pool/main/s/springlobby/springlobby_0.274.orig.tar.bz2 Result: main springlobby-0.274/src/downloader/lib/src/BuildGit.cpp:128:21: warning: Member variable 'SubmoduleContext::pathPrefix' has no initializer. [uninitMemberVarNoCtor] Explanation: SubmoduleContext has reference members (Store, Archive, ModRoot, pathPrefix). That makes its implicit default constructor deleted, so every instance must be aggregate-initialized with the references bound. The warning that 'pathPrefix' has no initializer is therefore a false positive: a reference member cannot be left uninitialized. The PR detects reference members and skips the check, which correctly removes this false positive. ---- 30 / 31 ---- Verdict: IMPROVEMENT (high confidence) Package: https://ftp.debian.org/debian/pool/main/s/springlobby/springlobby_0.274.orig.tar.bz2 Result: main springlobby-0.274/src/downloader/lib/src/rapid/PoolArchive.cpp:198:9: warning: Member variable 'UserDataT::File' has no initializer. [uninitMemberVarNoCtor] Explanation: UserDataT has reference members (Store, Entry) and no default member initializers. That makes it not default constructible, so it can only be created by aggregate initialization. Because File is the first member, any valid aggregate initializer must give File a value before it can reach the references. The uninitMemberVarNoCtor warning for File was therefore a false positive, and the PR correctly removes it. ---- 31 / 31 ---- Verdict: IMPROVEMENT (high confidence) Package: https://ftp.debian.org/debian/pool/main/s/springlobby/springlobby_0.274.orig.tar.bz2 Result: main springlobby-0.274/src/downloader/lib/src/rapid/PoolArchive.cpp:200:21: warning: Member variable 'UserDataT::Entry' has no initializer. [uninitMemberVarNoCtor] Explanation: UserDataT has two reference members (Store and Entry). That deletes the implicit default constructor, so every instance must be aggregate-initialized with values for the references. Reporting a reference member as having no initializer is a false positive: a reference cannot be left uninitialized. The PR skips the whole check for classes that are not default constructible, which removes this false positive.