2026-05-06 03:54 ftp://ftp.de.debian.org/debian/pool/main/a/animals/animals_202601041054Z.orig.tar.gz cppcheck-options: --library=posix --library=gnu --library=bsd --library=sqlite3 --inconclusive --enable=style,information --inline-suppr --template=daca2 --disable=missingInclude --suppress=unmatchedSuppression --check-library --debug-warnings --suppress=autoNoType --suppress=valueFlowBailout --suppress=bailoutUninitVar --suppress=symbolDatabaseWarning --suppress=normalCheckLevelConditionExpressions -D__GNUC__ --platform=unix64 -j1 platform: Linux-6.8.0-111-generic-x86_64-with-glibc2.39 python: 3.12.3 client-version: 1.3.70 compiler: g++ (Ubuntu 14.2.0-4ubuntu2~24.04.1) 14.2.0 cppcheck: head 2.20.0 head-info: 6278f6b (2026-05-05 15:01:04 +0200) count: 42 42 elapsed-time: 0.3 0.2 head-timing-info: old-timing-info: head results: animals-202601041054Z/main.cc:72:14: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cout [valueFlowBailoutIncompleteVar] animals-202601041054Z/main.cc:223:14: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cout [valueFlowBailoutIncompleteVar] animals-202601041054Z/main.cc:243:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cout [valueFlowBailoutIncompleteVar] animals-202601041054Z/main.cc:250:27: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable DbName [valueFlowBailoutIncompleteVar] animals-202601041054Z/Question.h:183:21: style:inconclusive: Technically the member function 'Question::GetYesKey' can be const. [functionConst] animals-202601041054Z/Question.h:188:21: style:inconclusive: Technically the member function 'Question::GetNoKey' can be const. [functionConst] animals-202601041054Z/Animal.h:57:22: style: Virtual function 'Destroy' is called from destructor '~Animal()' at line 126. Dynamic binding is not used. [virtualCallInConstructor] animals-202601041054Z/Animal.h:126:13: note: Calling Destroy animals-202601041054Z/Animal.h:57:22: note: Destroy is a virtual function animals-202601041054Z/Question.h:70:22: style: Virtual function 'Destroy' is called from destructor '~Question()' at line 165. Dynamic binding is not used. [virtualCallInConstructor] animals-202601041054Z/Question.h:165:13: note: Calling Destroy animals-202601041054Z/Question.h:70:22: note: Destroy is a virtual function animals-202601041054Z/Animal.h:101:9: style: Class 'Animal' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] animals-202601041054Z/Animal.h:106:9: style: Class 'Animal' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] animals-202601041054Z/Animal.h:57:22: style: The function 'Destroy' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] animals-202601041054Z/Record.h:35:22: note: Virtual function in base class animals-202601041054Z/Animal.h:57:22: note: Function in derived class animals-202601041054Z/Animal.h:65:22: style: The function 'SetNull' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] animals-202601041054Z/Record.h:39:22: note: Virtual function in base class animals-202601041054Z/Animal.h:65:22: note: Function in derived class animals-202601041054Z/Animal.h:70:22: style: The function 'SetFromDataString' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] animals-202601041054Z/Record.h:43:22: note: Virtual function in base class animals-202601041054Z/Animal.h:70:22: note: Function in derived class animals-202601041054Z/Animal.h:124:18: style: The destructor '~Animal' overrides a destructor in a base class but is not marked with a 'override' specifier. [missingOverride] animals-202601041054Z/Record.h:51:18: note: Virtual destructor in base class animals-202601041054Z/Animal.h:124:18: note: Destructor in derived class animals-202601041054Z/Animal.h:143:29: style: The function 'FormNewDataCString' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] animals-202601041054Z/Record.h:53:29: note: Virtual function in base class animals-202601041054Z/Animal.h:143:29: note: Function in derived class animals-202601041054Z/Animal.h:155:22: style: The function 'Print' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] animals-202601041054Z/Record.h:111:22: note: Virtual function in base class animals-202601041054Z/Animal.h:155:22: note: Function in derived class animals-202601041054Z/Question.h:70:22: style: The function 'Destroy' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] animals-202601041054Z/Record.h:35:22: note: Virtual function in base class animals-202601041054Z/Question.h:70:22: note: Function in derived class animals-202601041054Z/Question.h:82:22: style: The function 'SetNull' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] animals-202601041054Z/Record.h:39:22: note: Virtual function in base class animals-202601041054Z/Question.h:82:22: note: Function in derived class animals-202601041054Z/Question.h:89:22: style: The function 'SetFromDataString' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] animals-202601041054Z/Record.h:43:22: note: Virtual function in base class animals-202601041054Z/Question.h:89:22: note: Function in derived class animals-202601041054Z/Question.h:163:18: style: The destructor '~Question' overrides a destructor in a base class but is not marked with a 'override' specifier. [missingOverride] animals-202601041054Z/Record.h:51:18: note: Virtual destructor in base class animals-202601041054Z/Question.h:163:18: note: Destructor in derived class animals-202601041054Z/Question.h:193:29: style: The function 'FormNewDataCString' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] animals-202601041054Z/Record.h:53:29: note: Virtual function in base class animals-202601041054Z/Question.h:193:29: note: Function in derived class animals-202601041054Z/Question.h:215:22: style: The function 'Print' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] animals-202601041054Z/Record.h:111:22: note: Virtual function in base class animals-202601041054Z/Question.h:215:22: note: Function in derived class animals-202601041054Z/main.cc:99:38: warning: Potentially invalid type conversion in old-style C cast, clarify/fix with C++ cast [dangerousTypeCast] animals-202601041054Z/main.cc:143:38: warning: Potentially invalid type conversion in old-style C cast, clarify/fix with C++ cast [dangerousTypeCast] animals-202601041054Z/main.cc:140:17: style: The scope of the variable 'guessedAnimalAnswer' can be reduced. [variableScope] animals-202601041054Z/main.cc:221:27: performance: Function parameter 'dbtype_singular' should be passed by const reference. [passedByValue] animals-202601041054Z/Animal.h:106:29: style: Parameter 'anAnimal' can be declared as reference to const [constParameterReference] animals-202601041054Z/main.cc:247:27: style: Parameter 'argv' can be declared as const array [constParameter] animals-202601041054Z/sqlite-stuff.cc:30:56: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SQLITE_STATIC [valueFlowBailoutIncompleteVar] animals-202601041054Z/sqlite-stuff.cc:56:56: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SQLITE_STATIC [valueFlowBailoutIncompleteVar] animals-202601041054Z/sqlite-stuff.cc:77:56: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SQLITE_STATIC [valueFlowBailoutIncompleteVar] animals-202601041054Z/sqlite-stuff.cc:103:14: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cerr [valueFlowBailoutIncompleteVar] animals-202601041054Z/sqlite-stuff.cc:87:16: style: C-style pointer casting [cstyleCast] animals-202601041054Z/test-str-cvt.cc:83:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cout [valueFlowBailoutIncompleteVar] animals-202601041054Z/test-str-cvt.cc:79:26: style: Parameter 'argv' can be declared as const array [constParameter] animals-202601041054Z/test-str-cvt.cc:114:11: style: Variable 's1' can be declared as pointer to const [constVariablePointer] animals-202601041054Z/test-str-cvt.cc:115:11: style: Variable 's2' can be declared as pointer to const [constVariablePointer] animals-202601041054Z/test-str-cvt.cc:119:11: style: Variable 's3' can be declared as pointer to const [constVariablePointer] animals-202601041054Z/test-str-cvt.cc:57:10: performance: Ineffective call of function 'substr' because a prefix of the string is assigned to itself. Use resize() or pop_back() instead. [uselessCallsSubstr] animals-202601041054Z/test-str-cvt.cc:66:14: performance: Ineffective call of function 'substr' because a prefix of the string is assigned to itself. Use resize() or pop_back() instead. [uselessCallsSubstr] animals-202601041054Z/util.cc:46:10: performance: Ineffective call of function 'substr' because a prefix of the string is assigned to itself. Use resize() or pop_back() instead. [uselessCallsSubstr] animals-202601041054Z/util.cc:55:14: performance: Ineffective call of function 'substr' because a prefix of the string is assigned to itself. Use resize() or pop_back() instead. [uselessCallsSubstr] diff: DONE