2025-09-01 07:24 ftp://ftp.de.debian.org/debian/pool/main/libp/libpyzy/libpyzy_1.0.1.orig.tar.xz cppcheck-options: --library=posix --library=gnu --library=bsd --library=gtk --library=boost --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 -j4 platform: Linux-6.12.41+deb13-amd64-x86_64-with-glibc2.41 python: 3.13.5 client-version: 1.3.67 compiler: g++ (Debian 14.2.0-19) 14.2.0 cppcheck: head 2.18.0 head-info: 2ee39fe (2025-08-30 22:07:31 +0200) count: 162 162 elapsed-time: 222.8 214.9 head-timing-info: old-timing-info: head results: libpyzy-1.0.1/src/DynamicSpecialPhrase.cc:38:20: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] libpyzy-1.0.1/src/DynamicSpecialPhrase.cc:80:23: performance:inconclusive: Technically the member function 'PyZy::DynamicSpecialPhrase::dec' can be static (but you may consider moving to unnamed namespace). [functionStatic] libpyzy-1.0.1/src/DynamicSpecialPhrase.h:39:23: note: Technically the member function 'PyZy::DynamicSpecialPhrase::dec' can be static (but you may consider moving to unnamed namespace). libpyzy-1.0.1/src/DynamicSpecialPhrase.cc:80:23: note: Technically the member function 'PyZy::DynamicSpecialPhrase::dec' can be static (but you may consider moving to unnamed namespace). libpyzy-1.0.1/src/DynamicSpecialPhrase.cc:88:23: style:inconclusive: Technically the member function 'PyZy::DynamicSpecialPhrase::year_cn' can be const. [functionConst] libpyzy-1.0.1/src/DynamicSpecialPhrase.h:40:23: note: Technically the member function 'PyZy::DynamicSpecialPhrase::year_cn' can be const. libpyzy-1.0.1/src/DynamicSpecialPhrase.cc:88:23: note: Technically the member function 'PyZy::DynamicSpecialPhrase::year_cn' can be const. libpyzy-1.0.1/src/DynamicSpecialPhrase.cc:112:23: style:inconclusive: Technically the member function 'PyZy::DynamicSpecialPhrase::month_cn' can be const. [functionConst] libpyzy-1.0.1/src/DynamicSpecialPhrase.h:41:23: note: Technically the member function 'PyZy::DynamicSpecialPhrase::month_cn' can be const. libpyzy-1.0.1/src/DynamicSpecialPhrase.cc:112:23: note: Technically the member function 'PyZy::DynamicSpecialPhrase::month_cn' can be const. libpyzy-1.0.1/src/DynamicSpecialPhrase.cc:122:23: style:inconclusive: Technically the member function 'PyZy::DynamicSpecialPhrase::weekday_cn' can be const. [functionConst] libpyzy-1.0.1/src/DynamicSpecialPhrase.h:42:23: note: Technically the member function 'PyZy::DynamicSpecialPhrase::weekday_cn' can be const. libpyzy-1.0.1/src/DynamicSpecialPhrase.cc:122:23: note: Technically the member function 'PyZy::DynamicSpecialPhrase::weekday_cn' can be const. libpyzy-1.0.1/src/DynamicSpecialPhrase.cc:131:23: performance:inconclusive: Technically the member function 'PyZy::DynamicSpecialPhrase::hour_cn' can be static (but you may consider moving to unnamed namespace). [functionStatic] libpyzy-1.0.1/src/DynamicSpecialPhrase.h:43:23: note: Technically the member function 'PyZy::DynamicSpecialPhrase::hour_cn' can be static (but you may consider moving to unnamed namespace). libpyzy-1.0.1/src/DynamicSpecialPhrase.cc:131:23: note: Technically the member function 'PyZy::DynamicSpecialPhrase::hour_cn' can be static (but you may consider moving to unnamed namespace). libpyzy-1.0.1/src/DynamicSpecialPhrase.cc:156:23: style:inconclusive: Technically the member function 'PyZy::DynamicSpecialPhrase::day_cn' can be const. [functionConst] libpyzy-1.0.1/src/DynamicSpecialPhrase.h:46:23: note: Technically the member function 'PyZy::DynamicSpecialPhrase::day_cn' can be const. libpyzy-1.0.1/src/DynamicSpecialPhrase.cc:156:23: note: Technically the member function 'PyZy::DynamicSpecialPhrase::day_cn' can be const. libpyzy-1.0.1/src/DynamicSpecialPhrase.cc:168:23: performance:inconclusive: Technically the member function 'PyZy::DynamicSpecialPhrase::minsec_cn' can be static (but you may consider moving to unnamed namespace). [functionStatic] libpyzy-1.0.1/src/DynamicSpecialPhrase.h:47:23: note: Technically the member function 'PyZy::DynamicSpecialPhrase::minsec_cn' can be static (but you may consider moving to unnamed namespace). libpyzy-1.0.1/src/DynamicSpecialPhrase.cc:168:23: note: Technically the member function 'PyZy::DynamicSpecialPhrase::minsec_cn' can be static (but you may consider moving to unnamed namespace). libpyzy-1.0.1/src/DynamicSpecialPhrase.h:36:6: style: The destructor '~DynamicSpecialPhrase' overrides a destructor in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/SpecialPhrase.h:32:14: note: Virtual destructor in base class libpyzy-1.0.1/src/DynamicSpecialPhrase.h:36:6: note: Destructor in derived class libpyzy-1.0.1/src/DynamicSpecialPhrase.h:38:17: style: The function 'text' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/SpecialPhrase.h:39:25: note: Virtual function in base class libpyzy-1.0.1/src/DynamicSpecialPhrase.h:38:17: note: Function in derived class libpyzy-1.0.1/src/String.h:98:61: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable npos [valueFlowBailoutIncompleteVar] libpyzy-1.0.1/src/PhraseEditor.h:50:59: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable begin [valueFlowBailoutIncompleteVar] libpyzy-1.0.1/src/PhoneticContext.h:137:51: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable begin [valueFlowBailoutIncompleteVar] libpyzy-1.0.1/src/BopomofoContext.cc:319:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable TYPE_CONVERTED [valueFlowBailoutIncompleteVar] libpyzy-1.0.1/src/BopomofoContext.cc:437:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PROPERTY_BOPOMOFO_SCHEMA [valueFlowBailoutIncompleteVar] libpyzy-1.0.1/src/BopomofoContext.cc:446:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PROPERTY_BOPOMOFO_SCHEMA [valueFlowBailoutIncompleteVar] libpyzy-1.0.1/src/Database.cc:248:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PKGDATADIR [valueFlowBailoutIncompleteVar] libpyzy-1.0.1/src/Database.cc:333:40: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable G_DIR_SEPARATOR_S [valueFlowBailoutIncompleteVar] libpyzy-1.0.1/src/Database.cc:396:36: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable G_DIR_SEPARATOR_S [valueFlowBailoutIncompleteVar] libpyzy-1.0.1/src/DoublePinyinContext.cc:174:41: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable begin [valueFlowBailoutIncompleteVar] libpyzy-1.0.1/src/DoublePinyinContext.cc:288:52: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable begin [valueFlowBailoutIncompleteVar] libpyzy-1.0.1/src/DoublePinyinContext.cc:441:45: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable begin [valueFlowBailoutIncompleteVar] libpyzy-1.0.1/src/DoublePinyinContext.cc:494:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PROPERTY_DOUBLE_PINYIN_SCHEMA [valueFlowBailoutIncompleteVar] libpyzy-1.0.1/src/DoublePinyinContext.cc:504:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PROPERTY_DOUBLE_PINYIN_SCHEMA [valueFlowBailoutIncompleteVar] libpyzy-1.0.1/src/Util.h:61:5: warning: Member variable 'UUID::m_uuid' is not initialized in the constructor. [uninitMemberVar] libpyzy-1.0.1/src/String.h:157:10: style:inconclusive: Either there is a missing 'override', or the member function 'PyZy::String::operator[]' can be const. [functionConst] libpyzy-1.0.1/src/BopomofoContext.cc:471:18: style:inconclusive: Technically the member function 'PyZy::BopomofoContext::keyvalToBopomofo' can be const. [functionConst] libpyzy-1.0.1/src/BopomofoContext.h:62:9: note: Technically the member function 'PyZy::BopomofoContext::keyvalToBopomofo' can be const. libpyzy-1.0.1/src/BopomofoContext.cc:471:18: note: Technically the member function 'PyZy::BopomofoContext::keyvalToBopomofo' can be const. libpyzy-1.0.1/src/PinyinArray.h:36:5: style: Struct 'PinyinSegment' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] libpyzy-1.0.1/src/PinyinArray.h:62:5: style: Class 'PinyinArray' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] libpyzy-1.0.1/src/Util.h:107:5: style: Class 'Env' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] libpyzy-1.0.1/src/String.h:36:5: style: Class 'String' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] libpyzy-1.0.1/src/String.h:37:5: style: Class 'String' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] libpyzy-1.0.1/src/String.h:38:5: style: Class 'String' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] libpyzy-1.0.1/src/PhoneticContext.h:55:14: style: The destructor '~PhoneticContext' overrides a destructor in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:79:14: note: Virtual destructor in base class libpyzy-1.0.1/src/PhoneticContext.h:55:14: note: Destructor in derived class libpyzy-1.0.1/src/PhoneticContext.h:58:18: style: The function 'reset' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:234:18: note: Virtual function in base class libpyzy-1.0.1/src/PhoneticContext.h:58:18: note: Function in derived class libpyzy-1.0.1/src/PhoneticContext.h:60:10: style: The function 'selectCandidate' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:311:18: note: Virtual function in base class libpyzy-1.0.1/src/PhoneticContext.h:60:10: note: Function in derived class libpyzy-1.0.1/src/PhoneticContext.h:61:10: style: The function 'focusCandidate' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:318:18: note: Virtual function in base class libpyzy-1.0.1/src/PhoneticContext.h:61:10: note: Function in derived class libpyzy-1.0.1/src/PhoneticContext.h:62:10: style: The function 'focusCandidatePrevious' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:324:18: note: Virtual function in base class libpyzy-1.0.1/src/PhoneticContext.h:62:10: note: Function in derived class libpyzy-1.0.1/src/PhoneticContext.h:63:10: style: The function 'focusCandidateNext' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:331:18: note: Virtual function in base class libpyzy-1.0.1/src/PhoneticContext.h:63:10: note: Function in derived class libpyzy-1.0.1/src/PhoneticContext.h:64:10: style: The function 'resetCandidate' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:338:18: note: Virtual function in base class libpyzy-1.0.1/src/PhoneticContext.h:64:10: note: Function in derived class libpyzy-1.0.1/src/PhoneticContext.h:65:10: style: The function 'unselectCandidates' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:344:18: note: Virtual function in base class libpyzy-1.0.1/src/PhoneticContext.h:65:10: note: Function in derived class libpyzy-1.0.1/src/PhoneticContext.h:66:10: style: The function 'hasCandidate' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:355:18: note: Virtual function in base class libpyzy-1.0.1/src/PhoneticContext.h:66:10: note: Function in derived class libpyzy-1.0.1/src/PhoneticContext.h:67:10: style: The function 'getCandidate' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:367:18: note: Virtual function in base class libpyzy-1.0.1/src/PhoneticContext.h:67:10: note: Function in derived class libpyzy-1.0.1/src/PhoneticContext.h:68:12: style: The function 'getPreparedCandidatesSize' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:376:20: note: Virtual function in base class libpyzy-1.0.1/src/PhoneticContext.h:68:12: note: Function in derived class libpyzy-1.0.1/src/PhoneticContext.h:70:21: style: The function 'getProperty' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:468:21: note: Virtual function in base class libpyzy-1.0.1/src/PhoneticContext.h:70:21: note: Function in derived class libpyzy-1.0.1/src/PhoneticContext.h:71:18: style: The function 'setProperty' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:476:18: note: Virtual function in base class libpyzy-1.0.1/src/PhoneticContext.h:71:18: note: Function in derived class libpyzy-1.0.1/src/PhoneticContext.h:74:33: style: The function 'inputText' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:425:33: note: Virtual function in base class libpyzy-1.0.1/src/PhoneticContext.h:74:33: note: Function in derived class libpyzy-1.0.1/src/PhoneticContext.h:79:33: style: The function 'selectedText' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:431:33: note: Virtual function in base class libpyzy-1.0.1/src/PhoneticContext.h:79:33: note: Function in derived class libpyzy-1.0.1/src/PhoneticContext.h:84:33: style: The function 'conversionText' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:437:33: note: Virtual function in base class libpyzy-1.0.1/src/PhoneticContext.h:84:33: note: Function in derived class libpyzy-1.0.1/src/PhoneticContext.h:89:33: style: The function 'restText' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:443:33: note: Virtual function in base class libpyzy-1.0.1/src/PhoneticContext.h:89:33: note: Function in derived class libpyzy-1.0.1/src/PhoneticContext.h:94:33: style: The function 'auxiliaryText' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:449:33: note: Virtual function in base class libpyzy-1.0.1/src/PhoneticContext.h:94:33: note: Function in derived class libpyzy-1.0.1/src/PhoneticContext.h:99:26: style: The function 'cursor' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:455:26: note: Virtual function in base class libpyzy-1.0.1/src/PhoneticContext.h:99:26: note: Function in derived class libpyzy-1.0.1/src/PhoneticContext.h:104:26: style: The function 'focusedCandidate' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:461:26: note: Virtual function in base class libpyzy-1.0.1/src/PhoneticContext.h:104:26: note: Function in derived class libpyzy-1.0.1/src/BopomofoContext.h:34:14: style: The destructor '~BopomofoContext' overrides a destructor in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/PhoneticContext.h:55:14: note: Virtual destructor in base class libpyzy-1.0.1/src/BopomofoContext.h:34:14: note: Destructor in derived class libpyzy-1.0.1/src/BopomofoContext.h:37:18: style: The function 'insert' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:219:18: note: Virtual function in base class libpyzy-1.0.1/src/BopomofoContext.h:37:18: note: Function in derived class libpyzy-1.0.1/src/BopomofoContext.h:38:18: style: The function 'commit' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:229:18: note: Virtual function in base class libpyzy-1.0.1/src/BopomofoContext.h:38:18: note: Function in derived class libpyzy-1.0.1/src/BopomofoContext.h:40:18: style: The function 'removeCharBefore' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:274:18: note: Virtual function in base class libpyzy-1.0.1/src/BopomofoContext.h:40:18: note: Function in derived class libpyzy-1.0.1/src/BopomofoContext.h:41:18: style: The function 'removeCharAfter' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:280:18: note: Virtual function in base class libpyzy-1.0.1/src/BopomofoContext.h:41:18: note: Function in derived class libpyzy-1.0.1/src/BopomofoContext.h:42:18: style: The function 'removeWordBefore' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:286:18: note: Virtual function in base class libpyzy-1.0.1/src/BopomofoContext.h:42:18: note: Function in derived class libpyzy-1.0.1/src/BopomofoContext.h:43:18: style: The function 'removeWordAfter' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:295:18: note: Virtual function in base class libpyzy-1.0.1/src/BopomofoContext.h:43:18: note: Function in derived class libpyzy-1.0.1/src/BopomofoContext.h:45:18: style: The function 'moveCursorLeft' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:246:18: note: Virtual function in base class libpyzy-1.0.1/src/BopomofoContext.h:45:18: note: Function in derived class libpyzy-1.0.1/src/BopomofoContext.h:46:18: style: The function 'moveCursorRight' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:240:18: note: Virtual function in base class libpyzy-1.0.1/src/BopomofoContext.h:46:18: note: Function in derived class libpyzy-1.0.1/src/BopomofoContext.h:47:18: style: The function 'moveCursorLeftByWord' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:262:18: note: Virtual function in base class libpyzy-1.0.1/src/BopomofoContext.h:47:18: note: Function in derived class libpyzy-1.0.1/src/BopomofoContext.h:48:18: style: The function 'moveCursorRightByWord' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:256:18: note: Virtual function in base class libpyzy-1.0.1/src/BopomofoContext.h:48:18: note: Function in derived class libpyzy-1.0.1/src/BopomofoContext.h:49:18: style: The function 'moveCursorToBegin' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:268:18: note: Virtual function in base class libpyzy-1.0.1/src/BopomofoContext.h:49:18: note: Function in derived class libpyzy-1.0.1/src/BopomofoContext.h:50:18: style: The function 'moveCursorToEnd' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:301:18: note: Virtual function in base class libpyzy-1.0.1/src/BopomofoContext.h:50:18: note: Function in derived class libpyzy-1.0.1/src/BopomofoContext.h:52:21: style: The function 'getProperty' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/PhoneticContext.h:70:21: note: Virtual function in base class libpyzy-1.0.1/src/BopomofoContext.h:52:21: note: Function in derived class libpyzy-1.0.1/src/BopomofoContext.h:53:18: style: The function 'setProperty' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/PhoneticContext.h:71:18: note: Virtual function in base class libpyzy-1.0.1/src/BopomofoContext.h:53:18: note: Function in derived class libpyzy-1.0.1/src/BopomofoContext.h:56:18: style: The function 'updateAuxiliaryText' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/PhoneticContext.h:116:18: note: Virtual function in base class libpyzy-1.0.1/src/BopomofoContext.h:56:18: note: Function in derived class libpyzy-1.0.1/src/BopomofoContext.h:58:18: style: The function 'updatePreeditText' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/PhoneticContext.h:117:18: note: Virtual function in base class libpyzy-1.0.1/src/BopomofoContext.h:58:18: note: Function in derived class libpyzy-1.0.1/src/String.h:169:28: style: C-style pointer casting [cstyleCast] libpyzy-1.0.1/src/BopomofoContext.cc:281:25: style: C-style pointer casting [cstyleCast] libpyzy-1.0.1/src/BopomofoContext.cc:466:31: style: C-style pointer casting [cstyleCast] libpyzy-1.0.1/src/BopomofoContext.cc:475:11: style: C-style pointer casting [cstyleCast] libpyzy-1.0.1/src/BopomofoContext.cc:475:49: style: C-style pointer casting [cstyleCast] libpyzy-1.0.1/src/BopomofoContext.cc:293:87: performance: Prefer prefix ++/-- operators for non-primitive types. [postfixOperator] libpyzy-1.0.1/src/PinyinContext.h:32:14: style: The destructor '~PinyinContext' overrides a destructor in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/PhoneticContext.h:55:14: note: Virtual destructor in base class libpyzy-1.0.1/src/PinyinContext.h:32:14: note: Destructor in derived class libpyzy-1.0.1/src/PinyinContext.h:33:18: style: The function 'commit' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:229:18: note: Virtual function in base class libpyzy-1.0.1/src/PinyinContext.h:33:18: note: Function in derived class libpyzy-1.0.1/src/PinyinContext.h:36:18: style: The function 'updateAuxiliaryText' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/PhoneticContext.h:116:18: note: Virtual function in base class libpyzy-1.0.1/src/PinyinContext.h:36:18: note: Function in derived class libpyzy-1.0.1/src/PinyinContext.h:37:18: style: The function 'updatePreeditText' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/PhoneticContext.h:117:18: note: Virtual function in base class libpyzy-1.0.1/src/PinyinContext.h:37:18: note: Function in derived class libpyzy-1.0.1/src/FullPinyinContext.h:33:14: style: The destructor '~FullPinyinContext' overrides a destructor in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/PinyinContext.h:32:14: note: Virtual destructor in base class libpyzy-1.0.1/src/FullPinyinContext.h:33:14: note: Destructor in derived class libpyzy-1.0.1/src/FullPinyinContext.h:36:18: style: The function 'insert' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:219:18: note: Virtual function in base class libpyzy-1.0.1/src/FullPinyinContext.h:36:18: note: Function in derived class libpyzy-1.0.1/src/FullPinyinContext.h:38:18: style: The function 'removeCharBefore' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:274:18: note: Virtual function in base class libpyzy-1.0.1/src/FullPinyinContext.h:38:18: note: Function in derived class libpyzy-1.0.1/src/FullPinyinContext.h:39:18: style: The function 'removeCharAfter' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:280:18: note: Virtual function in base class libpyzy-1.0.1/src/FullPinyinContext.h:39:18: note: Function in derived class libpyzy-1.0.1/src/FullPinyinContext.h:40:18: style: The function 'removeWordBefore' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:286:18: note: Virtual function in base class libpyzy-1.0.1/src/FullPinyinContext.h:40:18: note: Function in derived class libpyzy-1.0.1/src/FullPinyinContext.h:41:18: style: The function 'removeWordAfter' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:295:18: note: Virtual function in base class libpyzy-1.0.1/src/FullPinyinContext.h:41:18: note: Function in derived class libpyzy-1.0.1/src/FullPinyinContext.h:43:18: style: The function 'moveCursorLeft' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:246:18: note: Virtual function in base class libpyzy-1.0.1/src/FullPinyinContext.h:43:18: note: Function in derived class libpyzy-1.0.1/src/FullPinyinContext.h:44:18: style: The function 'moveCursorRight' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:240:18: note: Virtual function in base class libpyzy-1.0.1/src/FullPinyinContext.h:44:18: note: Function in derived class libpyzy-1.0.1/src/FullPinyinContext.h:45:18: style: The function 'moveCursorLeftByWord' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:262:18: note: Virtual function in base class libpyzy-1.0.1/src/FullPinyinContext.h:45:18: note: Function in derived class libpyzy-1.0.1/src/FullPinyinContext.h:46:18: style: The function 'moveCursorRightByWord' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:256:18: note: Virtual function in base class libpyzy-1.0.1/src/FullPinyinContext.h:46:18: note: Function in derived class libpyzy-1.0.1/src/FullPinyinContext.h:47:18: style: The function 'moveCursorToBegin' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:268:18: note: Virtual function in base class libpyzy-1.0.1/src/FullPinyinContext.h:47:18: note: Function in derived class libpyzy-1.0.1/src/FullPinyinContext.h:48:18: style: The function 'moveCursorToEnd' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:301:18: note: Virtual function in base class libpyzy-1.0.1/src/FullPinyinContext.h:48:18: note: Function in derived class libpyzy-1.0.1/src/DoublePinyinContext.cc:365:22: style:inconclusive: Technically the member function 'PyZy::DoublePinyinContext::isPinyin' can be const. [functionConst] libpyzy-1.0.1/src/DoublePinyinContext.h:56:19: note: Technically the member function 'PyZy::DoublePinyinContext::isPinyin' can be const. libpyzy-1.0.1/src/DoublePinyinContext.cc:365:22: note: Technically the member function 'PyZy::DoublePinyinContext::isPinyin' can be const. libpyzy-1.0.1/src/DoublePinyinContext.cc:349:22: style:inconclusive: Technically the member function 'PyZy::DoublePinyinContext::isPinyin' can be const. [functionConst] libpyzy-1.0.1/src/DoublePinyinContext.h:57:19: note: Technically the member function 'PyZy::DoublePinyinContext::isPinyin' can be const. libpyzy-1.0.1/src/DoublePinyinContext.cc:349:22: note: Technically the member function 'PyZy::DoublePinyinContext::isPinyin' can be const. libpyzy-1.0.1/src/DoublePinyinContext.h:33:14: style: The destructor '~DoublePinyinContext' overrides a destructor in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/PinyinContext.h:32:14: note: Virtual destructor in base class libpyzy-1.0.1/src/DoublePinyinContext.h:33:14: note: Destructor in derived class libpyzy-1.0.1/src/DoublePinyinContext.h:35:18: style: The function 'insert' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:219:18: note: Virtual function in base class libpyzy-1.0.1/src/DoublePinyinContext.h:35:18: note: Function in derived class libpyzy-1.0.1/src/DoublePinyinContext.h:37:18: style: The function 'removeCharBefore' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:274:18: note: Virtual function in base class libpyzy-1.0.1/src/DoublePinyinContext.h:37:18: note: Function in derived class libpyzy-1.0.1/src/DoublePinyinContext.h:38:18: style: The function 'removeCharAfter' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:280:18: note: Virtual function in base class libpyzy-1.0.1/src/DoublePinyinContext.h:38:18: note: Function in derived class libpyzy-1.0.1/src/DoublePinyinContext.h:39:18: style: The function 'removeWordBefore' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:286:18: note: Virtual function in base class libpyzy-1.0.1/src/DoublePinyinContext.h:39:18: note: Function in derived class libpyzy-1.0.1/src/DoublePinyinContext.h:40:18: style: The function 'removeWordAfter' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:295:18: note: Virtual function in base class libpyzy-1.0.1/src/DoublePinyinContext.h:40:18: note: Function in derived class libpyzy-1.0.1/src/DoublePinyinContext.h:42:18: style: The function 'moveCursorLeft' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:246:18: note: Virtual function in base class libpyzy-1.0.1/src/DoublePinyinContext.h:42:18: note: Function in derived class libpyzy-1.0.1/src/DoublePinyinContext.h:43:18: style: The function 'moveCursorRight' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:240:18: note: Virtual function in base class libpyzy-1.0.1/src/DoublePinyinContext.h:43:18: note: Function in derived class libpyzy-1.0.1/src/DoublePinyinContext.h:44:18: style: The function 'moveCursorLeftByWord' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:262:18: note: Virtual function in base class libpyzy-1.0.1/src/DoublePinyinContext.h:44:18: note: Function in derived class libpyzy-1.0.1/src/DoublePinyinContext.h:45:18: style: The function 'moveCursorRightByWord' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:256:18: note: Virtual function in base class libpyzy-1.0.1/src/DoublePinyinContext.h:45:18: note: Function in derived class libpyzy-1.0.1/src/DoublePinyinContext.h:46:18: style: The function 'moveCursorToBegin' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:268:18: note: Virtual function in base class libpyzy-1.0.1/src/DoublePinyinContext.h:46:18: note: Function in derived class libpyzy-1.0.1/src/DoublePinyinContext.h:47:18: style: The function 'moveCursorToEnd' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/InputContext.h:301:18: note: Virtual function in base class libpyzy-1.0.1/src/DoublePinyinContext.h:47:18: note: Function in derived class libpyzy-1.0.1/src/DoublePinyinContext.h:49:21: style: The function 'getProperty' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/PhoneticContext.h:70:21: note: Virtual function in base class libpyzy-1.0.1/src/DoublePinyinContext.h:49:21: note: Function in derived class libpyzy-1.0.1/src/DoublePinyinContext.h:50:18: style: The function 'setProperty' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/PhoneticContext.h:71:18: note: Virtual function in base class libpyzy-1.0.1/src/DoublePinyinContext.h:50:18: note: Function in derived class libpyzy-1.0.1/src/Database.h:63:5: style: Class 'Database' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] libpyzy-1.0.1/src/PhraseEditor.cc:120:20: style: Consider using std::accumulate algorithm instead of a raw loop. [useStlAlgorithm] libpyzy-1.0.1/src/PhoneticContext.h:110:18: style: Virtual function 'resetContext' is called from constructor 'PhoneticContext(PhoneticContext::Observer*observer)' at line 34. Dynamic binding is not used. [virtualCallInConstructor] libpyzy-1.0.1/src/PhoneticContext.cc:34:5: note: Calling resetContext libpyzy-1.0.1/src/PhoneticContext.h:110:18: note: resetContext is a virtual function libpyzy-1.0.1/src/PhoneticContext.cc:169:9: portability: %zd in format string (no. 1) requires 'ssize_t' but the argument type is 'size_t {aka unsigned long}'. [invalidPrintfArgType_sint] libpyzy-1.0.1/src/PhoneticContext.cc:253:54: style:inconclusive: Function 'getCandidate' argument 2 names different: declaration 'output' definition 'candidate'. [funcArgNamesDifferent] libpyzy-1.0.1/src/PhoneticContext.h:67:46: note: Function 'getCandidate' argument 2 names different: declaration 'output' definition 'candidate'. libpyzy-1.0.1/src/PhoneticContext.cc:253:54: note: Function 'getCandidate' argument 2 names different: declaration 'output' definition 'candidate'. libpyzy-1.0.1/src/PinyinContext.cc:44:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable TYPE_CONVERTED [valueFlowBailoutIncompleteVar] libpyzy-1.0.1/src/Database.cc:109:13: style: Obsolete function 'sqlite3_prepare' called. It is recommended to use 'sqlite3_prepare_v2' instead. [prohibitedsqlite3_prepareCalled] libpyzy-1.0.1/src/Database.cc:663:11: performance:inconclusive: Technically the member function 'PyZy::Database::phraseWhereSql' can be static (but you may consider moving to unnamed namespace). [functionStatic] libpyzy-1.0.1/src/Database.h:94:10: note: Technically the member function 'PyZy::Database::phraseWhereSql' can be static (but you may consider moving to unnamed namespace). libpyzy-1.0.1/src/Database.cc:663:11: note: Technically the member function 'PyZy::Database::phraseWhereSql' can be static (but you may consider moving to unnamed namespace). libpyzy-1.0.1/src/Database.cc:226:11: style:inconclusive: Technically the member function 'PyZy::Database::executeSQL' can be const. [functionConst] libpyzy-1.0.1/src/Database.h:95:10: note: Technically the member function 'PyZy::Database::executeSQL' can be const. libpyzy-1.0.1/src/Database.cc:226:11: note: Technically the member function 'PyZy::Database::executeSQL' can be const. libpyzy-1.0.1/src/Database.cc:205:7: warning: Class 'Database' does not have a copy constructor which is recommended since it has dynamic memory/resource management. [noCopyConstructor] libpyzy-1.0.1/src/Database.cc:205:7: warning: Class 'Database' does not have a operator= which is recommended since it has dynamic memory/resource management. [noOperatorEq] libpyzy-1.0.1/src/Database.cc:95:5: style: Class 'SQLStmt' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] libpyzy-1.0.1/src/Database.cc:729:37: style:inconclusive: Function 'init' argument 1 names different: declaration 'data_dir' definition 'user_data_dir'. [funcArgNamesDifferent] libpyzy-1.0.1/src/Database.h:66:43: note: Function 'init' argument 1 names different: declaration 'data_dir' definition 'user_data_dir'. libpyzy-1.0.1/src/Database.cc:729:37: note: Function 'init' argument 1 names different: declaration 'data_dir' definition 'user_data_dir'. libpyzy-1.0.1/src/PinyinContext.cc:95:25: style: Variable 'edit_begin_word' is assigned a value that is never used. [unreadVariable] libpyzy-1.0.1/src/PinyinContext.cc:95:41: style: Variable 'edit_end_word' is assigned a value that is never used. [unreadVariable] libpyzy-1.0.1/src/PinyinContext.cc:109:31: style: Variable 'edit_end_word' is assigned a value that is never used. [unreadVariable] libpyzy-1.0.1/src/PinyinContext.cc:140:35: style: Variable 'edit_end_word' is assigned a value that is never used. [unreadVariable] libpyzy-1.0.1/src/PinyinContext.cc:146:27: style: Variable 'edit_end_word' is assigned a value that is never used. [unreadVariable] libpyzy-1.0.1/src/SpecialPhraseTable.cc:52:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PKGDATADIR [valueFlowBailoutIncompleteVar] libpyzy-1.0.1/src/Variant.cc:26:10: warning: Member variable 'Variant::m_type' is not initialized in the constructor. [uninitMemberVarPrivate] libpyzy-1.0.1/src/Variant.cc:26:10: warning: Member variable 'Variant::m_value' is not initialized in the constructor. [uninitMemberVarPrivate] libpyzy-1.0.1/src/SpecialPhraseTable.cc:37:6: style: The destructor '~StaticSpecialPhrase' overrides a destructor in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/SpecialPhrase.h:32:14: note: Virtual destructor in base class libpyzy-1.0.1/src/SpecialPhraseTable.cc:37:6: note: Destructor in derived class libpyzy-1.0.1/src/SpecialPhraseTable.cc:39:17: style: The function 'text' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] libpyzy-1.0.1/src/SpecialPhrase.h:39:25: note: Virtual function in base class libpyzy-1.0.1/src/SpecialPhraseTable.cc:39:17: note: Function in derived class libpyzy-1.0.1/src/SpecialPhraseTable.cc:63:62: performance: Prefer prefix ++/-- operators for non-primitive types. [postfixOperator] libpyzy-1.0.1/src/tests/basic.cc:69:56: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable FULL_PINYIN [valueFlowBailoutIncompleteVar] libpyzy-1.0.1/src/tests/basic.cc:365:45: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable DOUBLE_PINYIN [valueFlowBailoutIncompleteVar] libpyzy-1.0.1/src/tests/basic.cc:660:56: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable BOPOMOFO [valueFlowBailoutIncompleteVar] libpyzy-1.0.1/src/tests/basic.cc:959:49: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable FULL_PINYIN [valueFlowBailoutIncompleteVar] libpyzy-1.0.1/src/tests/basic.cc:1056:38: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable G_FILE_TEST_IS_DIR [valueFlowBailoutIncompleteVar] libpyzy-1.0.1/src/tests/basic.cc:41:10: performance:inconclusive: Either there is a missing 'override', or the member function 'DummyObserver::inputTextChanged' can be static. [functionStatic] libpyzy-1.0.1/src/tests/basic.cc:42:10: performance:inconclusive: Either there is a missing 'override', or the member function 'DummyObserver::preeditTextChanged' can be static. [functionStatic] libpyzy-1.0.1/src/tests/basic.cc:43:10: performance:inconclusive: Either there is a missing 'override', or the member function 'DummyObserver::auxiliaryTextChanged' can be static. [functionStatic] libpyzy-1.0.1/src/tests/basic.cc:44:10: performance:inconclusive: Either there is a missing 'override', or the member function 'DummyObserver::candidatesChanged' can be static. [functionStatic] libpyzy-1.0.1/src/tests/basic.cc:45:10: performance:inconclusive: Either there is a missing 'override', or the member function 'DummyObserver::cursorChanged' can be static. [functionStatic] libpyzy-1.0.1/src/tests/basic.cc:47:12: style:inconclusive: Either there is a missing 'override', or the member function 'DummyObserver::commitedText' can be const. [functionConst] libpyzy-1.0.1/src/tests/basic.cc:47:12: performance: Function 'commitedText()' should return member 'm_commited_text' by const reference. [returnByReference] libpyzy-1.0.1/src/SimpTradConverter.cc:116:23: style: C-style pointer casting [cstyleCast] libpyzy-1.0.1/src/SimpTradConverter.cc:117:23: style: C-style pointer casting [cstyleCast] libpyzy-1.0.1/src/SimpTradConverter.cc:148:22: style: C-style pointer casting [cstyleCast] libpyzy-1.0.1/src/PinyinParser.cc:54:23: style: C-style pointer casting [cstyleCast] libpyzy-1.0.1/src/PinyinParser.cc:55:24: style: C-style pointer casting [cstyleCast] libpyzy-1.0.1/src/PinyinParser.cc:79:18: style: C-style pointer casting [cstyleCast] libpyzy-1.0.1/src/PinyinParser.cc:93:18: style: C-style pointer casting [cstyleCast] libpyzy-1.0.1/src/PinyinParser.cc:107:26: style: C-style pointer casting [cstyleCast] libpyzy-1.0.1/src/PinyinParser.cc:108:24: style: C-style pointer casting [cstyleCast] libpyzy-1.0.1/src/PinyinParser.cc:220:32: style: C-style pointer casting [cstyleCast] libpyzy-1.0.1/src/PinyinParser.cc:226:9: style: C-style pointer casting [cstyleCast] libpyzy-1.0.1/src/PinyinParser.cc:232:16: style: C-style pointer casting [cstyleCast] libpyzy-1.0.1/src/PinyinParser.cc:279:14: style: C-style pointer casting [cstyleCast] libpyzy-1.0.1/src/PinyinParser.cc:289:25: style: C-style pointer casting [cstyleCast] libpyzy-1.0.1/src/PinyinParser.cc:290:25: style: C-style pointer casting [cstyleCast] libpyzy-1.0.1/src/PinyinParser.cc:338:22: style: C-style pointer casting [cstyleCast] libpyzy-1.0.1/src/PinyinParser.cc:142:9: style: Checking if unsigned expression 'len' is less than zero. [unsignedLessThanZero] libpyzy-1.0.1/src/PinyinParser.cc:319:9: style: Checking if unsigned expression 'len' is less than zero. [unsignedLessThanZero] diff: 2.18.0 libpyzy-1.0.1/src/Database.cc:205:7: warning: Class 'Database' does not have a copy constructor which is recommended since it has dynamic memory/resource allocation(s). [noCopyConstructor] head libpyzy-1.0.1/src/Database.cc:205:7: warning: Class 'Database' does not have a copy constructor which is recommended since it has dynamic memory/resource management. [noCopyConstructor] 2.18.0 libpyzy-1.0.1/src/Database.cc:205:7: warning: Class 'Database' does not have a operator= which is recommended since it has dynamic memory/resource allocation(s). [noOperatorEq] head libpyzy-1.0.1/src/Database.cc:205:7: warning: Class 'Database' does not have a operator= which is recommended since it has dynamic memory/resource management. [noOperatorEq] DONE