2026-05-01 15:24 ftp://ftp.de.debian.org/debian/pool/main/d/dnaclust/dnaclust_3.orig.tar.gz cppcheck-options: --library=posix --library=gnu --library=bsd --library=boost --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 -j6 platform: Linux-7.0.3+deb14-amd64-x86_64-with-glibc2.42 python: 3.13.12 client-version: 1.4.0 compiler: g++ (Debian 15.2.0-17) 15.2.0 cppcheck: head 2.20.0 head-info: e5c4a734 (2026-05-01 11:10:43 +0200) count: 83 76 elapsed-time: 0.6 0.4 head-timing-info: old-timing-info: head results: dnaclust_repo_release3/fastasort.cpp:39:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cerr [valueFlowBailoutIncompleteVar] dnaclust_repo_release3/fastaselect.cpp:45:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cerr [valueFlowBailoutIncompleteVar] dnaclust_repo_release3/fastasort.cpp:14:8: style:inconclusive: Technically the member function 'longer_sequence::operator()' can be const. [functionConst] dnaclust_repo_release3/fasta.hpp:21:5: style: Struct 'FastaRecord' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] dnaclust_repo_release3/fasta.cpp:18:42: style:inconclusive: Function 'FastaRecord' argument 1 names different: declaration '' definition 'h'. [funcArgNamesDifferentUnnamed] dnaclust_repo_release3/fasta.cpp:27:32: style:inconclusive: Function 'operator>>' argument 1 names different: declaration '' definition 'inputStream'. [funcArgNamesDifferentUnnamed] dnaclust_repo_release3/fasta.cpp:27:58: style:inconclusive: Function 'operator>>' argument 2 names different: declaration '' definition 'fr'. [funcArgNamesDifferentUnnamed] dnaclust_repo_release3/fasta.cpp:43:32: style:inconclusive: Function 'operator<<' argument 1 names different: declaration '' definition 'outputStream'. [funcArgNamesDifferentUnnamed] dnaclust_repo_release3/fasta.cpp:43:65: style:inconclusive: Function 'operator<<' argument 2 names different: declaration '' definition 'fr'. [funcArgNamesDifferentUnnamed] dnaclust_repo_release3/fasta.cpp:58:32: style:inconclusive: Function 'operator>>' argument 1 names different: declaration '' definition 'inputStream'. [funcArgNamesDifferentUnnamed] dnaclust_repo_release3/fasta.cpp:58:52: style:inconclusive: Function 'operator>>' argument 2 names different: declaration '' definition 'fa'. [funcArgNamesDifferentUnnamed] dnaclust_repo_release3/fasta.cpp:73:32: style:inconclusive: Function 'operator<<' argument 1 names different: declaration '' definition 'outputStream'. [funcArgNamesDifferentUnnamed] dnaclust_repo_release3/fasta.cpp:73:59: style:inconclusive: Function 'operator<<' argument 2 names different: declaration '' definition 'fa'. [funcArgNamesDifferentUnnamed] dnaclust_repo_release3/search_include.cpp:22:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable tables [valueFlowBailoutIncompleteVar] dnaclust_repo_release3/multi_dim.hpp:30:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SIZE2_ [valueFlowBailoutIncompleteVar] dnaclust_repo_release3/multi_dim.hpp:36:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SIZE2_ [valueFlowBailoutIncompleteVar] dnaclust_repo_release3/multi_dim.hpp:41:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SIZE2_ [valueFlowBailoutIncompleteVar] dnaclust_repo_release3/multi_dim.hpp:46:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SIZE2_ [valueFlowBailoutIncompleteVar] dnaclust_repo_release3/multi_dim.hpp:51:14: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SIZE1_ [valueFlowBailoutIncompleteVar] dnaclust_repo_release3/multi_dim.hpp:55:14: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SIZE2_ [valueFlowBailoutIncompleteVar] dnaclust_repo_release3/multi_dim.hpp:61:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SIZE1_ [valueFlowBailoutIncompleteVar] dnaclust_repo_release3/dnaclust.cpp:497:31: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable first [valueFlowBailoutIncompleteVar] dnaclust_repo_release3/dnaclust.cpp:1033:46: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable numberOfKmers [valueFlowBailoutIncompleteVar] dnaclust_repo_release3/dnaclust.cpp:1305:55: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable second [valueFlowBailoutIncompleteVar] dnaclust_repo_release3/dnaclust.cpp:1720:7: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cerr [valueFlowBailoutIncompleteVar] dnaclust_repo_release3/dnaclust.cpp:172:37: error: Returning object that will be invalid when returning. [returnDanglingLifetime] dnaclust_repo_release3/dnaclust.cpp:172:37: note: Pointer to container is created here. dnaclust_repo_release3/dnaclust.cpp:172:37: note: Returning object that will be invalid when returning. dnaclust_repo_release3/multi_dim.hpp:49:15: style: The member function 'multi_dim::Array2D::size1' can be static. [functionStatic] dnaclust_repo_release3/multi_dim.hpp:53:15: style: The member function 'multi_dim::Array2D::size2' can be static. [functionStatic] dnaclust_repo_release3/multi_dim.hpp:59:10: style: The member function 'multi_dim::Array2D::rangeCheck_' can be static. [functionStatic] dnaclust_repo_release3/multi_dim.hpp:108:15: style:inconclusive: Technically the member function 'multi_dim::Matrix < uint16_t >::at' can be const. [functionConst] dnaclust_repo_release3/multi_dim.hpp:120:22: style:inconclusive: Technically the member function 'multi_dim::Matrix < uint16_t >::operator()' can be const. [functionConst] dnaclust_repo_release3/multi_dim.hpp:108:15: style:inconclusive: Technically the member function 'multi_dim::Matrix < int32_t >::at' can be const. [functionConst] dnaclust_repo_release3/multi_dim.hpp:120:22: style:inconclusive: Technically the member function 'multi_dim::Matrix < int32_t >::operator()' can be const. [functionConst] dnaclust_repo_release3/multi_dim.hpp:108:15: style:inconclusive: Technically the member function 'multi_dim::Matrix < BackPointer >::at' can be const. [functionConst] dnaclust_repo_release3/multi_dim.hpp:120:22: style:inconclusive: Technically the member function 'multi_dim::Matrix < BackPointer >::operator()' can be const. [functionConst] dnaclust_repo_release3/dnaclust.cpp:164:3: style: Class 'UnknownNucleotide' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] dnaclust_repo_release3/dnaclust.cpp:2010:7: error: Unhandled exception thrown in function that is an entry point. [throwInEntryPoint] dnaclust_repo_release3/dnaclust.cpp:1354:13: style: Redundant initialization for 'end'. The initialized value is overwritten before it is read. [redundantInitialization] dnaclust_repo_release3/dnaclust.cpp:1352:24: note: end is initialized dnaclust_repo_release3/dnaclust.cpp:1354:13: note: end is overwritten dnaclust_repo_release3/dnaclust.cpp:1357:9: style: Variable 'end' is assigned an expression that holds the same value. [redundantAssignment] dnaclust_repo_release3/dnaclust.cpp:1352:24: note: end is assigned 'i+interval_size' here. dnaclust_repo_release3/dnaclust.cpp:1357:9: note: Variable 'end' is assigned an expression that holds the same value. dnaclust_repo_release3/dnaclust.cpp:1969:15: style: Redundant initialization for 'end'. The initialized value is overwritten before it is read. [redundantInitialization] dnaclust_repo_release3/dnaclust.cpp:1967:26: note: end is initialized dnaclust_repo_release3/dnaclust.cpp:1969:15: note: end is overwritten dnaclust_repo_release3/dnaclust.cpp:1972:11: style: Variable 'end' is assigned an expression that holds the same value. [redundantAssignment] dnaclust_repo_release3/dnaclust.cpp:1967:26: note: end is assigned 'i+interval_size' here. dnaclust_repo_release3/dnaclust.cpp:1972:11: note: Variable 'end' is assigned an expression that holds the same value. dnaclust_repo_release3/dnaclust.cpp:2152:15: style: Redundant initialization for 'end'. The initialized value is overwritten before it is read. [redundantInitialization] dnaclust_repo_release3/dnaclust.cpp:2150:26: note: end is initialized dnaclust_repo_release3/dnaclust.cpp:2152:15: note: end is overwritten dnaclust_repo_release3/dnaclust.cpp:2155:11: style: Variable 'end' is assigned an expression that holds the same value. [redundantAssignment] dnaclust_repo_release3/dnaclust.cpp:2150:26: note: end is assigned 'i+interval_size' here. dnaclust_repo_release3/dnaclust.cpp:2155:11: note: Variable 'end' is assigned an expression that holds the same value. dnaclust_repo_release3/dnaclust.cpp:193:5: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] dnaclust_repo_release3/search_include.cpp:54:20: style: The scope of the variable 'result' can be reduced. [variableScope] dnaclust_repo_release3/search_include.cpp:103:11: style: The scope of the variable 'currentCost' can be reduced. [variableScope] dnaclust_repo_release3/search_include.cpp:109:11: style: The scope of the variable 'c2' can be reduced. [variableScope] dnaclust_repo_release3/search_include.cpp:110:11: style: The scope of the variable 'matchCost' can be reduced. [variableScope] dnaclust_repo_release3/search_include.cpp:110:22: style: The scope of the variable 'gapCost2' can be reduced. [variableScope] dnaclust_repo_release3/search_include.cpp:110:32: style: The scope of the variable 'gapCost1' can be reduced. [variableScope] dnaclust_repo_release3/search_include.cpp:112:35: style: The scope of the variable 'downCost' can be reduced. [variableScope] dnaclust_repo_release3/search_include.cpp:105:14: style: The scope of the variable 'currentPointer' can be reduced. [variableScope] dnaclust_repo_release3/dnaclust.cpp:1031:9: style: The scope of the variable 'minMore' can be reduced. [variableScope] dnaclust_repo_release3/dnaclust.cpp:1058:11: style: The scope of the variable 'minCount' can be reduced. [variableScope] dnaclust_repo_release3/dnaclust.cpp:1059:11: style: The scope of the variable 'maxCount' can be reduced. [variableScope] dnaclust_repo_release3/dnaclust.cpp:1060:11: style: The scope of the variable 'queryCount' can be reduced. [variableScope] dnaclust_repo_release3/dnaclust.cpp:330:12: style: Local variable 'minCost' shadows outer variable [shadowVariable] dnaclust_repo_release3/dnaclust.cpp:107:38: note: Shadowed declaration dnaclust_repo_release3/dnaclust.cpp:330:12: note: Shadow variable dnaclust_repo_release3/dnaclust.cpp:1037:9: style: Local variable 'minMoreThreshold' shadows outer variable [shadowVariable] dnaclust_repo_release3/dnaclust.cpp:1012:11: note: Shadowed declaration dnaclust_repo_release3/dnaclust.cpp:1037:9: note: Shadow variable dnaclust_repo_release3/dnaclust.cpp:1038:9: style: Local variable 'maxMoreThreshold' shadows outer variable [shadowVariable] dnaclust_repo_release3/dnaclust.cpp:1011:11: note: Shadowed declaration dnaclust_repo_release3/dnaclust.cpp:1038:9: note: Shadow variable dnaclust_repo_release3/dnaclust.cpp:2087:12: style: Local variable 'i' shadows outer variable [shadowVariable] dnaclust_repo_release3/dnaclust.cpp:2074:16: note: Shadowed declaration dnaclust_repo_release3/dnaclust.cpp:2087:12: note: Shadow variable dnaclust_repo_release3/dnaclust.cpp:2123:17: style: Local variable 'i' shadows outer variable [shadowVariable] dnaclust_repo_release3/dnaclust.cpp:2074:16: note: Shadowed declaration dnaclust_repo_release3/dnaclust.cpp:2123:17: note: Shadow variable dnaclust_repo_release3/dnaclust.cpp:2124:14: style: Local variable 'lexicographicIndex' shadows outer variable [shadowVariable] dnaclust_repo_release3/dnaclust.cpp:2076:13: note: Shadowed declaration dnaclust_repo_release3/dnaclust.cpp:2124:14: note: Shadow variable dnaclust_repo_release3/dnaclust.cpp:2148:25: style: Local variable 'i' shadows outer variable [shadowVariable] dnaclust_repo_release3/dnaclust.cpp:2074:16: note: Shadowed declaration dnaclust_repo_release3/dnaclust.cpp:2148:25: note: Shadow variable dnaclust_repo_release3/dnaclust.cpp:957:18: style: Variable 'minCount' can be declared as reference to const [constVariableReference] dnaclust_repo_release3/dnaclust.cpp:958:18: style: Variable 'maxCount' can be declared as reference to const [constVariableReference] dnaclust_repo_release3/dnaclust.cpp:1034:16: style: Variable 'minCounts' can be declared as pointer to const [constVariablePointer] dnaclust_repo_release3/dnaclust.cpp:1035:16: style: Variable 'maxCounts' can be declared as pointer to const [constVariablePointer] dnaclust_repo_release3/dnaclust.cpp:1041:10: style: Variable 'queryCounts' can be declared as pointer to const [constVariablePointer] dnaclust_repo_release3/dnaclust.cpp:1126:25: style: Variable 'args' can be declared as pointer to const [constVariablePointer] dnaclust_repo_release3/dnaclust.cpp:172:5: error: Dangerous usage of c_str(). The value returned by c_str() is invalid after this call. [stlcstr] dnaclust_repo_release3/dnaclust.cpp:702:25: style: Variable 'temp' is assigned a value that is never used. [unreadVariable] dnaclust_repo_release3/dnaclust.cpp:1337:31: style: Variable 'num_threads_to_use' is assigned a value that is never used. [unreadVariable] dnaclust_repo_release3/dnaclust.cpp:1341:26: style: Variable 'num_threads_to_use' is assigned a value that is never used. [unreadVariable] dnaclust_repo_release3/dnaclust.cpp:1443:30: style: Variable 'num_threads_to_use' is assigned a value that is never used. [unreadVariable] dnaclust_repo_release3/dnaclust.cpp:1447:28: style: Variable 'num_threads_to_use' is assigned a value that is never used. [unreadVariable] dnaclust_repo_release3/dnaclust.cpp:1945:30: style: Variable 'num_threads_to_use' is assigned a value that is never used. [unreadVariable] dnaclust_repo_release3/dnaclust.cpp:1949:28: style: Variable 'num_threads_to_use' is assigned a value that is never used. [unreadVariable] dnaclust_repo_release3/dnaclust.cpp:2135:33: style: Variable 'num_threads_to_use' is assigned a value that is never used. [unreadVariable] dnaclust_repo_release3/dnaclust.cpp:2139:28: style: Variable 'num_threads_to_use' is assigned a value that is never used. [unreadVariable] dnaclust_repo_release3/dnaclust.cpp:2027:87: performance: Prefer prefix ++/-- operators for non-primitive types. [postfixOperator] dnaclust_repo_release3/dnaclust.cpp:2037:104: performance: Prefer prefix ++/-- operators for non-primitive types. [postfixOperator] dnaclust_repo_release3/dnaclust.cpp:2055:87: performance: Prefer prefix ++/-- operators for non-primitive types. [postfixOperator] dnaclust_repo_release3/dnaclust.cpp:2059:94: performance: Prefer prefix ++/-- operators for non-primitive types. [postfixOperator] diff: 2.20.0 dnaclust_repo_release3/dnaclust.cpp:1818:66: style: Variable 'lexicographicIndexOfFastaIndexes[pointerFastaIndexes[i].second]' is assigned a value that is never used. [unreadVariable] head dnaclust_repo_release3/fasta.cpp:18:42: style:inconclusive: Function 'FastaRecord' argument 1 names different: declaration '' definition 'h'. [funcArgNamesDifferentUnnamed] head dnaclust_repo_release3/fasta.cpp:27:32: style:inconclusive: Function 'operator>>' argument 1 names different: declaration '' definition 'inputStream'. [funcArgNamesDifferentUnnamed] head dnaclust_repo_release3/fasta.cpp:27:58: style:inconclusive: Function 'operator>>' argument 2 names different: declaration '' definition 'fr'. [funcArgNamesDifferentUnnamed] head dnaclust_repo_release3/fasta.cpp:43:32: style:inconclusive: Function 'operator<<' argument 1 names different: declaration '' definition 'outputStream'. [funcArgNamesDifferentUnnamed] head dnaclust_repo_release3/fasta.cpp:43:65: style:inconclusive: Function 'operator<<' argument 2 names different: declaration '' definition 'fr'. [funcArgNamesDifferentUnnamed] 2.20.0 dnaclust_repo_release3/fasta.cpp:53:0: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable endl [valueFlowBailoutIncompleteVar] head dnaclust_repo_release3/fasta.cpp:58:32: style:inconclusive: Function 'operator>>' argument 1 names different: declaration '' definition 'inputStream'. [funcArgNamesDifferentUnnamed] head dnaclust_repo_release3/fasta.cpp:58:52: style:inconclusive: Function 'operator>>' argument 2 names different: declaration '' definition 'fa'. [funcArgNamesDifferentUnnamed] head dnaclust_repo_release3/fasta.cpp:73:32: style:inconclusive: Function 'operator<<' argument 1 names different: declaration '' definition 'outputStream'. [funcArgNamesDifferentUnnamed] head dnaclust_repo_release3/fasta.cpp:73:59: style:inconclusive: Function 'operator<<' argument 2 names different: declaration '' definition 'fa'. [funcArgNamesDifferentUnnamed] DONE