2026-08-21 07:03 ftp://ftp.de.debian.org/debian/pool/main/r/rtmidi/rtmidi_6.0.0.orig.tar.gz cppcheck-options: --library=posix --library=gnu --library=bsd --library=emscripten --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.12.90+deb13.1-amd64-x86_64-with-glibc2.41 python: 3.12.13 client-version: 1.4.0 compiler: g++ (Debian 14.2.0-19) 14.2.0 cppcheck: head 2.21.0 head-info: 2e19539 (2026-08-18 17:04:48 +0200) count: 166 175 elapsed-time: 0.2 0.2 head-timing-info: old-timing-info: head results: rtmidi-6.0.0/RtMidi.h:122:58: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cerr [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/RtMidi.cpp:425:112: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errorString_ [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/RtMidi.cpp:620:15: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable RTMIDI_DUMMY [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/RtMidi.cpp:628:15: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable UNSPECIFIED [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/RtMidi.cpp:700:15: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable RTMIDI_DUMMY [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/RtMidi.cpp:707:15: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable UNSPECIFIED [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/RtMidi.cpp:775:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cerr [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/RtMidi.cpp:870:36: style:inconclusive: Technically the member function 'MidiInApi::MidiQueue::size' can be const. [functionConst] rtmidi-6.0.0/RtMidi.h:608:18: note: Technically the member function 'MidiInApi::MidiQueue::size' can be const. rtmidi-6.0.0/RtMidi.cpp:870:36: note: Technically the member function 'MidiInApi::MidiQueue::size' can be const. rtmidi-6.0.0/RtMidi.h:115:3: style: Class 'RtMidiError' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] rtmidi-6.0.0/RtMidi.h:299:3: style: Class 'RtMidiIn' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] rtmidi-6.0.0/RtMidi.h:444:3: style: Class 'RtMidiOut' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] rtmidi-6.0.0/RtMidi.h:576:3: style: Class 'MidiInApi' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] rtmidi-6.0.0/RtMidi.cpp:442:3: style: Class 'MidiOutDummy' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] rtmidi-6.0.0/RtMidi.h:306:4: style: The destructor '~RtMidiIn' overrides a destructor in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:237:12: note: Virtual destructor in base class rtmidi-6.0.0/RtMidi.h:306:4: note: Destructor in derived class rtmidi-6.0.0/RtMidi.h:317:8: style: The function 'openPort' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:204:16: note: Virtual function in base class rtmidi-6.0.0/RtMidi.h:317:8: note: Function in derived class rtmidi-6.0.0/RtMidi.h:329:8: style: The function 'openVirtualPort' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:207:16: note: Virtual function in base class rtmidi-6.0.0/RtMidi.h:329:8: note: Function in derived class rtmidi-6.0.0/RtMidi.h:352:8: style: The function 'closePort' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:216:16: note: Virtual function in base class rtmidi-6.0.0/RtMidi.h:352:8: note: Function in derived class rtmidi-6.0.0/RtMidi.h:359:16: style: The function 'isPortOpen' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:226:16: note: Virtual function in base class rtmidi-6.0.0/RtMidi.h:359:16: note: Function in derived class rtmidi-6.0.0/RtMidi.h:365:16: style: The function 'getPortCount' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:210:24: note: Virtual function in base class rtmidi-6.0.0/RtMidi.h:365:16: note: Function in derived class rtmidi-6.0.0/RtMidi.h:373:15: style: The function 'getPortName' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:213:23: note: Virtual function in base class rtmidi-6.0.0/RtMidi.h:373:15: note: Function in derived class rtmidi-6.0.0/RtMidi.h:400:16: style: The function 'setErrorCallback' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:233:16: note: Virtual function in base class rtmidi-6.0.0/RtMidi.h:400:16: note: Function in derived class rtmidi-6.0.0/RtMidi.h:450:4: style: The destructor '~RtMidiOut' overrides a destructor in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:237:12: note: Virtual destructor in base class rtmidi-6.0.0/RtMidi.h:450:4: note: Destructor in derived class rtmidi-6.0.0/RtMidi.h:462:8: style: The function 'openPort' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:204:16: note: Virtual function in base class rtmidi-6.0.0/RtMidi.h:462:8: note: Function in derived class rtmidi-6.0.0/RtMidi.h:465:8: style: The function 'closePort' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:216:16: note: Virtual function in base class rtmidi-6.0.0/RtMidi.h:465:8: note: Function in derived class rtmidi-6.0.0/RtMidi.h:472:16: style: The function 'isPortOpen' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:226:16: note: Virtual function in base class rtmidi-6.0.0/RtMidi.h:472:16: note: Function in derived class rtmidi-6.0.0/RtMidi.h:483:8: style: The function 'openVirtualPort' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:207:16: note: Virtual function in base class rtmidi-6.0.0/RtMidi.h:483:8: note: Function in derived class rtmidi-6.0.0/RtMidi.h:486:16: style: The function 'getPortCount' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:210:24: note: Virtual function in base class rtmidi-6.0.0/RtMidi.h:486:16: note: Function in derived class rtmidi-6.0.0/RtMidi.h:494:15: style: The function 'getPortName' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:213:23: note: Virtual function in base class rtmidi-6.0.0/RtMidi.h:494:15: note: Function in derived class rtmidi-6.0.0/RtMidi.h:518:16: style: The function 'setErrorCallback' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:233:16: note: Virtual function in base class rtmidi-6.0.0/RtMidi.h:518:16: note: Function in derived class rtmidi-6.0.0/RtMidi.h:577:12: style: The destructor '~MidiInApi' overrides a destructor in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:543:12: note: Virtual destructor in base class rtmidi-6.0.0/RtMidi.h:577:12: note: Destructor in derived class rtmidi-6.0.0/RtMidi.h:642:12: style: The destructor '~MidiOutApi' overrides a destructor in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:543:12: note: Virtual destructor in base class rtmidi-6.0.0/RtMidi.h:642:12: note: Destructor in derived class rtmidi-6.0.0/RtMidi.cpp:426:15: style: The function 'getCurrentApi' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:544:23: note: Virtual function in base class rtmidi-6.0.0/RtMidi.cpp:426:15: note: Function in derived class rtmidi-6.0.0/RtMidi.cpp:427:8: style: The function 'openPort' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:545:16: note: Virtual function in base class rtmidi-6.0.0/RtMidi.cpp:427:8: note: Function in derived class rtmidi-6.0.0/RtMidi.cpp:428:8: style: The function 'openVirtualPort' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:546:16: note: Virtual function in base class rtmidi-6.0.0/RtMidi.cpp:428:8: note: Function in derived class rtmidi-6.0.0/RtMidi.cpp:429:8: style: The function 'closePort' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:547:16: note: Virtual function in base class rtmidi-6.0.0/RtMidi.cpp:429:8: note: Function in derived class rtmidi-6.0.0/RtMidi.cpp:430:8: style: The function 'setClientName' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:548:16: note: Virtual function in base class rtmidi-6.0.0/RtMidi.cpp:430:8: note: Function in derived class rtmidi-6.0.0/RtMidi.cpp:431:8: style: The function 'setPortName' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:549:16: note: Virtual function in base class rtmidi-6.0.0/RtMidi.cpp:431:8: note: Function in derived class rtmidi-6.0.0/RtMidi.cpp:432:16: style: The function 'getPortCount' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:551:24: note: Virtual function in base class rtmidi-6.0.0/RtMidi.cpp:432:16: note: Function in derived class rtmidi-6.0.0/RtMidi.cpp:433:15: style: The function 'getPortName' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:552:23: note: Virtual function in base class rtmidi-6.0.0/RtMidi.cpp:433:15: note: Function in derived class rtmidi-6.0.0/RtMidi.cpp:436:8: style: The function 'initialize' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:561:16: note: Virtual function in base class rtmidi-6.0.0/RtMidi.cpp:436:8: note: Function in derived class rtmidi-6.0.0/RtMidi.cpp:443:15: style: The function 'getCurrentApi' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:544:23: note: Virtual function in base class rtmidi-6.0.0/RtMidi.cpp:443:15: note: Function in derived class rtmidi-6.0.0/RtMidi.cpp:444:8: style: The function 'openPort' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:545:16: note: Virtual function in base class rtmidi-6.0.0/RtMidi.cpp:444:8: note: Function in derived class rtmidi-6.0.0/RtMidi.cpp:445:8: style: The function 'openVirtualPort' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:546:16: note: Virtual function in base class rtmidi-6.0.0/RtMidi.cpp:445:8: note: Function in derived class rtmidi-6.0.0/RtMidi.cpp:446:8: style: The function 'closePort' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:547:16: note: Virtual function in base class rtmidi-6.0.0/RtMidi.cpp:446:8: note: Function in derived class rtmidi-6.0.0/RtMidi.cpp:447:8: style: The function 'setClientName' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:548:16: note: Virtual function in base class rtmidi-6.0.0/RtMidi.cpp:447:8: note: Function in derived class rtmidi-6.0.0/RtMidi.cpp:448:8: style: The function 'setPortName' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:549:16: note: Virtual function in base class rtmidi-6.0.0/RtMidi.cpp:448:8: note: Function in derived class rtmidi-6.0.0/RtMidi.cpp:449:16: style: The function 'getPortCount' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:551:24: note: Virtual function in base class rtmidi-6.0.0/RtMidi.cpp:449:16: note: Function in derived class rtmidi-6.0.0/RtMidi.cpp:450:15: style: The function 'getPortName' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:552:23: note: Virtual function in base class rtmidi-6.0.0/RtMidi.cpp:450:15: note: Function in derived class rtmidi-6.0.0/RtMidi.cpp:451:8: style: The function 'sendMessage' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:643:16: note: Virtual function in base class rtmidi-6.0.0/RtMidi.cpp:451:8: note: Function in derived class rtmidi-6.0.0/RtMidi.cpp:454:8: style: The function 'initialize' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/RtMidi.h:561:16: note: Virtual function in base class rtmidi-6.0.0/RtMidi.cpp:454:8: note: Function in derived class rtmidi-6.0.0/RtMidi.cpp:565:17: style: Checking if unsigned expression 'i' is less than zero. [unsignedLessThanZero] rtmidi-6.0.0/RtMidi.cpp:870:56: style:inconclusive: Function 'size' argument 1 names different: declaration 'back' definition '__back'. [funcArgNamesDifferent] rtmidi-6.0.0/RtMidi.h:608:38: note: Function 'size' argument 1 names different: declaration 'back' definition '__back'. rtmidi-6.0.0/RtMidi.cpp:870:56: note: Function 'size' argument 1 names different: declaration 'back' definition '__back'. rtmidi-6.0.0/RtMidi.cpp:871:56: style:inconclusive: Function 'size' argument 2 names different: declaration 'front' definition '__front'. [funcArgNamesDifferent] rtmidi-6.0.0/RtMidi.h:608:60: note: Function 'size' argument 2 names different: declaration 'front' definition '__front'. rtmidi-6.0.0/RtMidi.cpp:871:56: note: Function 'size' argument 2 names different: declaration 'front' definition '__front'. rtmidi-6.0.0/RtMidi.cpp:889:64: style:inconclusive: Function 'push' argument 1 names different: declaration '' definition 'msg'. [funcArgNamesDifferentUnnamed] rtmidi-6.0.0/RtMidi.cpp:907:61: style:inconclusive: Function 'pop' argument 1 names different: declaration '' definition 'msg'. [funcArgNamesDifferentUnnamed] rtmidi-6.0.0/RtMidi.cpp:907:74: style:inconclusive: Function 'pop' argument 2 names different: declaration '' definition 'timeStamp'. [funcArgNamesDifferentUnnamed] rtmidi-6.0.0/RtMidi.cpp:767:23: performance:inconclusive: Use const reference for 'errorMessage' to avoid unnecessary data copying. [redundantCopyLocalConst] rtmidi-6.0.0/RtMidi.cpp:759:60: performance: Function parameter 'errorString' should be passed by const reference. [passedByValue] rtmidi-6.0.0/RtMidi.cpp:539:3: style: Instance of 'StaticAssert < rtmidi_num_api_names == RtMidi :: NUM_APIS >' object is destroyed immediately. [unusedScopedObject] rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:122:58: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cerr [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:115:3: style: Class 'RtMidiError' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:299:3: style: Class 'RtMidiIn' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:444:3: style: Class 'RtMidiOut' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:576:3: style: Class 'MidiInApi' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:306:4: style: The destructor '~RtMidiIn' overrides a destructor in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:237:12: note: Virtual destructor in base class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:306:4: note: Destructor in derived class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:317:8: style: The function 'openPort' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:204:16: note: Virtual function in base class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:317:8: note: Function in derived class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:329:8: style: The function 'openVirtualPort' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:207:16: note: Virtual function in base class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:329:8: note: Function in derived class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:352:8: style: The function 'closePort' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:216:16: note: Virtual function in base class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:352:8: note: Function in derived class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:359:16: style: The function 'isPortOpen' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:226:16: note: Virtual function in base class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:359:16: note: Function in derived class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:365:16: style: The function 'getPortCount' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:210:24: note: Virtual function in base class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:365:16: note: Function in derived class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:373:15: style: The function 'getPortName' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:213:23: note: Virtual function in base class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:373:15: note: Function in derived class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:400:16: style: The function 'setErrorCallback' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:233:16: note: Virtual function in base class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:400:16: note: Function in derived class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:450:4: style: The destructor '~RtMidiOut' overrides a destructor in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:237:12: note: Virtual destructor in base class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:450:4: note: Destructor in derived class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:462:8: style: The function 'openPort' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:204:16: note: Virtual function in base class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:462:8: note: Function in derived class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:465:8: style: The function 'closePort' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:216:16: note: Virtual function in base class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:465:8: note: Function in derived class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:472:16: style: The function 'isPortOpen' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:226:16: note: Virtual function in base class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:472:16: note: Function in derived class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:483:8: style: The function 'openVirtualPort' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:207:16: note: Virtual function in base class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:483:8: note: Function in derived class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:486:16: style: The function 'getPortCount' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:210:24: note: Virtual function in base class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:486:16: note: Function in derived class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:494:15: style: The function 'getPortName' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:213:23: note: Virtual function in base class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:494:15: note: Function in derived class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:518:16: style: The function 'setErrorCallback' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:233:16: note: Virtual function in base class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:518:16: note: Function in derived class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:577:12: style: The destructor '~MidiInApi' overrides a destructor in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:543:12: note: Virtual destructor in base class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:577:12: note: Destructor in derived class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:642:12: style: The destructor '~MidiOutApi' overrides a destructor in a base class but is not marked with a 'override' specifier. [missingOverride] rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:543:12: note: Virtual destructor in base class rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:642:12: note: Destructor in derived class rtmidi-6.0.0/android/app/src/main/cpp/app-jni.cpp:53:55: error: Found an exit path from function with non-void return type that has missing return statement [missingReturn] rtmidi-6.0.0/android/app/src/main/cpp/app-jni.cpp:64:55: error: Found an exit path from function with non-void return type that has missing return statement [missingReturn] rtmidi-6.0.0/android/app/src/main/cpp/app-jni.cpp:34:47: warning: Potentially invalid type conversion in old-style C cast, clarify/fix with C++ cast [dangerousTypeCast] rtmidi-6.0.0/rtmidi_c.cpp:101:10: style: C-style pointer casting [cstyleCast] rtmidi-6.0.0/rtmidi_c.cpp:113:10: style: C-style pointer casting [cstyleCast] rtmidi-6.0.0/rtmidi_c.cpp:125:10: style: C-style pointer casting [cstyleCast] rtmidi-6.0.0/rtmidi_c.cpp:136:17: style: C-style pointer casting [cstyleCast] rtmidi-6.0.0/rtmidi_c.cpp:153:17: style: C-style pointer casting [cstyleCast] rtmidi-6.0.0/rtmidi_c.cpp:176:20: style: C-style pointer casting [cstyleCast] rtmidi-6.0.0/rtmidi_c.cpp:199:20: style: C-style pointer casting [cstyleCast] rtmidi-6.0.0/rtmidi_c.cpp:225:29: style: C-style pointer casting [cstyleCast] rtmidi-6.0.0/rtmidi_c.cpp:244:20: style: C-style pointer casting [cstyleCast] rtmidi-6.0.0/rtmidi_c.cpp:246:10: style: C-style pointer casting [cstyleCast] rtmidi-6.0.0/rtmidi_c.cpp:258:10: style: C-style pointer casting [cstyleCast] rtmidi-6.0.0/rtmidi_c.cpp:269:4: style: C-style pointer casting [cstyleCast] rtmidi-6.0.0/rtmidi_c.cpp:279:23: style: C-style pointer casting [cstyleCast] rtmidi-6.0.0/rtmidi_c.cpp:308:20: style: C-style pointer casting [cstyleCast] rtmidi-6.0.0/rtmidi_c.cpp:331:20: style: C-style pointer casting [cstyleCast] rtmidi-6.0.0/rtmidi_c.cpp:356:29: style: C-style pointer casting [cstyleCast] rtmidi-6.0.0/rtmidi_c.cpp:369:10: style: C-style pointer casting [cstyleCast] rtmidi-6.0.0/rtmidi_c.cpp:99:17: style: The scope of the variable 'name' can be reduced. [variableScope] rtmidi-6.0.0/rtmidi_c.cpp:111:17: style: The scope of the variable 'name' can be reduced. [variableScope] rtmidi-6.0.0/rtmidi_c.cpp:193:17: style: The scope of the variable 'name' can be reduced. [variableScope] rtmidi-6.0.0/rtmidi_c.cpp:326:17: style: The scope of the variable 'name' can be reduced. [variableScope] rtmidi-6.0.0/rtmidi_c.cpp:14:5: style: Instance of 'StaticEnumAssert < ( int ) RTMIDI_API_UNSPECIFIED == ( int ) RtMidi :: UNSPECIFIED >' object is destroyed immediately. [unusedScopedObject] rtmidi-6.0.0/rtmidi_c.cpp:15:5: style: Instance of 'StaticEnumAssert < ( int ) RTMIDI_API_MACOSX_CORE == ( int ) RtMidi :: MACOSX_CORE >' object is destroyed immediately. [unusedScopedObject] rtmidi-6.0.0/rtmidi_c.cpp:16:5: style: Instance of 'StaticEnumAssert < ( int ) RTMIDI_API_LINUX_ALSA == ( int ) RtMidi :: LINUX_ALSA >' object is destroyed immediately. [unusedScopedObject] rtmidi-6.0.0/rtmidi_c.cpp:17:5: style: Instance of 'StaticEnumAssert < ( int ) RTMIDI_API_UNIX_JACK == ( int ) RtMidi :: UNIX_JACK >' object is destroyed immediately. [unusedScopedObject] rtmidi-6.0.0/rtmidi_c.cpp:18:5: style: Instance of 'StaticEnumAssert < ( int ) RTMIDI_API_WINDOWS_MM == ( int ) RtMidi :: WINDOWS_MM >' object is destroyed immediately. [unusedScopedObject] rtmidi-6.0.0/rtmidi_c.cpp:19:5: style: Instance of 'StaticEnumAssert < ( int ) RTMIDI_API_ANDROID == ( int ) RtMidi :: ANDROID_AMIDI >' object is destroyed immediately. [unusedScopedObject] rtmidi-6.0.0/rtmidi_c.cpp:20:5: style: Instance of 'StaticEnumAssert < ( int ) RTMIDI_API_RTMIDI_DUMMY == ( int ) RtMidi :: RTMIDI_DUMMY >' object is destroyed immediately. [unusedScopedObject] rtmidi-6.0.0/rtmidi_c.cpp:21:5: style: Instance of 'StaticEnumAssert < ( int ) RTMIDI_API_WEB_MIDI_API == ( int ) RtMidi :: WEB_MIDI_API >' object is destroyed immediately. [unusedScopedObject] rtmidi-6.0.0/rtmidi_c.cpp:22:5: style: Instance of 'StaticEnumAssert < ( int ) RTMIDI_API_WINDOWS_UWP == ( int ) RtMidi :: WINDOWS_UWP >' object is destroyed immediately. [unusedScopedObject] rtmidi-6.0.0/rtmidi_c.cpp:24:5: style: Instance of 'StaticEnumAssert < ( int ) RTMIDI_ERROR_WARNING == ( int ) RtMidiError :: WARNING >' object is destroyed immediately. [unusedScopedObject] rtmidi-6.0.0/rtmidi_c.cpp:25:5: style: Instance of 'StaticEnumAssert < ( int ) RTMIDI_ERROR_DEBUG_WARNING == ( int ) RtMidiError :: DEBUG_WARNING >' object is destroyed immediately. [unusedScopedObject] rtmidi-6.0.0/rtmidi_c.cpp:26:5: style: Instance of 'StaticEnumAssert < ( int ) RTMIDI_ERROR_UNSPECIFIED == ( int ) RtMidiError :: UNSPECIFIED >' object is destroyed immediately. [unusedScopedObject] rtmidi-6.0.0/rtmidi_c.cpp:27:5: style: Instance of 'StaticEnumAssert < ( int ) RTMIDI_ERROR_NO_DEVICES_FOUND == ( int ) RtMidiError :: NO_DEVICES_FOUND >' object is destroyed immediately. [unusedScopedObject] rtmidi-6.0.0/rtmidi_c.cpp:28:5: style: Instance of 'StaticEnumAssert < ( int ) RTMIDI_ERROR_INVALID_DEVICE == ( int ) RtMidiError :: INVALID_DEVICE >' object is destroyed immediately. [unusedScopedObject] rtmidi-6.0.0/rtmidi_c.cpp:29:5: style: Instance of 'StaticEnumAssert < ( int ) RTMIDI_ERROR_MEMORY_ERROR == ( int ) RtMidiError :: MEMORY_ERROR >' object is destroyed immediately. [unusedScopedObject] rtmidi-6.0.0/rtmidi_c.cpp:30:5: style: Instance of 'StaticEnumAssert < ( int ) RTMIDI_ERROR_INVALID_PARAMETER == ( int ) RtMidiError :: INVALID_PARAMETER >' object is destroyed immediately. [unusedScopedObject] rtmidi-6.0.0/rtmidi_c.cpp:31:5: style: Instance of 'StaticEnumAssert < ( int ) RTMIDI_ERROR_INVALID_USE == ( int ) RtMidiError :: INVALID_USE >' object is destroyed immediately. [unusedScopedObject] rtmidi-6.0.0/rtmidi_c.cpp:32:5: style: Instance of 'StaticEnumAssert < ( int ) RTMIDI_ERROR_DRIVER_ERROR == ( int ) RtMidiError :: DRIVER_ERROR >' object is destroyed immediately. [unusedScopedObject] rtmidi-6.0.0/rtmidi_c.cpp:33:5: style: Instance of 'StaticEnumAssert < ( int ) RTMIDI_ERROR_SYSTEM_ERROR == ( int ) RtMidiError :: SYSTEM_ERROR >' object is destroyed immediately. [unusedScopedObject] rtmidi-6.0.0/rtmidi_c.cpp:34:5: style: Instance of 'StaticEnumAssert < ( int ) RTMIDI_ERROR_THREAD_ERROR == ( int ) RtMidiError :: THREAD_ERROR >' object is destroyed immediately. [unusedScopedObject] rtmidi-6.0.0/tests/apinames.cpp:22:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cout [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/tests/apinames.cpp:91:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cout [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/tests/cmidiin.cpp:17:8: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cout [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/tests/cmidiin.cpp:26:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cout [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/tests/cmidiin.cpp:61:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cout [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/tests/cmidiin.cpp:78:8: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cout [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/tests/cmidiin.cpp:121:27: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable UNSPECIFIED [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/tests/cmidiin.cpp:87:15: style: The scope of the variable 'portName' can be reduced. [variableScope] rtmidi-6.0.0/tests/midiclock.cpp:43:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cout [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/tests/midiclock.cpp:80:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cout [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/tests/midiclock.cpp:122:8: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cout [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/tests/midiclock.cpp:189:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cout [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/tests/midiclock.cpp:241:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable UNSPECIFIED [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/tests/midiclock.cpp:200:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cout [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/tests/midiclock.cpp:151:7: style: Obsolescent function 'usleep' called. It is recommended to use 'nanosleep' or 'setitimer' instead. [prohibitedusleepCalled] rtmidi-6.0.0/tests/midiclock.cpp:159:5: style: Obsolescent function 'usleep' called. It is recommended to use 'nanosleep' or 'setitimer' instead. [prohibitedusleepCalled] rtmidi-6.0.0/tests/midiclock.cpp:168:3: style: Obsolescent function 'usleep' called. It is recommended to use 'nanosleep' or 'setitimer' instead. [prohibitedusleepCalled] rtmidi-6.0.0/tests/midiclock.cpp:197:15: style: The scope of the variable 'portName' can be reduced. [variableScope] rtmidi-6.0.0/tests/midiout.cpp:113:8: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cout [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/tests/midiout.cpp:156:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable UNSPECIFIED [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/tests/midiout.cpp:59:3: style: Obsolescent function 'usleep' called. It is recommended to use 'nanosleep' or 'setitimer' instead. [prohibitedusleepCalled] rtmidi-6.0.0/tests/midiout.cpp:77:3: style: Obsolescent function 'usleep' called. It is recommended to use 'nanosleep' or 'setitimer' instead. [prohibitedusleepCalled] rtmidi-6.0.0/tests/midiout.cpp:85:3: style: Obsolescent function 'usleep' called. It is recommended to use 'nanosleep' or 'setitimer' instead. [prohibitedusleepCalled] rtmidi-6.0.0/tests/midiout.cpp:93:3: style: Obsolescent function 'usleep' called. It is recommended to use 'nanosleep' or 'setitimer' instead. [prohibitedusleepCalled] rtmidi-6.0.0/tests/midiout.cpp:122:15: style: The scope of the variable 'portName' can be reduced. [variableScope] rtmidi-6.0.0/tests/midiprobe.cpp:16:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable MACOSX_CORE [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/tests/midiprobe.cpp:48:22: style: Local variable 'i' shadows outer variable [shadowVariable] rtmidi-6.0.0/tests/midiprobe.cpp:31:22: note: Shadowed variable rtmidi-6.0.0/tests/midiprobe.cpp:48:22: note: Shadow local variable rtmidi-6.0.0/tests/midiprobe.cpp:62:22: style: Local variable 'i' shadows outer variable [shadowVariable] rtmidi-6.0.0/tests/midiprobe.cpp:31:22: note: Shadowed variable rtmidi-6.0.0/tests/midiprobe.cpp:62:22: note: Shadow local variable rtmidi-6.0.0/tests/qmidiin.cpp:30:8: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cout [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/tests/qmidiin.cpp:64:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cout [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/tests/qmidiin.cpp:94:5: style: Obsolescent function 'usleep' called. It is recommended to use 'nanosleep' or 'setitimer' instead. [prohibitedusleepCalled] rtmidi-6.0.0/tests/qmidiin.cpp:36:27: style: Parameter 'argv' can be declared as const array [constParameter] rtmidi-6.0.0/tests/sysextest.cpp:15:8: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cout [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/tests/sysextest.cpp:40:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cout [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/tests/sysextest.cpp:112:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cout [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/tests/sysextest.cpp:164:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable UNSPECIFIED [valueFlowBailoutIncompleteVar] rtmidi-6.0.0/tests/sysextest.cpp:78:5: style: Obsolescent function 'usleep' called. It is recommended to use 'nanosleep' or 'setitimer' instead. [prohibitedusleepCalled] rtmidi-6.0.0/tests/sysextest.cpp:89:7: style: Obsolescent function 'usleep' called. It is recommended to use 'nanosleep' or 'setitimer' instead. [prohibitedusleepCalled] rtmidi-6.0.0/tests/sysextest.cpp:123:15: style: The scope of the variable 'portName' can be reduced. [variableScope] rtmidi-6.0.0/tests/sysextest.cpp:45:27: style: Parameter 'argv' can be declared as const array [constParameter] diff: 2.21.0 rtmidi-6.0.0/RtMidi.cpp:753:76: style:inconclusive: Function 'setErrorCallback' argument 2 names different: declaration '' definition 'userData'. [funcArgNamesDifferentUnnamed] 2.21.0 rtmidi-6.0.0/RtMidi.cpp:807:73: style:inconclusive: Function 'setCallback' argument 2 names different: declaration '' definition 'userData'. [funcArgNamesDifferentUnnamed] 2.21.0 rtmidi-6.0.0/RtMidi.h:657:69: style:inconclusive: Function 'setCallback' argument 2 names different: declaration '' definition 'userData'. [funcArgNamesDifferentUnnamed] 2.21.0 rtmidi-6.0.0/RtMidi.h:663:84: style:inconclusive: Function 'setErrorCallback' argument 2 names different: declaration '' definition 'userData'. [funcArgNamesDifferentUnnamed] 2.21.0 rtmidi-6.0.0/RtMidi.h:675:85: style:inconclusive: Function 'setErrorCallback' argument 2 names different: declaration '' definition 'userData'. [funcArgNamesDifferentUnnamed] 2.21.0 rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:657:69: style:inconclusive: Function 'setCallback' argument 2 names different: declaration '' definition 'userData'. [funcArgNamesDifferentUnnamed] 2.21.0 rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:663:84: style:inconclusive: Function 'setErrorCallback' argument 2 names different: declaration '' definition 'userData'. [funcArgNamesDifferentUnnamed] 2.21.0 rtmidi-6.0.0/android/app/src/main/cpp/RtMidi.h:675:85: style:inconclusive: Function 'setErrorCallback' argument 2 names different: declaration '' definition 'userData'. [funcArgNamesDifferentUnnamed] 2.21.0 rtmidi-6.0.0/rtmidi_c.cpp:242:82: style:inconclusive: Function 'rtmidi_in_set_callback' argument 3 names different: declaration '' definition 'userData'. [funcArgNamesDifferentUnnamed] DONE