2025-09-01 06:00 ftp://ftp.de.debian.org/debian/pool/main/libk/libkf5kexiv2/libkf5kexiv2_24.12.3.orig.tar.xz cppcheck-options: --library=posix --library=gnu --library=bsd --library=qt --inconclusive --enable=style,information --inline-suppr --template=daca2 --disable=missingInclude --suppress=unmatchedSuppression --check-library --debug-warnings --suppress=autoNoType --suppress=valueFlowBailout --suppress=bailoutUninitVar --suppress=symbolDatabaseWarning --suppress=normalCheckLevelConditionExpressions -D__GNUC__ --platform=unix64 -j1 platform: Linux-6.8.0-79-generic-x86_64-with-glibc2.39 python: 3.12.3 client-version: 1.3.67 compiler: g++ (Ubuntu 14.2.0-4ubuntu2~24.04) 14.2.0 cppcheck: head 2.18.0 head-info: 2ee39fe (2025-08-30 22:07:31 +0200) count: 7 180 elapsed-time: 0.2 1.7 head-timing-info: old-timing-info: head results: libkexiv2-24.12.3/src/kexiv2_p.h:97:0: error: failed to evaluate #if condition, undefined function-like macro invocation: EXIV2_TEST_VERSION( ... ) [preprocessorErrorDirective] libkexiv2-24.12.3/src/kexiv2_p.h:97:2: error: failed to evaluate #if condition, undefined function-like macro invocation: EXIV2_TEST_VERSION( ... ) [preprocessorErrorDirective] libkexiv2-24.12.3/src/rotationmatrix.h:21:0: error: failed to evaluate #if condition, undefined function-like macro invocation: KEXIV2_ENABLE_DEPRECATED_SINCE( ... ) [preprocessorErrorDirective] libkexiv2-24.12.3/src/rotationmatrix.h:21:2: error: failed to evaluate #if condition, undefined function-like macro invocation: KEXIV2_ENABLE_DEPRECATED_SINCE( ... ) [preprocessorErrorDirective] libkexiv2-24.12.3/tests/loadfromba.cpp:40:32: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ReadOnly [valueFlowBailoutIncompleteVar] libkexiv2-24.12.3/tests/readimagewritexmpsidecar.cpp:38:41: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable WRITETOSIDECARONLY [valueFlowBailoutIncompleteVar] libkexiv2-24.12.3/tests/setiptcpreview.cpp:42:39: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable KeepAspectRatio [valueFlowBailoutIncompleteVar] diff: 2.18.0 libkexiv2-24.12.3/src/kexiv2.cpp:142:32: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable KEXIV2_VERSION_STRING [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2.cpp:159:13: style: Local variable 'sidecarPath' shadows outer function [shadowFunction] libkexiv2-24.12.3/src/kexiv2.h:196:20: note: Shadowed declaration libkexiv2-24.12.3/src/kexiv2.cpp:159:13: note: Shadow variable 2.18.0 libkexiv2-24.12.3/src/kexiv2.cpp:213:65: style: C-style pointer casting [cstyleCast] 2.18.0 libkexiv2-24.12.3/src/kexiv2.cpp:252:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2.cpp:276:50: style: C-style pointer casting [cstyleCast] 2.18.0 libkexiv2-24.12.3/src/kexiv2.cpp:312:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2.cpp:359:34: style:inconclusive: Function 'save' argument 1 names different: declaration 'filePath' definition 'imageFilePath'. [funcArgNamesDifferent] libkexiv2-24.12.3/src/kexiv2.h:232:30: note: Function 'save' argument 1 names different: declaration 'filePath' definition 'imageFilePath'. libkexiv2-24.12.3/src/kexiv2.cpp:359:34: note: Function 'save' argument 1 names different: declaration 'filePath' definition 'imageFilePath'. 2.18.0 libkexiv2-24.12.3/src/kexiv2.cpp:380:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2.cpp:451:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2.h:139:5: style: Class 'KExiv2' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] 2.18.0 libkexiv2-24.12.3/src/kexiv2.h:143:5: style: Class 'KExiv2' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] 2.18.0 libkexiv2-24.12.3/src/kexiv2.h:227:18: style: Virtual function 'load' is called from constructor 'KExiv2(const QString&filePath)' at line 39. Dynamic binding is not used. [virtualCallInConstructor] libkexiv2-24.12.3/src/kexiv2.cpp:39:5: note: Calling load libkexiv2-24.12.3/src/kexiv2.h:227:18: note: load is a virtual function 2.18.0 libkexiv2-24.12.3/src/kexiv2.h:249:13: performance: Function 'getFilePath()' should return member 'filePath' by const reference. [returnByReference] 2.18.0 libkexiv2-24.12.3/src/kexiv2.h:265:13: performance: Function 'getMimeType()' should return member 'mimeType' by const reference. [returnByReference] 2.18.0 libkexiv2-24.12.3/src/kexiv2_p.cpp:110:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2_p.cpp:174:43: style: C-style pointer casting [cstyleCast] 2.18.0 libkexiv2-24.12.3/src/kexiv2_p.cpp:210:40: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable mdComment [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2_p.cpp:333:19: style: Obsolescent function 'utime' called. It is recommended to use 'utimensat' instead. [prohibitedutimeCalled] 2.18.0 libkexiv2-24.12.3/src/kexiv2_p.cpp:370:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2_p.cpp:381:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2_p.cpp:400:37: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable npos [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2_p.cpp:470:21: performance:inconclusive: Technically the member function 'KExiv2Iface::KExiv2Private::isUtf8' can be static (but you may consider moving to unnamed namespace). [functionStatic] libkexiv2-24.12.3/src/kexiv2_p.h:113:10: note: Technically the member function 'KExiv2Iface::KExiv2Private::isUtf8' can be static (but you may consider moving to unnamed namespace). libkexiv2-24.12.3/src/kexiv2_p.cpp:470:21: note: Technically the member function 'KExiv2Iface::KExiv2Private::isUtf8' can be static (but you may consider moving to unnamed namespace). 2.18.0 libkexiv2-24.12.3/src/kexiv2_p.cpp:589:20: performance:inconclusive: Technically the member function 'KExiv2Iface::KExiv2Private::getXMPTagsListFromPrefix' can be static (but you may consider moving to unnamed namespace). [functionStatic] libkexiv2-24.12.3/src/kexiv2_p.h:115:9: note: Technically the member function 'KExiv2Iface::KExiv2Private::getXMPTagsListFromPrefix' can be static (but you may consider moving to unnamed namespace). libkexiv2-24.12.3/src/kexiv2_p.cpp:589:20: note: Technically the member function 'KExiv2Iface::KExiv2Private::getXMPTagsListFromPrefix' can be static (but you may consider moving to unnamed namespace). 2.18.0 libkexiv2-24.12.3/src/kexiv2_p.cpp:589:81: style: Parameter 'tagsMap' can be declared as reference to const [constParameterReference] 2.18.0 libkexiv2-24.12.3/src/kexiv2_p.cpp:73:13: style: Local variable 'filePath' shadows outer variable [shadowVariable] libkexiv2-24.12.3/src/kexiv2_p.h:164:52: note: Shadowed declaration libkexiv2-24.12.3/src/kexiv2_p.cpp:73:13: note: Shadow variable 2.18.0 libkexiv2-24.12.3/src/kexiv2_p.cpp:87:63: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable xmp [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2_p.cpp:87:68: style: C-style pointer casting [cstyleCast] 2.18.0 libkexiv2-24.12.3/src/kexiv2_p.h:191:10: performance:inconclusive: Technically the member function 'KExiv2Iface::MergeHelper < Exiv2 :: ExifData , Exiv2 :: ExifKey , QLatin1String , QList < QLatin1String > >::mergeAll' can be static (but you may consider moving to unnamed namespace). [functionStatic] 2.18.0 libkexiv2-24.12.3/src/kexiv2_p.h:191:10: performance:inconclusive: Technically the member function 'KExiv2Iface::MergeHelper < Exiv2 :: IptcData , Exiv2 :: IptcKey , QLatin1String , QList < QLatin1String > >::mergeAll' can be static (but you may consider moving to unnamed namespace). [functionStatic] head libkexiv2-24.12.3/src/kexiv2_p.h:97:0: error: failed to evaluate #if condition, undefined function-like macro invocation: EXIV2_TEST_VERSION( ... ) [preprocessorErrorDirective] head libkexiv2-24.12.3/src/kexiv2_p.h:97:2: error: failed to evaluate #if condition, undefined function-like macro invocation: EXIV2_TEST_VERSION( ... ) [preprocessorErrorDirective] 2.18.0 libkexiv2-24.12.3/src/kexiv2comments.cpp:26:65: style: C-style pointer casting [cstyleCast] 2.18.0 libkexiv2-24.12.3/src/kexiv2comments.cpp:29:58: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable mdComment [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2data.cpp:24:5: performance: Variable 'd' is assigned in constructor body. Consider performing initialization in initialization list. [useInitializationList] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:1030:24: style: Local variable 'data' shadows outer function [shadowFunction] libkexiv2-24.12.3/src/kexiv2.h:216:16: note: Shadowed declaration libkexiv2-24.12.3/src/kexiv2exif.cpp:1030:24: note: Shadow variable 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:1032:36: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable WriteOnly [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:1035:32: style: C-style pointer casting [cstyleCast] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:1081:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:1133:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:1186:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:133:58: style: C-style pointer casting [cstyleCast] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:140:24: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:162:21: style: Unused variable: ifDItemName [unusedVariable] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:220:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:272:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:320:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:341:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:362:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:36:65: style: C-style pointer casting [cstyleCast] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:390:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:39:58: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable mdExif [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:418:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:440:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:462:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:478:30: style: C-style pointer casting [cstyleCast] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:488:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:494:73: style:inconclusive: Function 'setExifTagVariant' argument 2 names different: declaration 'data' definition 'val'. [funcArgNamesDifferent] libkexiv2-24.12.3/src/kexiv2.h:548:69: note: Function 'setExifTagVariant' argument 2 names different: declaration 'data' definition 'val'. libkexiv2-24.12.3/src/kexiv2exif.cpp:494:73: note: Function 'setExifTagVariant' argument 2 names different: declaration 'data' definition 'val'. 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:557:28: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:658:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:693:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:710:24: warning: Potentially invalid type conversion in old-style C cast, clarify/fix with C++ cast [dangerousTypeCast] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:710:48: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable bigEndian [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:711:24: style: Local variable 'data' shadows outer function [shadowFunction] libkexiv2-24.12.3/src/kexiv2.h:216:16: note: Shadowed declaration libkexiv2-24.12.3/src/kexiv2exif.cpp:711:24: note: Shadow variable 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:729:93: style:inconclusive: Function 'getExifTagVariant' argument 3 names different: declaration 'escapeCR' definition 'stringEscapeCR'. [funcArgNamesDifferent] libkexiv2-24.12.3/src/kexiv2.h:540:94: note: Function 'getExifTagVariant' argument 3 names different: declaration 'escapeCR' definition 'stringEscapeCR'. libkexiv2-24.12.3/src/kexiv2exif.cpp:729:93: note: Function 'getExifTagVariant' argument 3 names different: declaration 'escapeCR' definition 'stringEscapeCR'. 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:756:51: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable Int [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:80:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:860:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:882:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:924:29: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:92:24: style: Local variable 'data' shadows outer function [shadowFunction] libkexiv2-24.12.3/src/kexiv2.h:216:16: note: Shadowed declaration libkexiv2-24.12.3/src/kexiv2exif.cpp:92:24: note: Shadow variable 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:944:14: performance:inconclusive: Technically the member function 'KExiv2Iface::KExiv2::rotateExifQImage' can be static (but you may consider moving to unnamed namespace). [functionStatic] libkexiv2-24.12.3/src/kexiv2.h:467:10: note: Technically the member function 'KExiv2Iface::KExiv2::rotateExifQImage' can be static (but you may consider moving to unnamed namespace). libkexiv2-24.12.3/src/kexiv2exif.cpp:944:14: note: Technically the member function 'KExiv2Iface::KExiv2::rotateExifQImage' can be static (but you may consider moving to unnamed namespace). 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:957:45: style:inconclusive: Function 'setExifThumbnail' argument 1 names different: declaration 'thumb' definition 'thumbImage'. [funcArgNamesDifferent] libkexiv2-24.12.3/src/kexiv2.h:472:41: note: Function 'setExifThumbnail' argument 1 names different: declaration 'thumb' definition 'thumbImage'. libkexiv2-24.12.3/src/kexiv2exif.cpp:957:45: note: Function 'setExifThumbnail' argument 1 names different: declaration 'thumb' definition 'thumbImage'. 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:95:52: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable bigEndian [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:969:20: style: Local variable 'data' shadows outer function [shadowFunction] libkexiv2-24.12.3/src/kexiv2.h:216:16: note: Shadowed declaration libkexiv2-24.12.3/src/kexiv2exif.cpp:969:20: note: Shadow variable 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:96:27: style: C-style pointer casting [cstyleCast] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:971:32: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable WriteOnly [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:974:32: style: C-style pointer casting [cstyleCast] 2.18.0 libkexiv2-24.12.3/src/kexiv2exif.cpp:989:45: style:inconclusive: Function 'setTiffThumbnail' argument 1 names different: declaration 'thumb' definition 'thumbImage'. [funcArgNamesDifferent] libkexiv2-24.12.3/src/kexiv2.h:478:41: note: Function 'setTiffThumbnail' argument 1 names different: declaration 'thumb' definition 'thumbImage'. libkexiv2-24.12.3/src/kexiv2exif.cpp:989:45: note: Function 'setTiffThumbnail' argument 1 names different: declaration 'thumb' definition 'thumbImage'. 2.18.0 libkexiv2-24.12.3/src/kexiv2gps.cpp:153:52: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable first [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2gps.cpp:265:52: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable first [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2gps.cpp:331:67: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable unsignedByte [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2gps.cpp:390:71: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable unsignedByte [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2gps.cpp:577:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2gps.cpp:624:17: style: Same expression on both sides of '/='. [duplicateExpression] 2.18.0 libkexiv2-24.12.3/src/kexiv2gps.cpp:666:19: style: The scope of the variable 'approx' can be reduced. [variableScope] 2.18.0 libkexiv2-24.12.3/src/kexiv2gps.cpp:667:21: style: The scope of the variable 'error' can be reduced. [variableScope] 2.18.0 libkexiv2-24.12.3/src/kexiv2gps.cpp:678:29: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable DBL_EPSILON [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2gps.cpp:67:52: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable first [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2gps.cpp:824:60: style:inconclusive: Function 'convertFromGPSCoordinateString' argument 1 names different: declaration 'coordinate' definition 'gpsString'. [funcArgNamesDifferent] libkexiv2-24.12.3/src/kexiv2.h:1037:63: note: Function 'convertFromGPSCoordinateString' argument 1 names different: declaration 'coordinate' definition 'gpsString'. libkexiv2-24.12.3/src/kexiv2gps.cpp:824:60: note: Function 'convertFromGPSCoordinateString' argument 1 names different: declaration 'coordinate' definition 'gpsString'. 2.18.0 libkexiv2-24.12.3/src/kexiv2gps.cpp:873:85: style:inconclusive: Function 'convertFromGPSCoordinateString' argument 2 names different: declaration 'coordinate' definition 'degrees'. [funcArgNamesDifferent] libkexiv2-24.12.3/src/kexiv2.h:1047:88: note: Function 'convertFromGPSCoordinateString' argument 2 names different: declaration 'coordinate' definition 'degrees'. libkexiv2-24.12.3/src/kexiv2gps.cpp:873:85: note: Function 'convertFromGPSCoordinateString' argument 2 names different: declaration 'coordinate' definition 'degrees'. 2.18.0 libkexiv2-24.12.3/src/kexiv2gps.cpp:912:61: style:inconclusive: Function 'convertToUserPresentableNumbers' argument 1 names different: declaration 'coordinate' definition 'gpsString'. [funcArgNamesDifferent] libkexiv2-24.12.3/src/kexiv2.h:1052:64: note: Function 'convertToUserPresentableNumbers' argument 1 names different: declaration 'coordinate' definition 'gpsString'. libkexiv2-24.12.3/src/kexiv2gps.cpp:912:61: note: Function 'convertToUserPresentableNumbers' argument 1 names different: declaration 'coordinate' definition 'gpsString'. 2.18.0 libkexiv2-24.12.3/src/kexiv2image.cpp:1071:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2image.cpp:1092:20: style: Local variable 'data' shadows outer function [shadowFunction] libkexiv2-24.12.3/src/kexiv2.h:216:16: note: Shadowed declaration libkexiv2-24.12.3/src/kexiv2image.cpp:1092:20: note: Shadow variable 2.18.0 libkexiv2-24.12.3/src/kexiv2image.cpp:1094:32: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable WriteOnly [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2image.cpp:1102:18: style: C-style pointer casting [cstyleCast] 2.18.0 libkexiv2-24.12.3/src/kexiv2image.cpp:195:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2image.cpp:235:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2image.cpp:285:21: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2image.cpp:363:21: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2image.cpp:542:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2image.cpp:563:113: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ISODate [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2image.cpp:78:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2image.cpp:914:66: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ISODate [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2image.cpp:955:109: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ISODate [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:106:24: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:125:58: style: C-style pointer casting [cstyleCast] 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:133:24: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:156:21: style: Unused variable: ifDItemName [unusedVariable] 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:248:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:268:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:26:65: style: C-style pointer casting [cstyleCast] 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:288:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:29:58: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable mdIptc [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:328:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:344:30: style: C-style pointer casting [cstyleCast] 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:354:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:371:24: warning: Potentially invalid type conversion in old-style C cast, clarify/fix with C++ cast [dangerousTypeCast] 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:371:48: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable bigEndian [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:372:24: style: Local variable 'data' shadows outer function [shadowFunction] libkexiv2-24.12.3/src/kexiv2.h:216:16: note: Shadowed declaration libkexiv2-24.12.3/src/kexiv2iptc.cpp:372:24: note: Shadow variable 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:415:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:440:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:479:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:497:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:522:36: style: Local variable 'it' shadows outer variable [shadowVariable] libkexiv2-24.12.3/src/kexiv2iptc.cpp:502:35: note: Shadowed declaration libkexiv2-24.12.3/src/kexiv2iptc.cpp:522:36: note: Shadow variable 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:575:21: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:600:21: style: Variable 'oldkeys' is assigned a value that is never used. [unreadVariable] 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:603:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:627:36: style: Local variable 'it' shadows outer variable [shadowVariable] libkexiv2-24.12.3/src/kexiv2iptc.cpp:607:35: note: Shadowed declaration libkexiv2-24.12.3/src/kexiv2iptc.cpp:627:36: note: Shadow variable 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:689:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:69:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:725:36: style: Local variable 'it' shadows outer variable [shadowVariable] libkexiv2-24.12.3/src/kexiv2iptc.cpp:708:35: note: Shadowed declaration libkexiv2-24.12.3/src/kexiv2iptc.cpp:725:36: note: Shadow variable 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:733:69: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable string [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:787:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:801:21: style: Variable 'oldkeys' is assigned a value that is never used. [unreadVariable] 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:824:36: style: Local variable 'it' shadows outer variable [shadowVariable] libkexiv2-24.12.3/src/kexiv2iptc.cpp:806:35: note: Shadowed declaration libkexiv2-24.12.3/src/kexiv2iptc.cpp:824:36: note: Shadow variable 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:832:69: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable string [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:888:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:96:24: style: Local variable 'data' shadows outer function [shadowFunction] libkexiv2-24.12.3/src/kexiv2.h:216:16: note: Shadowed declaration libkexiv2-24.12.3/src/kexiv2iptc.cpp:96:24: note: Shadow variable 2.18.0 libkexiv2-24.12.3/src/kexiv2iptc.cpp:96:29: style: C-style pointer casting [cstyleCast] 2.18.0 libkexiv2-24.12.3/src/kexiv2previews.cpp:101:31: style: Local variable 'image' shadows outer function [shadowFunction] libkexiv2-24.12.3/src/kexiv2previews.h:85:12: note: Shadowed declaration libkexiv2-24.12.3/src/kexiv2previews.cpp:101:31: note: Shadow variable 2.18.0 libkexiv2-24.12.3/src/kexiv2previews.cpp:101:65: style: C-style pointer casting [cstyleCast] 2.18.0 libkexiv2-24.12.3/src/kexiv2previews.cpp:111:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2previews.cpp:117:22: style:inconclusive: Technically the member function 'KExiv2Iface::KExiv2Previews::isEmpty' can be const. [functionConst] libkexiv2-24.12.3/src/kexiv2previews.h:57:16: note: Technically the member function 'KExiv2Iface::KExiv2Previews::isEmpty' can be const. libkexiv2-24.12.3/src/kexiv2previews.cpp:117:22: note: Technically the member function 'KExiv2Iface::KExiv2Previews::isEmpty' can be const. 2.18.0 libkexiv2-24.12.3/src/kexiv2previews.cpp:138:21: style:inconclusive: Technically the member function 'KExiv2Iface::KExiv2Previews::count' can be const. [functionConst] libkexiv2-24.12.3/src/kexiv2previews.h:60:16: note: Technically the member function 'KExiv2Iface::KExiv2Previews::count' can be const. libkexiv2-24.12.3/src/kexiv2previews.cpp:138:21: note: Technically the member function 'KExiv2Iface::KExiv2Previews::count' can be const. 2.18.0 libkexiv2-24.12.3/src/kexiv2previews.cpp:147:33: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable size_ [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2previews.cpp:154:33: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable width_ [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2previews.cpp:161:33: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable height_ [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2previews.cpp:182:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2previews.cpp:187:29: style: Local variable 'image' shadows outer function [shadowFunction] libkexiv2-24.12.3/src/kexiv2previews.h:85:12: note: Shadowed declaration libkexiv2-24.12.3/src/kexiv2previews.cpp:187:29: note: Shadow variable 2.18.0 libkexiv2-24.12.3/src/kexiv2previews.cpp:188:27: style: C-style pointer casting [cstyleCast] 2.18.0 libkexiv2-24.12.3/src/kexiv2previews.cpp:78:31: style: Local variable 'image' shadows outer function [shadowFunction] libkexiv2-24.12.3/src/kexiv2previews.h:85:12: note: Shadowed declaration libkexiv2-24.12.3/src/kexiv2previews.cpp:78:31: note: Shadow variable 2.18.0 libkexiv2-24.12.3/src/kexiv2previews.cpp:78:65: style: C-style pointer casting [cstyleCast] 2.18.0 libkexiv2-24.12.3/src/kexiv2previews.cpp:88:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LIBKEXIV2_LOG [valueFlowBailoutIncompleteVar] 2.18.0 libkexiv2-24.12.3/src/kexiv2previews.h:42:5: style: Class 'KExiv2Previews' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] 2.18.0 libkexiv2-24.12.3/src/kexiv2previews.h:47:5: style: Class 'KExiv2Previews' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] 2.18.0 libkexiv2-24.12.3/src/kexiv2xmp.cpp:1139:14: performance:inconclusive: Technically the member function 'KExiv2Iface::KExiv2::removeXmpTag' can be static (but you may consider moving to unnamed namespace). [functionStatic] libkexiv2-24.12.3/src/kexiv2.h:937:10: note: Technically the member function 'KExiv2Iface::KExiv2::removeXmpTag' can be static (but you may consider moving to unnamed namespace). libkexiv2-24.12.3/src/kexiv2xmp.cpp:1139:14: note: Technically the member function 'KExiv2Iface::KExiv2::removeXmpTag' can be static (but you may consider moving to unnamed namespace). 2.18.0 libkexiv2-24.12.3/src/kexiv2xmp.cpp:1186:14: style:inconclusive: Technically the member function 'KExiv2Iface::KExiv2::removeXmpKeywords' can be const. [functionConst] libkexiv2-24.12.3/src/kexiv2.h:899:10: note: Technically the member function 'KExiv2Iface::KExiv2::removeXmpKeywords' can be const. libkexiv2-24.12.3/src/kexiv2xmp.cpp:1186:14: note: Technically the member function 'KExiv2Iface::KExiv2::removeXmpKeywords' can be const. 2.18.0 libkexiv2-24.12.3/src/kexiv2xmp.cpp:1201:14: style:inconclusive: Technically the member function 'KExiv2Iface::KExiv2::removeXmpSubCategories' can be const. [functionConst] libkexiv2-24.12.3/src/kexiv2.h:932:10: note: Technically the member function 'KExiv2Iface::KExiv2::removeXmpSubCategories' can be const. libkexiv2-24.12.3/src/kexiv2xmp.cpp:1201:14: note: Technically the member function 'KExiv2Iface::KExiv2::removeXmpSubCategories' can be const. 2.18.0 libkexiv2-24.12.3/src/kexiv2xmp.cpp:1201:56: style:inconclusive: Function 'removeXmpSubCategories' argument 1 names different: declaration 'categoriesToRemove' definition 'subCategoriesToRemove'. [funcArgNamesDifferent] libkexiv2-24.12.3/src/kexiv2.h:932:52: note: Function 'removeXmpSubCategories' argument 1 names different: declaration 'categoriesToRemove' definition 'subCategoriesToRemove'. libkexiv2-24.12.3/src/kexiv2xmp.cpp:1201:56: note: Function 'removeXmpSubCategories' argument 1 names different: declaration 'categoriesToRemove' definition 'subCategoriesToRemove'. 2.18.0 libkexiv2-24.12.3/src/kexiv2xmp.cpp:1216:14: style:inconclusive: Technically the member function 'KExiv2Iface::KExiv2::removeXmpSubjects' can be const. [functionConst] libkexiv2-24.12.3/src/kexiv2.h:915:10: note: Technically the member function 'KExiv2Iface::KExiv2::removeXmpSubjects' can be const. libkexiv2-24.12.3/src/kexiv2xmp.cpp:1216:14: note: Technically the member function 'KExiv2Iface::KExiv2::removeXmpSubjects' can be const. 2.18.0 libkexiv2-24.12.3/src/kexiv2xmp.cpp:126:14: performance:inconclusive: Technically the member function 'KExiv2Iface::KExiv2::setXmp' can be static (but you may consider moving to unnamed namespace). [functionStatic] libkexiv2-24.12.3/src/kexiv2.h:760:10: note: Technically the member function 'KExiv2Iface::KExiv2::setXmp' can be static (but you may consider moving to unnamed namespace). libkexiv2-24.12.3/src/kexiv2xmp.cpp:126:14: note: Technically the member function 'KExiv2Iface::KExiv2::setXmp' can be static (but you may consider moving to unnamed namespace). 2.18.0 libkexiv2-24.12.3/src/kexiv2xmp.cpp:281:17: performance:inconclusive: Technically the member function 'KExiv2Iface::KExiv2::getXmpTagTitle' can be static (but you may consider moving to unnamed namespace). [functionStatic] libkexiv2-24.12.3/src/kexiv2.h:781:13: note: Technically the member function 'KExiv2Iface::KExiv2::getXmpTagTitle' can be static (but you may consider moving to unnamed namespace). libkexiv2-24.12.3/src/kexiv2xmp.cpp:281:17: note: Technically the member function 'KExiv2Iface::KExiv2::getXmpTagTitle' can be static (but you may consider moving to unnamed namespace). 2.18.0 libkexiv2-24.12.3/src/kexiv2xmp.cpp:309:17: performance:inconclusive: Technically the member function 'KExiv2Iface::KExiv2::getXmpTagDescription' can be static (but you may consider moving to unnamed namespace). [functionStatic] libkexiv2-24.12.3/src/kexiv2.h:785:13: note: Technically the member function 'KExiv2Iface::KExiv2::getXmpTagDescription' can be static (but you may consider moving to unnamed namespace). libkexiv2-24.12.3/src/kexiv2xmp.cpp:309:17: note: Technically the member function 'KExiv2Iface::KExiv2::getXmpTagDescription' can be static (but you may consider moving to unnamed namespace). 2.18.0 libkexiv2-24.12.3/src/kexiv2xmp.cpp:336:17: performance:inconclusive: Technically the member function 'KExiv2Iface::KExiv2::getXmpTagString' can be static (but you may consider moving to unnamed namespace). [functionStatic] libkexiv2-24.12.3/src/kexiv2.h:765:13: note: Technically the member function 'KExiv2Iface::KExiv2::getXmpTagString' can be static (but you may consider moving to unnamed namespace). libkexiv2-24.12.3/src/kexiv2xmp.cpp:336:17: note: Technically the member function 'KExiv2Iface::KExiv2::getXmpTagString' can be static (but you may consider moving to unnamed namespace). 2.18.0 libkexiv2-24.12.3/src/kexiv2xmp.cpp:377:14: performance:inconclusive: Technically the member function 'KExiv2Iface::KExiv2::setXmpTagString' can be static (but you may consider moving to unnamed namespace). [functionStatic] libkexiv2-24.12.3/src/kexiv2.h:769:10: note: Technically the member function 'KExiv2Iface::KExiv2::setXmpTagString' can be static (but you may consider moving to unnamed namespace). libkexiv2-24.12.3/src/kexiv2xmp.cpp:377:14: note: Technically the member function 'KExiv2Iface::KExiv2::setXmpTagString' can be static (but you may consider moving to unnamed namespace). 2.18.0 libkexiv2-24.12.3/src/kexiv2xmp.cpp:415:14: performance:inconclusive: Technically the member function 'KExiv2Iface::KExiv2::setXmpTagString' can be static (but you may consider moving to unnamed namespace). [functionStatic] libkexiv2-24.12.3/src/kexiv2.h:776:10: note: Technically the member function 'KExiv2Iface::KExiv2::setXmpTagString' can be static (but you may consider moving to unnamed namespace). libkexiv2-24.12.3/src/kexiv2xmp.cpp:415:14: note: Technically the member function 'KExiv2Iface::KExiv2::setXmpTagString' can be static (but you may consider moving to unnamed namespace). 2.18.0 libkexiv2-24.12.3/src/kexiv2xmp.cpp:517:14: performance:inconclusive: Technically the member function 'KExiv2Iface::KExiv2::setXmpTagStringListLangAlt' can be static (but you may consider moving to unnamed namespace). [functionStatic] libkexiv2-24.12.3/src/kexiv2.h:818:10: note: Technically the member function 'KExiv2Iface::KExiv2::setXmpTagStringListLangAlt' can be static (but you may consider moving to unnamed namespace). libkexiv2-24.12.3/src/kexiv2xmp.cpp:517:14: note: Technically the member function 'KExiv2Iface::KExiv2::setXmpTagStringListLangAlt' can be static (but you may consider moving to unnamed namespace). 2.18.0 libkexiv2-24.12.3/src/kexiv2xmp.cpp:572:17: performance:inconclusive: Technically the member function 'KExiv2Iface::KExiv2::getXmpTagStringLangAlt' can be static (but you may consider moving to unnamed namespace). [functionStatic] libkexiv2-24.12.3/src/kexiv2.h:826:13: note: Technically the member function 'KExiv2Iface::KExiv2::getXmpTagStringLangAlt' can be static (but you may consider moving to unnamed namespace). libkexiv2-24.12.3/src/kexiv2xmp.cpp:572:17: note: Technically the member function 'KExiv2Iface::KExiv2::getXmpTagStringLangAlt' can be static (but you may consider moving to unnamed namespace). 2.18.0 libkexiv2-24.12.3/src/kexiv2xmp.cpp:58:14: performance:inconclusive: Technically the member function 'KExiv2Iface::KExiv2::hasXmp' can be static (but you may consider moving to unnamed namespace). [functionStatic] libkexiv2-24.12.3/src/kexiv2.h:746:10: note: Technically the member function 'KExiv2Iface::KExiv2::hasXmp' can be static (but you may consider moving to unnamed namespace). libkexiv2-24.12.3/src/kexiv2xmp.cpp:58:14: note: Technically the member function 'KExiv2Iface::KExiv2::hasXmp' can be static (but you may consider moving to unnamed namespace). 2.18.0 libkexiv2-24.12.3/src/kexiv2xmp.cpp:624:14: performance:inconclusive: Technically the member function 'KExiv2Iface::KExiv2::setXmpTagStringLangAlt' can be static (but you may consider moving to unnamed namespace). [functionStatic] libkexiv2-24.12.3/src/kexiv2.h:833:10: note: Technically the member function 'KExiv2Iface::KExiv2::setXmpTagStringLangAlt' can be static (but you may consider moving to unnamed namespace). libkexiv2-24.12.3/src/kexiv2xmp.cpp:624:14: note: Technically the member function 'KExiv2Iface::KExiv2::setXmpTagStringLangAlt' can be static (but you may consider moving to unnamed namespace). 2.18.0 libkexiv2-24.12.3/src/kexiv2xmp.cpp:71:14: performance:inconclusive: Technically the member function 'KExiv2Iface::KExiv2::clearXmp' can be static (but you may consider moving to unnamed namespace). [functionStatic] libkexiv2-24.12.3/src/kexiv2.h:750:10: note: Technically the member function 'KExiv2Iface::KExiv2::clearXmp' can be static (but you may consider moving to unnamed namespace). libkexiv2-24.12.3/src/kexiv2xmp.cpp:71:14: note: Technically the member function 'KExiv2Iface::KExiv2::clearXmp' can be static (but you may consider moving to unnamed namespace). 2.18.0 libkexiv2-24.12.3/src/kexiv2xmp.cpp:743:14: performance:inconclusive: Technically the member function 'KExiv2Iface::KExiv2::setXmpTagStringSeq' can be static (but you may consider moving to unnamed namespace). [functionStatic] libkexiv2-24.12.3/src/kexiv2.h:844:10: note: Technically the member function 'KExiv2Iface::KExiv2::setXmpTagStringSeq' can be static (but you may consider moving to unnamed namespace). libkexiv2-24.12.3/src/kexiv2xmp.cpp:743:14: note: Technically the member function 'KExiv2Iface::KExiv2::setXmpTagStringSeq' can be static (but you may consider moving to unnamed namespace). 2.18.0 libkexiv2-24.12.3/src/kexiv2xmp.cpp:847:14: performance:inconclusive: Technically the member function 'KExiv2Iface::KExiv2::setXmpTagStringBag' can be static (but you may consider moving to unnamed namespace). [functionStatic] libkexiv2-24.12.3/src/kexiv2.h:855:10: note: Technically the member function 'KExiv2Iface::KExiv2::setXmpTagStringBag' can be static (but you may consider moving to unnamed namespace). libkexiv2-24.12.3/src/kexiv2xmp.cpp:847:14: note: Technically the member function 'KExiv2Iface::KExiv2::setXmpTagStringBag' can be static (but you may consider moving to unnamed namespace). 2.18.0 libkexiv2-24.12.3/src/kexiv2xmp.cpp:916:27: style: Condition 'setXmpTagStringBag(xmpTagName,newEntries,false)' is always false [knownConditionTrueFalse] libkexiv2-24.12.3/src/kexiv2xmp.cpp:916:27: note: Calling function 'setXmpTagStringBag' returns 0 libkexiv2-24.12.3/src/kexiv2xmp.cpp:916:27: note: Condition 'setXmpTagStringBag(xmpTagName,newEntries,false)' is always false 2.18.0 libkexiv2-24.12.3/src/kexiv2xmp.cpp:938:27: style: Condition 'setXmpTagStringBag(xmpTagName,newEntries,false)' is always false [knownConditionTrueFalse] libkexiv2-24.12.3/src/kexiv2xmp.cpp:938:27: note: Calling function 'setXmpTagStringBag' returns 0 libkexiv2-24.12.3/src/kexiv2xmp.cpp:938:27: note: Condition 'setXmpTagStringBag(xmpTagName,newEntries,false)' is always false 2.18.0 libkexiv2-24.12.3/src/kexiv2xmp.cpp:944:18: performance:inconclusive: Technically the member function 'KExiv2Iface::KExiv2::getXmpTagVariant' can be static (but you may consider moving to unnamed namespace). [functionStatic] libkexiv2-24.12.3/src/kexiv2.h:883:14: note: Technically the member function 'KExiv2Iface::KExiv2::getXmpTagVariant' can be static (but you may consider moving to unnamed namespace). libkexiv2-24.12.3/src/kexiv2xmp.cpp:944:18: note: Technically the member function 'KExiv2Iface::KExiv2::getXmpTagVariant' can be static (but you may consider moving to unnamed namespace). 2.18.0 libkexiv2-24.12.3/src/kexiv2xmp.cpp:94:20: performance:inconclusive: Technically the member function 'KExiv2Iface::KExiv2::getXmp' can be static (but you may consider moving to unnamed namespace). [functionStatic] libkexiv2-24.12.3/src/kexiv2.h:755:16: note: Technically the member function 'KExiv2Iface::KExiv2::getXmp' can be static (but you may consider moving to unnamed namespace). libkexiv2-24.12.3/src/kexiv2xmp.cpp:94:20: note: Technically the member function 'KExiv2Iface::KExiv2::getXmp' can be static (but you may consider moving to unnamed namespace). head libkexiv2-24.12.3/src/rotationmatrix.h:21:0: error: failed to evaluate #if condition, undefined function-like macro invocation: KEXIV2_ENABLE_DEPRECATED_SINCE( ... ) [preprocessorErrorDirective] head libkexiv2-24.12.3/src/rotationmatrix.h:21:2: error: failed to evaluate #if condition, undefined function-like macro invocation: KEXIV2_ENABLE_DEPRECATED_SINCE( ... ) [preprocessorErrorDirective] 2.18.0 libkexiv2-24.12.3/src/rotationmatrix.h:61:5: style: Class 'RotationMatrix' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] 2.18.0 libkexiv2-24.12.3/src/rotationmatrix.h:63:5: style: Class 'RotationMatrix' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] DONE