2024-04-22 12:46 ftp://ftp.de.debian.org/debian/pool/main/t/teckit/teckit_2.5.12+ds1.orig.tar.xz cppcheck-options: --library=posix --library=gnu --library=bsd --inconclusive --enable=style,information --inline-suppr --template=daca2 --disable=missingInclude --suppress=unmatchedSuppression --check-library --debug-warnings --suppress=autoNoType --suppress=valueFlowBailout --suppress=bailoutUninitVar --suppress=symbolDatabaseWarning -D__GNUC__ --platform=unix64 -j4 platform: Linux-6.1.0-20-amd64-x86_64-with-glibc2.36 python: 3.11.2 client-version: 1.3.56 compiler: g++ (Debian 12.2.0-14) 12.2.0 cppcheck: head 2.14.0 head-info: ea2e716 (2024-04-21 15:59:20 +0200) count: 175 175 elapsed-time: 8.1 8.1 head-timing-info: old-timing-info: head results: teckit-2.5.12/SFconv/UtfCodec.h:244:34: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable C [valueFlowBailoutIncompleteVar] teckit-2.5.12/SFconv/UtfCodec.h:227:54: error: Returning pointer that will be invalid when returning. [returnDanglingLifetime] teckit-2.5.12/SFconv/UtfCodec.h:227:54: note: Address of variable taken here. teckit-2.5.12/SFconv/UtfCodec.h:227:54: note: Returning pointer that will be invalid when returning. teckit-2.5.12/SFconv/UtfCodec.h:218:5: style: Class '_utf_iterator' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] teckit-2.5.12/SFconv/UtfCodec.h:209:9: style: Class 'reference' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] teckit-2.5.12/SFconv/UtfCodec.h:72:39: style: Parameter 's' can be declared as pointer to const [constParameterPointer] teckit-2.5.12/SFconv/UtfCodec.h:72:55: style: Parameter 'e' can be declared as pointer to const [constParameterPointer] teckit-2.5.12/SFconv/UtfCodec.h:114:55: style: Parameter 'e' can be declared as pointer to const [constParameterPointer] teckit-2.5.12/SFconv/UtfCodec.h:173:55: style: Parameter 'e' can be declared as pointer to const [constParameterPointer] teckit-2.5.12/SFconv/sfReader.h:117:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kForm_UTF8 [valueFlowBailoutIncompleteVar] teckit-2.5.12/SFconv/SFconv.cpp:108:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] teckit-2.5.12/SFconv/SFconv.cpp:130:15: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] teckit-2.5.12/SFconv/SFconv.cpp:308:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] teckit-2.5.12/SFconv/SFconv.cpp:345:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] teckit-2.5.12/SFconv/SFconv.cpp:418:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kStatus_OutputBufferFull [valueFlowBailoutIncompleteVar] teckit-2.5.12/SFconv/SFconv.cpp:464:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kStatus_OutputBufferFull [valueFlowBailoutIncompleteVar] teckit-2.5.12/SFconv/SFconv.cpp:501:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kStatus_OutputBufferFull [valueFlowBailoutIncompleteVar] teckit-2.5.12/SFconv/SFconv.cpp:532:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] teckit-2.5.12/SFconv/SFconv.cpp:757:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kForm_UTF8 [valueFlowBailoutIncompleteVar] teckit-2.5.12/SFconv/sfReader.h:179:40: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable npos [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Compiler.h:321:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable T [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Compiler.cpp:136:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kCurrentTECkitVersion [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Compiler.cpp:143:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kStatus_CompilationFailed [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Compiler.cpp:165:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kStatus_CompilationFailed [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Compiler.cpp:559:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kForm_Unspecified [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Compiler.cpp:1519:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kForm_Bytes [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Compiler.cpp:1539:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kFlags_Unicode [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Compiler.cpp:1750:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable tok_Identifier [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Compiler.cpp:2130:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cout [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Compiler.cpp:2580:5: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cerr [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Compiler.cpp:2605:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable type [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Compiler.cpp:2967:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable membersClass [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Compiler.cpp:3019:6: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cerr [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Compiler.cpp:3052:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable type [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Compiler.cpp:3148:70: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable lineNumber [valueFlowBailoutIncompleteVar] teckit-2.5.12/SFconv/sfReader.h:23:8: style: Class 'sfReader < char >' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] teckit-2.5.12/SFconv/sfReader.h:23:8: style: Class 'sfReader < UniChar >' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] teckit-2.5.12/SFconv/SFconv.cpp:398:7: style: The scope of the variable 'status' can be reduced. [variableScope] teckit-2.5.12/SFconv/SFconv.cpp:451:6: style: The scope of the variable 'status' can be reduced. [variableScope] teckit-2.5.12/SFconv/sfReader.h:50:34: style:inconclusive: Function 'sfReader < char >' argument 1 names different: declaration 'inFile' definition 'f'. [funcArgNamesDifferent] teckit-2.5.12/SFconv/sfReader.h:23:28: note: Function 'sfReader < char >' argument 1 names different: declaration 'inFile' definition 'f'. teckit-2.5.12/SFconv/sfReader.h:50:34: note: Function 'sfReader < char >' argument 1 names different: declaration 'inFile' definition 'f'. teckit-2.5.12/SFconv/sfReader.h:50:42: style:inconclusive: Function 'sfReader < char >' argument 2 names different: declaration 'inForm' definition 'i'. [funcArgNamesDifferent] teckit-2.5.12/SFconv/sfReader.h:23:41: note: Function 'sfReader < char >' argument 2 names different: declaration 'inForm' definition 'i'. teckit-2.5.12/SFconv/sfReader.h:50:42: note: Function 'sfReader < char >' argument 2 names different: declaration 'inForm' definition 'i'. teckit-2.5.12/SFconv/sfReader.h:50:34: style:inconclusive: Function 'sfReader < UniChar >' argument 1 names different: declaration 'inFile' definition 'f'. [funcArgNamesDifferent] teckit-2.5.12/SFconv/sfReader.h:23:28: note: Function 'sfReader < UniChar >' argument 1 names different: declaration 'inFile' definition 'f'. teckit-2.5.12/SFconv/sfReader.h:50:34: note: Function 'sfReader < UniChar >' argument 1 names different: declaration 'inFile' definition 'f'. teckit-2.5.12/SFconv/sfReader.h:50:42: style:inconclusive: Function 'sfReader < UniChar >' argument 2 names different: declaration 'inForm' definition 'i'. [funcArgNamesDifferent] teckit-2.5.12/SFconv/sfReader.h:23:41: note: Function 'sfReader < UniChar >' argument 2 names different: declaration 'inForm' definition 'i'. teckit-2.5.12/SFconv/sfReader.h:50:42: note: Function 'sfReader < UniChar >' argument 2 names different: declaration 'inForm' definition 'i'. teckit-2.5.12/SFconv/SFconv.cpp:549:10: style: Local variable 'bom' shadows outer variable [shadowVariable] teckit-2.5.12/SFconv/SFconv.cpp:295:6: note: Shadowed declaration teckit-2.5.12/SFconv/SFconv.cpp:549:10: note: Shadow variable teckit-2.5.12/SFconv/SFconv.cpp:553:10: style: Local variable 'bom' shadows outer variable [shadowVariable] teckit-2.5.12/SFconv/SFconv.cpp:295:6: note: Shadowed declaration teckit-2.5.12/SFconv/SFconv.cpp:553:10: note: Shadow variable teckit-2.5.12/SFconv/SFconv.cpp:557:10: style: Local variable 'bom' shadows outer variable [shadowVariable] teckit-2.5.12/SFconv/SFconv.cpp:295:6: note: Shadowed declaration teckit-2.5.12/SFconv/SFconv.cpp:557:10: note: Shadow variable teckit-2.5.12/SFconv/SFconv.cpp:635:8: style: Local variable 'bom' shadows outer variable [shadowVariable] teckit-2.5.12/SFconv/SFconv.cpp:295:6: note: Shadowed declaration teckit-2.5.12/SFconv/SFconv.cpp:635:8: note: Shadow variable teckit-2.5.12/SFconv/SFconv.cpp:549:10: style: Variable 'bom' can be declared as const array [constVariable] teckit-2.5.12/SFconv/SFconv.cpp:553:10: style: Variable 'bom' can be declared as const array [constVariable] teckit-2.5.12/SFconv/SFconv.cpp:557:10: style: Variable 'bom' can be declared as const array [constVariable] teckit-2.5.12/SFconv/SFconv.cpp:751:8: style: Variable 'controlFile' can be declared as pointer to const [constVariablePointer] teckit-2.5.12/SFconv/SFconv.cpp:752:8: style: Variable 'inputFile' can be declared as pointer to const [constVariablePointer] teckit-2.5.12/SFconv/SFconv.cpp:753:8: style: Variable 'outputFile' can be declared as pointer to const [constVariablePointer] teckit-2.5.12/SFconv/SFconv.cpp:762:9: style: Variable 'arg' can be declared as pointer to const [constVariablePointer] teckit-2.5.12/SFconv/SFconv.cpp:375:41: performance: Searching before insertion is not necessary. Instead of 'converters[sfmMapping]=makeConverter(sfmMapping,direction)' consider using 'converters.try_emplace(sfmMapping, makeConverter(sfmMapping,direction));'. [stlFindInsert] teckit-2.5.12/SFconv/SFconv.cpp:381:41: performance: Searching before insertion is not necessary. Instead of 'converters[i->second]=makeConverter(i->second,direction)' consider using 'converters.try_emplace(i->second, makeConverter(i->second,direction));'. [stlFindInsert] teckit-2.5.12/SFconv/SFconv.cpp:385:41: performance: Searching before insertion is not necessary. Instead of 'converters[i->second]=makeConverter(i->second,direction)' consider using 'converters.try_emplace(i->second, makeConverter(i->second,direction));'. [stlFindInsert] teckit-2.5.12/source/Sample-tools/TECkit_Compile.cpp:35:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Sample-tools/TECkit_Compile.cpp:51:14: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kForm_Unspecified [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Sample-tools/TECkit_Compile.cpp:135:18: style: Condition 'mapFileName!=0' is always true [knownConditionTrueFalse] teckit-2.5.12/source/Sample-tools/TECkit_Compile.cpp:33:35: style: Parameter 'msg' can be declared as pointer to const. However it seems that 'errFunc' is a callback function, if 'msg' is declared with const you might also need to cast function pointer(s). [constParameterCallback] teckit-2.5.12/source/Sample-tools/TECkit_Compile.cpp:174:41: note: You might need to cast the function pointer here teckit-2.5.12/source/Sample-tools/TECkit_Compile.cpp:33:35: note: Parameter 'msg' can be declared as pointer to const teckit-2.5.12/source/Sample-tools/TECkit_Compile.cpp:33:46: style: Parameter 'param' can be declared as pointer to const. However it seems that 'errFunc' is a callback function, if 'param' is declared with const you might also need to cast function pointer(s). [constParameterCallback] teckit-2.5.12/source/Sample-tools/TECkit_Compile.cpp:174:41: note: You might need to cast the function pointer here teckit-2.5.12/source/Sample-tools/TECkit_Compile.cpp:33:46: note: Parameter 'param' can be declared as pointer to const teckit-2.5.12/source/Sample-tools/TECkit_Compile.cpp:47:8: style: Variable 'mapFileName' can be declared as pointer to const [constVariablePointer] teckit-2.5.12/source/Sample-tools/TxtConv.cpp:56:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kStatus_NeedMoreInput [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Sample-tools/TxtConv.cpp:141:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Sample-tools/TxtConv.cpp:167:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kForm_Unspecified [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Engine.cpp:159:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kEndOfText [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Engine.cpp:214:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kEndOfText [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Engine.cpp:499:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kEndOfText [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Engine.cpp:777:28: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kEndOfText [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Engine.cpp:996:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kEndOfText [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Engine.cpp:1300:14: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kStatus_OutOfMemory [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Engine.cpp:1488:19: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kForm_Bytes [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Engine.cpp:1743:32: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kOptionsMask_InputComplete [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Engine.cpp:1919:21: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kStatus_NoError [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Engine.cpp:1939:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kStatus_NoError [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Engine.cpp:1964:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kStatus_NoError [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Engine.cpp:1982:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kStatus_NoError [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Engine.cpp:2006:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kStatus_NoError [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Engine.cpp:2020:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kStatus_NoError [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Engine.cpp:2042:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kStatus_NoError [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Engine.cpp:2064:4: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kOptionsUnmapped_UseReplacementCharSilently [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Engine.cpp:2077:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kStatus_NoError [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Engine.cpp:2095:67: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kOptionsUnmapped_UseReplacementCharSilently [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Engine.cpp:2106:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kStatus_NoError [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Engine.cpp:2145:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kStatus_NoError [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Engine.cpp:2198:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kCurrentTECkitVersion [valueFlowBailoutIncompleteVar] teckit-2.5.12/source/Sample-tools/TxtConv.cpp:177:8: style: The scope of the variable 'tecFile' can be reduced. [variableScope] teckit-2.5.12/source/Sample-tools/TxtConv.cpp:160:8: style: Variable 'progName' can be declared as pointer to const [constVariablePointer] teckit-2.5.12/source/Sample-tools/TxtConv.cpp:190:9: style: Variable 'arg' can be declared as pointer to const [constVariablePointer] teckit-2.5.12/source/Sample-tools/TxtConv.cpp:111:11: style: Variable 'inPtr' is assigned a value that is never used. [unreadVariable] teckit-2.5.12/source/Compiler.h:315:9: performance:inconclusive: Technically the member function 'Compiler::appendToTable' can be static (but you may consider moving to unnamed namespace). [functionStatic] teckit-2.5.12/source/Compiler.h:201:7: style: Struct 'MatClass' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] teckit-2.5.12/source/Compiler.h:288:33: performance: Function parameter 's' should be passed by const reference. [passedByValue] teckit-2.5.12/source/Compiler.cpp:3069:40: error: Invalid buildVars.planeMap.resize() argument nr 2. The value is -1 but the valid values are '0:255'. [invalidFunctionArg] teckit-2.5.12/source/Compiler.cpp:3474:34: error: Invalid buildVars.planeMap.resize() argument nr 2. The value is -1 but the valid values are '0:255'. [invalidFunctionArg] teckit-2.5.12/source/Compiler.cpp:524:2: performance: Variable 'compiledSize' is assigned in constructor body. Consider performing initialization in initialization list. [useInitializationList] teckit-2.5.12/source/Compiler.cpp:530:2: performance: Variable 'ungotten' is assigned in constructor body. Consider performing initialization in initialization list. [useInitializationList] teckit-2.5.12/source/Compiler.cpp:535:2: performance: Variable 'lineNumber' is assigned in constructor body. Consider performing initialization in initialization list. [useInitializationList] teckit-2.5.12/source/Compiler.cpp:537:2: performance: Variable 'errorCount' is assigned in constructor body. Consider performing initialization in initialization list. [useInitializationList] teckit-2.5.12/source/Compiler.cpp:539:2: performance: Variable 'errorFunction' is assigned in constructor body. Consider performing initialization in initialization list. [useInitializationList] teckit-2.5.12/source/Compiler.h:288:11: performance:inconclusive: Technically the member function 'Compiler::asUTF8' can be static (but you may consider moving to unnamed namespace). [functionStatic] teckit-2.5.12/source/Compiler.cpp:1489:11: note: Technically the member function 'Compiler::asUTF8' can be static (but you may consider moving to unnamed namespace). teckit-2.5.12/source/Compiler.h:288:11: note: Technically the member function 'Compiler::asUTF8' can be static (but you may consider moving to unnamed namespace). teckit-2.5.12/source/Compiler.h:291:11: style:inconclusive: Technically the member function 'Compiler::charLimit' can be const. [functionConst] teckit-2.5.12/source/Compiler.cpp:2185:11: note: Technically the member function 'Compiler::charLimit' can be const. teckit-2.5.12/source/Compiler.h:291:11: note: Technically the member function 'Compiler::charLimit' can be const. teckit-2.5.12/source/Compiler.h:293:9: performance:inconclusive: Technically the member function 'Compiler::findTag' can be static (but you may consider moving to unnamed namespace). [functionStatic] teckit-2.5.12/source/Compiler.cpp:2775:11: note: Technically the member function 'Compiler::findTag' can be static (but you may consider moving to unnamed namespace). teckit-2.5.12/source/Compiler.h:293:9: note: Technically the member function 'Compiler::findTag' can be static (but you may consider moving to unnamed namespace). teckit-2.5.12/source/Compiler.h:305:9: performance:inconclusive: Technically the member function 'Compiler::classIndex' can be static (but you may consider moving to unnamed namespace). [functionStatic] teckit-2.5.12/source/Compiler.cpp:2926:11: note: Technically the member function 'Compiler::classIndex' can be static (but you may consider moving to unnamed namespace). teckit-2.5.12/source/Compiler.h:305:9: note: Technically the member function 'Compiler::classIndex' can be static (but you may consider moving to unnamed namespace). teckit-2.5.12/source/Compiler.h:308:9: performance:inconclusive: Technically the member function 'Compiler::isSingleCharRule' can be static (but you may consider moving to unnamed namespace). [functionStatic] teckit-2.5.12/source/Compiler.cpp:2935:11: note: Technically the member function 'Compiler::isSingleCharRule' can be static (but you may consider moving to unnamed namespace). teckit-2.5.12/source/Compiler.h:308:9: note: Technically the member function 'Compiler::isSingleCharRule' can be static (but you may consider moving to unnamed namespace). teckit-2.5.12/source/Compiler.h:309:9: performance:inconclusive: Technically the member function 'Compiler::appendMatchElem' can be static (but you may consider moving to unnamed namespace). [functionStatic] teckit-2.5.12/source/Compiler.cpp:2947:11: note: Technically the member function 'Compiler::appendMatchElem' can be static (but you may consider moving to unnamed namespace). teckit-2.5.12/source/Compiler.h:309:9: note: Technically the member function 'Compiler::appendMatchElem' can be static (but you may consider moving to unnamed namespace). teckit-2.5.12/source/Compiler.h:311:9: performance:inconclusive: Technically the member function 'Compiler::appendReplaceElem' can be static (but you may consider moving to unnamed namespace). [functionStatic] teckit-2.5.12/source/Compiler.cpp:3004:11: note: Technically the member function 'Compiler::appendReplaceElem' can be static (but you may consider moving to unnamed namespace). teckit-2.5.12/source/Compiler.h:311:9: note: Technically the member function 'Compiler::appendReplaceElem' can be static (but you may consider moving to unnamed namespace). teckit-2.5.12/source/Compiler.h:313:9: performance:inconclusive: Technically the member function 'Compiler::appendToTable' can be static (but you may consider moving to unnamed namespace). [functionStatic] teckit-2.5.12/source/Compiler.cpp:298:11: note: Technically the member function 'Compiler::appendToTable' can be static (but you may consider moving to unnamed namespace). teckit-2.5.12/source/Compiler.h:313:9: note: Technically the member function 'Compiler::appendToTable' can be static (but you may consider moving to unnamed namespace). teckit-2.5.12/source/Compiler.h:329:15: performance:inconclusive: Technically the member function 'Compiler::reverseContext' can be static (but you may consider moving to unnamed namespace). [functionStatic] teckit-2.5.12/source/Compiler.cpp:3045:11: note: Technically the member function 'Compiler::reverseContext' can be static (but you may consider moving to unnamed namespace). teckit-2.5.12/source/Compiler.h:329:15: note: Technically the member function 'Compiler::reverseContext' can be static (but you may consider moving to unnamed namespace). teckit-2.5.12/source/Compiler.h:330:9: performance:inconclusive: Technically the member function 'Compiler::align' can be static (but you may consider moving to unnamed namespace). [functionStatic] teckit-2.5.12/source/Compiler.cpp:3087:11: note: Technically the member function 'Compiler::align' can be static (but you may consider moving to unnamed namespace). teckit-2.5.12/source/Compiler.h:330:9: note: Technically the member function 'Compiler::align' can be static (but you may consider moving to unnamed namespace). teckit-2.5.12/source/Compiler.h:335:11: style:inconclusive: Technically the member function 'Compiler::xmlString' can be const. [functionConst] teckit-2.5.12/source/Compiler.cpp:393:11: note: Technically the member function 'Compiler::xmlString' can be const. teckit-2.5.12/source/Compiler.h:335:11: note: Technically the member function 'Compiler::xmlString' can be const. teckit-2.5.12/source/Compiler.cpp:2125:29: style:inconclusive: Function 'Error' argument 1 names different: declaration 'errMsg' definition 'msg'. [funcArgNamesDifferent] teckit-2.5.12/source/Compiler.h:277:27: note: Function 'Error' argument 1 names different: declaration 'errMsg' definition 'msg'. teckit-2.5.12/source/Compiler.cpp:2125:29: note: Function 'Error' argument 1 names different: declaration 'errMsg' definition 'msg'. teckit-2.5.12/source/Compiler.cpp:1220:39: style: Local variable 'i' shadows outer variable [shadowVariable] teckit-2.5.12/source/Compiler.cpp:630:28: note: Shadowed declaration teckit-2.5.12/source/Compiler.cpp:1220:39: note: Shadow variable teckit-2.5.12/source/Compiler.cpp:1230:39: style: Local variable 'i' shadows outer variable [shadowVariable] teckit-2.5.12/source/Compiler.cpp:630:28: note: Shadowed declaration teckit-2.5.12/source/Compiler.cpp:1230:39: note: Shadow variable teckit-2.5.12/source/Compiler.cpp:3472:10: style: Local variable 'i' shadows outer variable [shadowVariable] teckit-2.5.12/source/Compiler.cpp:3254:9: note: Shadowed declaration teckit-2.5.12/source/Compiler.cpp:3472:10: note: Shadow variable teckit-2.5.12/source/Compiler.cpp:711:17: warning:inconclusive: Found suspicious operator '+', result is not used. [constStatement] teckit-2.5.12/source/Compiler.cpp:1489:33: performance: Function parameter 's' should be passed by const reference. [passedByValue] teckit-2.5.12/source/Compiler.cpp:2491:42: style: Parameter 'rules' can be declared as reference to const [constParameterReference] teckit-2.5.12/source/Compiler.cpp:2685:16: style: Variable 'mc' can be declared as reference to const [constVariableReference] teckit-2.5.12/source/Compiler.cpp:2686:16: style: Variable 'rc' can be declared as reference to const [constVariableReference] teckit-2.5.12/source/Compiler.cpp:2947:53: style: Parameter 'item' can be declared as reference to const [constParameterReference] teckit-2.5.12/source/Compiler.cpp:3004:55: style: Parameter 'item' can be declared as reference to const [constParameterReference] teckit-2.5.12/source/Compiler.cpp:3017:11: style: Variable 'mItem' can be declared as reference to const [constVariableReference] teckit-2.5.12/source/Compiler.cpp:3173:15: style: Variable 'uc' can be declared as reference to const [constVariableReference] teckit-2.5.12/source/Compiler.cpp:3224:15: style: Variable 'bc' can be declared as reference to const [constVariableReference] teckit-2.5.12/source/Compiler.cpp:3293:17: style: Variable 'rc' can be declared as reference to const [constVariableReference] teckit-2.5.12/source/Compiler.cpp:3295:18: style: Variable 'mc' can be declared as reference to const [constVariableReference] teckit-2.5.12/source/Compiler.cpp:3303:18: style: Variable 'mc' can be declared as reference to const [constVariableReference] teckit-2.5.12/source/Compiler.cpp:3361:18: style: Variable 'rc' can be declared as reference to const [constVariableReference] teckit-2.5.12/source/Compiler.cpp:3363:19: style: Variable 'mc' can be declared as reference to const [constVariableReference] teckit-2.5.12/source/Compiler.cpp:3371:19: style: Variable 'mc' can be declared as reference to const [constVariableReference] teckit-2.5.12/source/Compiler.cpp:141:22: style: Parameter 'txt' can be declared as pointer to const [constParameterPointer] teckit-2.5.12/source/Compiler.cpp:163:25: style: Parameter 'txt' can be declared as pointer to const [constParameterPointer] teckit-2.5.12/source/Compiler.cpp:252:30: style: Parameter 'name' can be declared as pointer to const [constParameterPointer] teckit-2.5.12/source/Compiler.cpp:3153:48: performance: Searching before insertion is not necessary. Instead of 'charToIndex[j->val]=rulesForIndex.size()' consider using 'charToIndex.try_emplace(j->val, rulesForIndex.size());'. [stlFindInsert] teckit-2.5.12/source/Compiler.cpp:3177:46: performance: Searching before insertion is not necessary. Instead of 'charToIndex[*u]=rulesForIndex.size()' consider using 'charToIndex.try_emplace(*u, rulesForIndex.size());'. [stlFindInsert] teckit-2.5.12/source/Compiler.cpp:3356:42: warning: Either the condition 'tag>rule.matchStr.size()' is redundant or 'tag' can have the value rule.matchStr.size(). Expression 'rule.matchStr[tag]' causes access out of bounds. [containerOutOfBounds] teckit-2.5.12/source/Compiler.cpp:3351:18: note: Assuming that condition 'tag>rule.matchStr.size()' is not redundant teckit-2.5.12/source/Compiler.cpp:3356:42: note: Access out of bounds teckit-2.5.12/source/Compiler.cpp:338:27: style: Consider using std::find_if algorithm instead of a raw loop. [useStlAlgorithm] teckit-2.5.12/source/Compiler.cpp:1416:19: style: Consider using std::accumulate algorithm instead of a raw loop. [useStlAlgorithm] teckit-2.5.12/source/Compiler.cpp:1418:19: style: Consider using std::accumulate algorithm instead of a raw loop. [useStlAlgorithm] teckit-2.5.12/source/Compiler.cpp:2778:0: style: Consider using std::find_if algorithm instead of a raw loop. [useStlAlgorithm] teckit-2.5.12/source/Compiler.cpp:2929:0: style: Consider using std::find_if algorithm instead of a raw loop. [useStlAlgorithm] teckit-2.5.12/source/Compiler.cpp:1727:3: performance: Prefer prefix ++/-- operators for non-primitive types. [postfixOperator] teckit-2.5.12/source/Compiler.cpp:1849:3: performance: Prefer prefix ++/-- operators for non-primitive types. [postfixOperator] teckit-2.5.12/source/Engine.cpp:395:7: warning: Member variable 'Pass::patternLength' is not initialized in the constructor. [uninitMemberVar] teckit-2.5.12/source/Engine.cpp:395:7: warning: Member variable 'Pass::direction' is not initialized in the constructor. [uninitMemberVar] teckit-2.5.12/source/Engine.cpp:395:7: warning: Member variable 'Pass::info' is not initialized in the constructor. [uninitMemberVar] teckit-2.5.12/source/Engine.cpp:395:7: warning: Member variable 'Pass::infoLimit' is not initialized in the constructor. [uninitMemberVar] teckit-2.5.12/source/Engine.cpp:395:7: warning: Member variable 'Pass::matchElems' is not initialized in the constructor. [uninitMemberVar] teckit-2.5.12/source/Engine.cpp:395:7: warning: Member variable 'Pass::matchedLength' is not initialized in the constructor. [uninitMemberVar] teckit-2.5.12/source/Engine.cpp:395:7: warning: Member variable 'Pass::groupRepeats' is not initialized in the constructor. [uninitMemberVar] teckit-2.5.12/source/Engine.cpp:395:7: warning: Member variable 'Pass::sgrStack' is not initialized in the constructor. [uninitMemberVar] teckit-2.5.12/source/Engine.h:70:12: performance:inconclusive: Technically the member function 'Normalizer::decomposeOne' can be static (but you may consider moving to unnamed namespace). [functionStatic] teckit-2.5.12/source/Engine.cpp:197:13: note: Technically the member function 'Normalizer::decomposeOne' can be static (but you may consider moving to unnamed namespace). teckit-2.5.12/source/Engine.h:70:12: note: Technically the member function 'Normalizer::decomposeOne' can be static (but you may consider moving to unnamed namespace). teckit-2.5.12/source/Engine.cpp:424:2: warning: Class 'Pass' does not have a copy constructor which is recommended since it has dynamic memory/resource allocation(s). [noCopyConstructor] teckit-2.5.12/source/Engine.cpp:424:2: warning: Class 'Pass' does not have a operator= which is recommended since it has dynamic memory/resource allocation(s). [noOperatorEq] teckit-2.5.12/source/Engine.h:59:7: style: Class 'Normalizer' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] teckit-2.5.12/source/Engine.h:180:7: style: Class 'Exception' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] teckit-2.5.12/source/Engine.h:60:14: style: The destructor '~Normalizer' overrides a destructor in a base class but is not marked with a 'override' specifier. [missingOverride] teckit-2.5.12/source/Engine.h:36:14: note: Virtual destructor in base class teckit-2.5.12/source/Engine.h:60:14: note: Destructor in derived class teckit-2.5.12/source/Engine.h:62:18: style: The function 'getChar' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] teckit-2.5.12/source/Engine.h:38:18: note: Virtual function in base class teckit-2.5.12/source/Engine.h:62:18: note: Function in derived class teckit-2.5.12/source/Engine.h:64:16: style: The function 'Reset' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] teckit-2.5.12/source/Engine.h:40:16: note: Virtual function in base class teckit-2.5.12/source/Engine.h:64:16: note: Function in derived class teckit-2.5.12/source/Engine.h:89:14: style: The destructor '~Pass' overrides a destructor in a base class but is not marked with a 'override' specifier. [missingOverride] teckit-2.5.12/source/Engine.h:36:14: note: Virtual destructor in base class teckit-2.5.12/source/Engine.h:89:14: note: Destructor in derived class teckit-2.5.12/source/Engine.h:91:18: style: The function 'getChar' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] teckit-2.5.12/source/Engine.h:38:18: note: Virtual function in base class teckit-2.5.12/source/Engine.h:91:18: note: Function in derived class teckit-2.5.12/source/Engine.h:93:16: style: The function 'Reset' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] teckit-2.5.12/source/Engine.h:40:16: note: Virtual function in base class teckit-2.5.12/source/Engine.h:93:16: note: Function in derived class teckit-2.5.12/source/Engine.h:95:18: style: The function 'lookaheadCount' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] teckit-2.5.12/source/Engine.h:42:18: note: Virtual function in base class teckit-2.5.12/source/Engine.h:95:18: note: Function in derived class teckit-2.5.12/source/Engine.h:163:8: style: The destructor '~Converter' overrides a destructor in a base class but is not marked with a 'override' specifier. [missingOverride] teckit-2.5.12/source/Engine.h:36:14: note: Virtual destructor in base class teckit-2.5.12/source/Engine.h:163:8: note: Destructor in derived class teckit-2.5.12/source/Engine.h:169:16: style: The function 'Reset' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] teckit-2.5.12/source/Engine.h:40:16: note: Virtual function in base class teckit-2.5.12/source/Engine.h:169:16: note: Function in derived class teckit-2.5.12/source/Engine.h:171:18: style: The function 'getChar' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] teckit-2.5.12/source/Engine.h:38:18: note: Virtual function in base class teckit-2.5.12/source/Engine.h:171:18: note: Function in derived class teckit-2.5.12/source/Engine.cpp:1950:2: style: Exception should be caught by reference. [catchExceptionByValue] teckit-2.5.12/source/Engine.cpp:2144:8: style: The scope of the variable 'buf' can be reduced. [variableScope] teckit-2.5.12/source/Engine.cpp:1723:30: style:inconclusive: Function 'GetNamePtr' argument 1 names different: declaration 'inNameID' definition 'nameID'. [funcArgNamesDifferent] teckit-2.5.12/source/Engine.h:175:28: note: Function 'GetNamePtr' argument 1 names different: declaration 'inNameID' definition 'nameID'. teckit-2.5.12/source/Engine.cpp:1723:30: note: Function 'GetNamePtr' argument 1 names different: declaration 'inNameID' definition 'nameID'. teckit-2.5.12/source/Engine.cpp:1156:19: style: Local variable 'i' shadows outer variable [shadowVariable] teckit-2.5.12/source/Engine.cpp:1126:15: note: Shadowed declaration teckit-2.5.12/source/Engine.cpp:1156:19: note: Shadow variable teckit-2.5.12/source/Engine.cpp:1932:11: style: Parameter 'mapping' can be declared as pointer to const [constParameterPointer] teckit-2.5.12/source/Engine.cpp:1983:13: style: Variable 'cnv' can be declared as pointer to const [constVariablePointer] teckit-2.5.12/source/Engine.cpp:2007:13: style: Variable 'cnv' can be declared as pointer to const [constVariablePointer] teckit-2.5.12/source/Engine.cpp:1011:25: style: Variable 'pageMap' is assigned a value that is never used. [unreadVariable] diff: DONE