2026-03-18 09:30 ftp://ftp.de.debian.org/debian/pool/main/p/portmidi/portmidi_217.orig.tar.gz cppcheck-options: --library=posix --library=gnu --library=bsd --library=python --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-106-generic-x86_64-with-glibc2.39 python: 3.12.3 client-version: 1.3.70 compiler: g++ (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0 cppcheck: head 2.20.0 head-info: b52fd48 (2026-03-17 18:11:35 +0200) count: 197 197 elapsed-time: 0.9 1.0 head-timing-info: old-timing-info: head results: portmidi/pm_common/pmutil.c:45:5: style: Obsolescent function 'bzero' called. It is recommended to use 'memset' instead. [prohibitedbzeroCalled] portmidi/pm_common/pmutil.c:58:5: style: Obsolescent function 'bzero' called. It is recommended to use 'memset' instead. [prohibitedbzeroCalled] portmidi/pm_common/pmutil.c:153:5: style: Obsolescent function 'bzero' called. It is recommended to use 'memset' instead. [prohibitedbzeroCalled] portmidi/pm_common/pmutil.c:70:43: style:inconclusive: Function 'Pm_QueueDestroy' argument 1 names different: declaration 'queue' definition 'q'. [funcArgNamesDifferent] portmidi/pm_common/pmutil.h:48:43: note: Function 'Pm_QueueDestroy' argument 1 names different: declaration 'queue' definition 'q'. portmidi/pm_common/pmutil.c:70:43: note: Function 'Pm_QueueDestroy' argument 1 names different: declaration 'queue' definition 'q'. portmidi/pm_common/pmutil.c:85:38: style:inconclusive: Function 'Pm_Dequeue' argument 1 names different: declaration 'queue' definition 'q'. [funcArgNamesDifferent] portmidi/pm_common/pmutil.h:59:38: note: Function 'Pm_Dequeue' argument 1 names different: declaration 'queue' definition 'q'. portmidi/pm_common/pmutil.c:85:38: note: Function 'Pm_Dequeue' argument 1 names different: declaration 'queue' definition 'q'. portmidi/pm_common/pmutil.c:164:42: style:inconclusive: Function 'Pm_SetOverflow' argument 1 names different: declaration 'queue' definition 'q'. [funcArgNamesDifferent] portmidi/pm_common/pmutil.h:123:42: note: Function 'Pm_SetOverflow' argument 1 names different: declaration 'queue' definition 'q'. portmidi/pm_common/pmutil.c:164:42: note: Function 'Pm_SetOverflow' argument 1 names different: declaration 'queue' definition 'q'. portmidi/pm_common/pmutil.c:179:38: style:inconclusive: Function 'Pm_Enqueue' argument 1 names different: declaration 'queue' definition 'q'. [funcArgNamesDifferent] portmidi/pm_common/pmutil.h:67:38: note: Function 'Pm_Enqueue' argument 1 names different: declaration 'queue' definition 'q'. portmidi/pm_common/pmutil.c:179:38: note: Function 'Pm_Enqueue' argument 1 names different: declaration 'queue' definition 'q'. portmidi/pm_common/pmutil.c:221:37: style:inconclusive: Function 'Pm_QueueEmpty' argument 1 names different: declaration 'queue' definition 'q'. [funcArgNamesDifferent] portmidi/pm_common/pmutil.h:86:37: note: Function 'Pm_QueueEmpty' argument 1 names different: declaration 'queue' definition 'q'. portmidi/pm_common/pmutil.c:221:37: note: Function 'Pm_QueueEmpty' argument 1 names different: declaration 'queue' definition 'q'. portmidi/pm_common/pmutil.c:229:36: style:inconclusive: Function 'Pm_QueueFull' argument 1 names different: declaration 'queue' definition 'q'. [funcArgNamesDifferent] portmidi/pm_common/pmutil.h:85:36: note: Function 'Pm_QueueFull' argument 1 names different: declaration 'queue' definition 'q'. portmidi/pm_common/pmutil.c:229:36: note: Function 'Pm_QueueFull' argument 1 names different: declaration 'queue' definition 'q'. portmidi/pm_common/pmutil.c:248:38: style:inconclusive: Function 'Pm_QueuePeek' argument 1 names different: declaration 'queue' definition 'q'. [funcArgNamesDifferent] portmidi/pm_common/pmutil.h:112:38: note: Function 'Pm_QueuePeek' argument 1 names different: declaration 'queue' definition 'q'. portmidi/pm_common/pmutil.c:248:38: note: Function 'Pm_QueuePeek' argument 1 names different: declaration 'queue' definition 'q'. portmidi/pm_common/pmutil.c:184:14: style: Variable 'src' can be declared as pointer to const [constVariablePointer] portmidi/pm_common/pmutil.c:233:17: style: Variable 'queue' can be declared as pointer to const [constVariablePointer] portmidi/pm_common/portmidi.c:791:43: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable Pt_Time [valueFlowBailoutIncompleteVar] portmidi/pm_common/portmidi.c:386:17: style: Local variable 'err' shadows outer variable [shadowVariable] portmidi/pm_common/portmidi.c:360:13: note: Shadowed declaration portmidi/pm_common/portmidi.c:386:17: note: Shadow variable portmidi/pm_common/portmidi.c:624:29: style: Local variable 'err' shadows outer variable [shadowVariable] portmidi/pm_common/portmidi.c:616:25: note: Shadowed declaration portmidi/pm_common/portmidi.c:624:29: note: Shadow variable portmidi/pm_common/portmidi.c:102:29: style: Parameter 'interf' can be declared as pointer to const [constParameterPointer] portmidi/pm_common/portmidi.c:102:43: style: Parameter 'name' can be declared as pointer to const [constParameterPointer] portmidi/pm_common/portmidi.c:147:11: style: Variable 'interf_pref' can be declared as pointer to const [constVariablePointer] portmidi/pm_common/portmidi.c:192:35: style: Parameter 'midi' can be declared as pointer to const [constParameterPointer] portmidi/pm_common/portmidi.c:197:38: style: Parameter 'midi' can be declared as pointer to const. However it seems that 'none_write_short' is a callback function, if 'midi' is declared with const you might also need to cast function pointer(s). [constParameterCallback] portmidi/pm_common/portmidi.c:237:5: note: You might need to cast the function pointer here portmidi/pm_common/portmidi.c:197:38: note: Parameter 'midi' can be declared as pointer to const portmidi/pm_common/portmidi.c:197:53: style: Parameter 'buffer' can be declared as pointer to const. However it seems that 'none_write_short' is a callback function, if 'buffer' is declared with const you might also need to cast function pointer(s). [constParameterCallback] portmidi/pm_common/portmidi.c:237:5: note: You might need to cast the function pointer here portmidi/pm_common/portmidi.c:197:53: note: Parameter 'buffer' can be declared as pointer to const portmidi/pm_common/portmidi.c:202:42: style: Parameter 'midi' can be declared as pointer to const. However it seems that 'pm_fail_timestamp_fn' is a callback function, if 'midi' is declared with const you might also need to cast function pointer(s). [constParameterCallback] portmidi/pm_common/portmidi.c:238:5: note: You might need to cast the function pointer here portmidi/pm_common/portmidi.c:202:42: note: Parameter 'midi' can be declared as pointer to const portmidi/pm_common/portmidi.c:206:37: style: Parameter 'midi' can be declared as pointer to const. However it seems that 'none_write_byte' is a callback function, if 'midi' is declared with const you might also need to cast function pointer(s). [constParameterCallback] portmidi/pm_common/portmidi.c:236:5: note: You might need to cast the function pointer here portmidi/pm_common/portmidi.c:206:37: note: Parameter 'midi' can be declared as pointer to const portmidi/pm_common/portmidi.c:212:32: style: Parameter 'midi' can be declared as pointer to const. However it seems that 'pm_fail_fn' is a callback function, if 'midi' is declared with const you might also need to cast function pointer(s). [constParameterCallback] portmidi/pm_common/portmidi.c:243:5: note: You might need to cast the function pointer here portmidi/pm_common/portmidi.c:212:32: note: Parameter 'midi' can be declared as pointer to const portmidi/pm_common/portmidi.c:216:38: style: Parameter 'midi' can be declared as pointer to const. However it seems that 'none_open' is a callback function, if 'midi' is declared with const you might also need to cast function pointer(s). [constParameterCallback] portmidi/pm_common/portmidi.c:240:5: note: You might need to cast the function pointer here portmidi/pm_common/portmidi.c:216:38: note: Parameter 'midi' can be declared as pointer to const portmidi/pm_common/portmidi.c:216:50: style: Parameter 'driverInfo' can be declared as pointer to const. However it seems that 'none_open' is a callback function, if 'driverInfo' is declared with const you might also need to cast function pointer(s). [constParameterCallback] portmidi/pm_common/portmidi.c:240:5: note: You might need to cast the function pointer here portmidi/pm_common/portmidi.c:216:50: note: Parameter 'driverInfo' can be declared as pointer to const portmidi/pm_common/portmidi.c:222:54: style: Parameter 'midi' can be declared as pointer to const. However it seems that 'none_has_host_error' is a callback function, if 'midi' is declared with const you might also need to cast function pointer(s). [constParameterCallback] portmidi/pm_common/portmidi.c:244:5: note: You might need to cast the function pointer here portmidi/pm_common/portmidi.c:222:54: note: Parameter 'midi' can be declared as pointer to const portmidi/pm_common/portmidi.c:225:42: style: Parameter 'midi' can be declared as pointer to const. However it seems that 'none_synchronize' is a callback function, if 'midi' is declared with const you might also need to cast function pointer(s). [constParameterCallback] portmidi/pm_common/portmidi.c:239:5: note: You might need to cast the function pointer here portmidi/pm_common/portmidi.c:225:42: note: Parameter 'midi' can be declared as pointer to const portmidi/pm_common/portmidi.c:592:38: style: Parameter 'msg' can be declared as pointer to const [constParameterPointer] portmidi/pm_csharp/pm_managed/pm_managed.h:29:4: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable interf [valueFlowBailoutIncompleteVar] portmidi/pm_csharp/pm_managed/pm_managed.h:22:3: style: Class 'MpmDeviceInfo' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] portmidi/pm_java/pmjni/pmjni.c:71:14: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PM_HOST_ERROR_MSG_LEN [valueFlowBailoutIncompleteVar] portmidi/pm_java/pmjni/pmjni.c:27:12: style: Parameter 'env' can be declared as pointer to const [constParameterPointer] portmidi/pm_java/pmjni/pmjni.c:37:12: style: Parameter 'env' can be declared as pointer to const [constParameterPointer] portmidi/pm_java/pmjni/pmjni.c:81:12: style: Parameter 'env' can be declared as pointer to const [constParameterPointer] portmidi/pm_java/pmjni/pmjni.c:91:12: style: Parameter 'env' can be declared as pointer to const [constParameterPointer] portmidi/pm_java/pmjni/pmjni.c:101:12: style: Parameter 'env' can be declared as pointer to const [constParameterPointer] portmidi/pm_java/pmjni/pmjni.c:331:18: style: Parameter 'env' can be declared as pointer to const [constParameterPointer] portmidi/pm_java/pmjni/pmjni.c:340:18: style: Parameter 'env' can be declared as pointer to const [constParameterPointer] portmidi/pm_java/pmjni/pmjni.c:349:18: style: Parameter 'env' can be declared as pointer to const [constParameterPointer] portmidi/pm_linux/finddefault.c:68:31: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EOF [valueFlowBailoutIncompleteVar] portmidi/pm_linux/finddefault.c:49:12: warning: If memory allocation fails, then there is a possible null pointer dereference: full_name [nullPointerOutOfMemory] portmidi/pm_linux/finddefault.c:47:24: note: Assuming allocation function fails portmidi/pm_linux/finddefault.c:47:24: note: Assignment 'full_name=malloc(strlen(pref_1)+strlen(pref_2)+strlen(pref_3)+strlen(path)+2)', assigned value is 0 portmidi/pm_linux/finddefault.c:49:12: note: Null pointer dereference portmidi/pm_linux/finddefault.c:50:12: warning: If memory allocation fails, then there is a possible null pointer dereference: full_name [nullPointerOutOfMemory] portmidi/pm_linux/finddefault.c:47:24: note: Assuming allocation function fails portmidi/pm_linux/finddefault.c:47:24: note: Assignment 'full_name=malloc(strlen(pref_1)+strlen(pref_2)+strlen(pref_3)+strlen(path)+2)', assigned value is 0 portmidi/pm_linux/finddefault.c:50:12: note: Null pointer dereference portmidi/pm_linux/finddefault.c:62:12: warning: If memory allocation fails, then there is a possible null pointer dereference: full_name [nullPointerOutOfMemory] portmidi/pm_linux/finddefault.c:47:24: note: Assuming allocation function fails portmidi/pm_linux/finddefault.c:47:24: note: Assignment 'full_name=malloc(strlen(pref_1)+strlen(pref_2)+strlen(pref_3)+strlen(path)+2)', assigned value is 0 portmidi/pm_linux/finddefault.c:62:12: note: Null pointer dereference portmidi/pm_linux/finddefault.c:63:17: warning: If memory allocation fails, then there is a possible null pointer dereference: full_name [nullPointerOutOfMemory] portmidi/pm_linux/finddefault.c:47:24: note: Assuming allocation function fails portmidi/pm_linux/finddefault.c:47:24: note: Assignment 'full_name=malloc(strlen(pref_1)+strlen(pref_2)+strlen(pref_3)+strlen(path)+2)', assigned value is 0 portmidi/pm_linux/finddefault.c:63:17: note: Null pointer dereference portmidi/pm_linux/finddefault.c:83:21: warning:inconclusive: Found suspicious equality comparison. Did you intend to assign a value instead? [constStatement] portmidi/pm_linux/finddefault.c:21:35: style: Parameter 's' can be declared as pointer to const [constParameterPointer] portmidi/pm_linux/finddefault.c:39:18: style: Variable 'pref_2' can be declared as pointer to const [constVariablePointer] portmidi/pm_linux/finddefault.c:40:18: style: Variable 'pref_3' can be declared as pointer to const [constVariablePointer] portmidi/pm_linux/finddefault.c:41:11: style: Variable 'pref_1' can be declared as pointer to const [constVariablePointer] portmidi/pm_linux/pmlinux.c:44:5: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable pm_initialized [valueFlowBailoutIncompleteVar] portmidi/pm_linux/pmlinuxalsa.c:31:2: error: #error needs ALSA 0.9.0 or later [preprocessorErrorDirective] portmidi/pm_mac/finddefault.c:49:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable pmNoDevice [valueFlowBailoutIncompleteVar] portmidi/pm_mac/pmmac.c:26:5: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable pm_initialized [valueFlowBailoutIncompleteVar] portmidi/pm_mac/pmmacosxcm.c:190:39: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable FALSE [valueFlowBailoutIncompleteVar] portmidi/pm_mac/pmmacosxcm.c:285:28: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable FALSE [valueFlowBailoutIncompleteVar] portmidi/pm_mac/pmmacosxcm.c:334:43: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable Pt_Time [valueFlowBailoutIncompleteVar] portmidi/pm_mac/pmmacosxcm.c:379:19: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable pmNoError [valueFlowBailoutIncompleteVar] portmidi/pm_mac/pmmacosxcm.c:415:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable pmInsufficientMemory [valueFlowBailoutIncompleteVar] portmidi/pm_mac/pmmacosxcm.c:443:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable pmBadPtr [valueFlowBailoutIncompleteVar] portmidi/pm_mac/pmmacosxcm.c:454:19: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable pmNoError [valueFlowBailoutIncompleteVar] portmidi/pm_mac/pmmacosxcm.c:475:38: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable descriptors [valueFlowBailoutIncompleteVar] portmidi/pm_mac/pmmacosxcm.c:527:50: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable pmNoError [valueFlowBailoutIncompleteVar] portmidi/pm_mac/pmmacosxcm.c:604:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable pmNoError [valueFlowBailoutIncompleteVar] portmidi/pm_mac/pmmacosxcm.c:630:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable pmNoError [valueFlowBailoutIncompleteVar] portmidi/pm_mac/pmmacosxcm.c:645:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable pmNoError [valueFlowBailoutIncompleteVar] portmidi/pm_mac/pmmacosxcm.c:658:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable pmNoError [valueFlowBailoutIncompleteVar] portmidi/pm_mac/pmmacosxcm.c:718:41: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kMIDIPropertyName [valueFlowBailoutIncompleteVar] portmidi/pm_mac/pmmacosxcm.c:793:45: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kMIDIPropertyConnectionUniqueID [valueFlowBailoutIncompleteVar] portmidi/pm_mac/pmmacosxcm.c:937:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable pmNoError [valueFlowBailoutIncompleteVar] portmidi/pm_mac/pmmacosxcm.c:484:13: style: Obsolescent function 'usleep' called. It is recommended to use 'nanosleep' or 'setitimer' instead. [prohibitedusleepCalled] portmidi/pm_mac/pmmacosxcm.c:521:21: portability: Casting non-zero decimal integer literal to pointer. [intToPointerCast] portmidi/pm_mac/pmmacosxcm.c:169:28: style: Parameter 'packet' can be declared as pointer to const [constParameterPointer] portmidi/pm_mac/pmmacosxcm.c:452:24: style: Parameter 'midi' can be declared as pointer to const. However it seems that 'midi_abort' is a callback function, if 'midi' is declared with const you might also need to cast function pointer(s). [constParameterCallback] portmidi/pm_mac/pmmacosxcm.c:910:5: note: You might need to cast the function pointer here portmidi/pm_mac/pmmacosxcm.c:452:24: note: Parameter 'midi' can be declared as pointer to const portmidi/pm_mac/pmmacosxcm.c:540:45: style: Parameter 'event' can be declared as pointer to const. However it seems that 'midi_write_short' is a callback function, if 'event' is declared with const you might also need to cast function pointer(s). [constParameterCallback] portmidi/pm_mac/pmmacosxcm.c:902:5: note: You might need to cast the function pointer here portmidi/pm_mac/pmmacosxcm.c:540:45: note: Parameter 'event' can be declared as pointer to const portmidi/pm_mac/pmmacosxcm.c:924:11: style: Variable 'error_text' can be declared as pointer to const [constVariablePointer] portmidi/pm_mac/pmmacosxcm.c:284:13: style: Variable 'now' is assigned a value that is never used. [unreadVariable] portmidi/pm_mac/pmmacosxcm.c:791:19: style: Variable 'nConnected' is assigned a value that is never used. [unreadVariable] portmidi/pm_mac/pmmacosxcm.c:793:7: style: Variable 'err' is assigned a value that is never used. [unreadVariable] portmidi/pm_mac/readbinaryplist.c:386:30: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kOnAppropriateDisk [valueFlowBailoutIncompleteVar] portmidi/pm_mac/readbinaryplist.c:404:39: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kSystemPreferencesFolderType [valueFlowBailoutIncompleteVar] portmidi/pm_mac/readbinaryplist.c:409:39: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable kPreferencesFolderType [valueFlowBailoutIncompleteVar] portmidi/pm_mac/readbinaryplist.c:1069:9: warning: %lld in format string (no. 1) requires 'long long' but the argument type is 'signed long'. [invalidPrintfArgType_sint] portmidi/pm_mac/readbinaryplist.c:1085:9: warning: %llu in format string (no. 1) requires 'unsigned long long' but the argument type is 'unsigned long'. [invalidPrintfArgType_uint] portmidi/pm_mac/readbinaryplist.c:373:9: error: Resource leak: file [resourceLeak] portmidi/pm_mac/readbinaryplist.c:377:5: error: Resource leak: file [resourceLeak] portmidi/pm_mac/readbinaryplist.c:694:32: portability: Casting between unsigned int * and float * which have an incompatible binary data representation. [invalidPointerCast] portmidi/pm_mac/readbinaryplist.c:699:32: portability: Casting between unsigned long * and double * which have an incompatible binary data representation. [invalidPointerCast] portmidi/pm_mac/readbinaryplist.c:733:28: portability: Casting between unsigned long * and double * which have an incompatible binary data representation. [invalidPointerCast] portmidi/pm_mac/readbinaryplist.c:434:14: style: Local variable 'top_level_object' shadows outer variable [shadowVariable] portmidi/pm_mac/readbinaryplist.c:172:14: note: Shadowed declaration portmidi/pm_mac/readbinaryplist.c:434:14: note: Shadow variable portmidi/pm_mac/readbinaryplist.c:334:34: style: Parameter 'filename' can be declared as pointer to const [constParameterPointer] portmidi/pm_mac/readbinaryplist.c:416:34: style: Parameter 'ptr' can be declared as pointer to const [constParameterPointer] portmidi/pm_mac/readbinaryplist.c:1002:61: style: Parameter 'key' can be declared as pointer to const [constParameterPointer] portmidi/pm_mac/readbinaryplist.c:1018:59: style: Parameter 'path' can be declared as pointer to const [constParameterPointer] portmidi/pm_python/pyportmidi/_pyportmidi.c:7:6: error: #error Python headers needed to compile C extensions, please install development version of Python. [preprocessorErrorDirective] portmidi/pm_test/latency.c:119:19: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable timestamp [valueFlowBailoutIncompleteVar] portmidi/pm_test/latency.c:206:30: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PM_FILT_ACTIVE [valueFlowBailoutIncompleteVar] portmidi/pm_test/latency.c:286:33: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdin [valueFlowBailoutIncompleteVar] portmidi/pm_test/latency.c:197:17: style: Local variable 'i' shadows outer variable [shadowVariable] portmidi/pm_test/latency.c:161:9: note: Shadowed declaration portmidi/pm_test/latency.c:197:17: note: Shadow variable portmidi/pm_test/latency.c:209:17: style: Local variable 'i' shadows outer variable [shadowVariable] portmidi/pm_test/latency.c:161:9: note: Shadowed declaration portmidi/pm_test/latency.c:209:17: note: Shadow variable portmidi/pm_test/latency.c:279:22: style: Parameter 'prompt' can be declared as pointer to const [constParameterPointer] portmidi/pm_test/midiclock.c:173:33: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdin [valueFlowBailoutIncompleteVar] portmidi/pm_test/midiclock.c:265:31: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdin [valueFlowBailoutIncompleteVar] portmidi/pm_test/midiclock.c:166:22: style: Parameter 'prompt' can be declared as pointer to const [constParameterPointer] portmidi/pm_test/midithread.c:112:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable FALSE [valueFlowBailoutIncompleteVar] portmidi/pm_test/midithread.c:169:29: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdin [valueFlowBailoutIncompleteVar] portmidi/pm_test/midithread.c:180:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable FALSE [valueFlowBailoutIncompleteVar] portmidi/pm_test/midithread.c:165:30: style: Parameter 'msg' can be declared as pointer to const [constParameterPointer] portmidi/pm_test/midithru.c:126:34: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable TRUE [valueFlowBailoutIncompleteVar] portmidi/pm_test/midithru.c:227:29: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdin [valueFlowBailoutIncompleteVar] portmidi/pm_test/midithru.c:252:53: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PmEvent [valueFlowBailoutIncompleteVar] portmidi/pm_test/midithru.c:311:30: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable FALSE [valueFlowBailoutIncompleteVar] portmidi/pm_test/midithru.c:102:38: style: Parameter 'info' can be declared as pointer to const. However it seems that 'midithru_time_proc' is a callback function, if 'info' is declared with const you might also need to cast function pointer(s). [constParameterCallback] portmidi/pm_test/midithru.c:291:19: note: You might need to cast the function pointer here portmidi/pm_test/midithru.c:102:38: note: Parameter 'info' can be declared as pointer to const portmidi/pm_test/midithru.c:222:30: style: Parameter 'msg' can be declared as pointer to const [constParameterPointer] portmidi/pm_test/mm.c:125:33: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdin [valueFlowBailoutIncompleteVar] portmidi/pm_test/mm.c:181:27: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdin [valueFlowBailoutIncompleteVar] portmidi/pm_test/mm.c:207:19: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PM_FILT_PITCHBEND [valueFlowBailoutIncompleteVar] portmidi/pm_test/mm.c:468:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] portmidi/pm_test/mm.c:118:22: style: Parameter 'prompt' can be declared as pointer to const [constParameterPointer] portmidi/pm_test/mm.c:151:11: style: Variable 'argument' can be declared as pointer to const [constVariablePointer] portmidi/pm_test/mm.c:482:18: style: Variable 'ptos' can be declared as const array [constVariable] portmidi/pm_test/qtest.c:40:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable FALSE [valueFlowBailoutIncompleteVar] portmidi/pm_test/qtest.c:127:43: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable pmBufferOverflow [valueFlowBailoutIncompleteVar] portmidi/pm_test/qtest.c:21:21: style: Parameter 'msg' can be declared as const array [constParameter] portmidi/pm_test/sysex.c:45:33: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdin [valueFlowBailoutIncompleteVar] portmidi/pm_test/sysex.c:104:37: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdin [valueFlowBailoutIncompleteVar] portmidi/pm_test/sysex.c:381:29: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdin [valueFlowBailoutIncompleteVar] portmidi/pm_test/sysex.c:446:29: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdin [valueFlowBailoutIncompleteVar] portmidi/pm_test/sysex.c:504:33: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdin [valueFlowBailoutIncompleteVar] portmidi/pm_test/sysex.c:144:17: style: Obsolescent function 'usleep' called. It is recommended to use 'nanosleep' or 'setitimer' instead. [prohibitedusleepCalled] portmidi/pm_test/sysex.c:102:28: style: Condition 'error_position>=0' is always false [knownConditionTrueFalse] portmidi/pm_test/sysex.c:96:31: note: Assignment 'error_position=-1', assigned value is -1 portmidi/pm_test/sysex.c:102:28: note: Condition 'error_position>=0' is always false portmidi/pm_test/sysex.c:339:13: style: Condition '!receive_msg_error' is always true [knownConditionTrueFalse] portmidi/pm_test/sysex.c:337:25: note: Assignment 'receive_msg_error=0', assigned value is 0 portmidi/pm_test/sysex.c:339:13: note: Condition '!receive_msg_error' is always true portmidi/pm_test/sysex.c:339:55: style: Condition 'receive_msg_count!=0' is always true [knownConditionTrueFalse] portmidi/pm_test/sysex.c:336:26: note: Assignment 'receive_msg_count=-1', assigned value is -1 portmidi/pm_test/sysex.c:339:55: note: Condition 'receive_msg_count!=0' is always true portmidi/pm_test/sysex.c:346:9: style: Condition 'receive_msg_error' is always false [knownConditionTrueFalse] portmidi/pm_test/sysex.c:337:25: note: Assignment 'receive_msg_error=0', assigned value is 0 portmidi/pm_test/sysex.c:346:9: note: Condition 'receive_msg_error' is always false portmidi/pm_test/sysex.c:174:6: warning: %d in format string (no. 1) requires 'int' but the argument type is 'signed long'. [invalidPrintfArgType_sint] portmidi/pm_test/sysex.c:461:13: warning: %x in format string (no. 1) requires 'unsigned int *' but the argument type is 'signed int *'. [invalidScanfArgType_int] portmidi/pm_test/sysex.c:38:22: style: Parameter 'prompt' can be declared as pointer to const [constParameterPointer] portmidi/pm_test/sysex.c:218:16: style: Variable 'start_time' is assigned a value that is never used. [unreadVariable] portmidi/pm_test/sysex.c:233:15: style: Variable 'stop_time' is assigned a value that is never used. [unreadVariable] portmidi/pm_test/test.c:43:33: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdin [valueFlowBailoutIncompleteVar] portmidi/pm_test/test.c:75:24: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PM_FILT_ACTIVE [valueFlowBailoutIncompleteVar] portmidi/pm_test/test.c:139:42: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable Pt_Time [valueFlowBailoutIncompleteVar] portmidi/pm_test/test.c:242:24: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PM_FILT_ACTIVE [valueFlowBailoutIncompleteVar] portmidi/pm_test/test.c:308:29: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdin [valueFlowBailoutIncompleteVar] portmidi/pm_test/test.c:387:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable FALSE [valueFlowBailoutIncompleteVar] portmidi/pm_test/test.c:23:3: error: Null pointer dereference: tmp [nullPointer] portmidi/pm_test/test.c:22:14: note: Assignment 'tmp=NULL', assigned value is 0 portmidi/pm_test/test.c:23:3: note: Null pointer dereference portmidi/pm_test/test.c:36:22: style: Parameter 'prompt' can be declared as pointer to const [constParameterPointer] portmidi/pm_test/test.c:379:26: style: Parameter 'argv' can be declared as const array [constParameter] portmidi/pm_test/test.c:458:15: style: Variable 'deflt' can be declared as pointer to const [constVariablePointer] portmidi/pm_win/pmwin.c:68:21: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable pmNoDevice [valueFlowBailoutIncompleteVar] portmidi/pm_win/pmwin.c:121:37: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable TRUE [valueFlowBailoutIncompleteVar] portmidi/pm_win/pmwin.c:127:35: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable FALSE [valueFlowBailoutIncompleteVar] portmidi/pm_win/pmwinmm.c:167:51: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable MIDIINCAPS [valueFlowBailoutIncompleteVar] portmidi/pm_win/pmwinmm.c:197:36: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable MIDIMAPPER [valueFlowBailoutIncompleteVar] portmidi/pm_win/pmwinmm.c:212:38: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable MIDIOUTCAPS [valueFlowBailoutIncompleteVar] portmidi/pm_win/pmwinmm.c:236:37: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable MIDIMAPPER [valueFlowBailoutIncompleteVar] portmidi/pm_win/pmwinmm.c:279:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable descriptors [valueFlowBailoutIncompleteVar] portmidi/pm_win/pmwinmm.c:310:42: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable MIDIHDR [valueFlowBailoutIncompleteVar] portmidi/pm_win/pmwinmm.c:344:48: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LPMIDIHDR [valueFlowBailoutIncompleteVar] portmidi/pm_win/pmwinmm.c:416:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable TRUE [valueFlowBailoutIncompleteVar] portmidi/pm_win/pmwinmm.c:532:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable pmInsufficientMemory [valueFlowBailoutIncompleteVar] portmidi/pm_win/pmwinmm.c:551:24: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable descriptors [valueFlowBailoutIncompleteVar] portmidi/pm_win/pmwinmm.c:643:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable pmBadPtr [valueFlowBailoutIncompleteVar] portmidi/pm_win/pmwinmm.c:749:67: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable MIDIHDR [valueFlowBailoutIncompleteVar] portmidi/pm_win/pmwinmm.c:810:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable TIME_TICKS [valueFlowBailoutIncompleteVar] portmidi/pm_win/pmwinmm.c:831:24: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable descriptors [valueFlowBailoutIncompleteVar] portmidi/pm_win/pmwinmm.c:980:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable pm_hosterror [valueFlowBailoutIncompleteVar] portmidi/pm_win/pmwinmm.c:1001:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable MMSYSERR_NOERROR [valueFlowBailoutIncompleteVar] portmidi/pm_win/pmwinmm.c:1017:48: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable MIDIHDR [valueFlowBailoutIncompleteVar] portmidi/pm_win/pmwinmm.c:1112:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable pmNoError [valueFlowBailoutIncompleteVar] portmidi/pm_win/pmwinmm.c:1164:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable pmNoError [valueFlowBailoutIncompleteVar] portmidi/pm_win/pmwinmm.c:1202:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable pmNoError [valueFlowBailoutIncompleteVar] portmidi/pm_win/pmwinmm.c:1343:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable MOM_DONE [valueFlowBailoutIncompleteVar] portmidi/pm_win/pmwinmm.c:1426:21: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable pm_descriptor_index [valueFlowBailoutIncompleteVar] portmidi/pm_win/pmwinmm.c:1445:18: warning:inconclusive: Found suspicious operator '*', result is not used. [constStatement] portmidi/pm_win/pmwinmm.c:261:42: style: Parameter 'src' can be declared as pointer to const [constParameterPointer] portmidi/pm_win/pmwinmm.c:275:11: style: Variable 'hdr2' can be declared as pointer to const [constVariablePointer] portmidi/pm_win/pmwinmm.c:275:16: style: Variable 'hdr2' is assigned a value that is never used. [unreadVariable] portmidi/pm_win/pmwinmm.c:700:25: style: Variable 'new_driver_time' is assigned a value that is never used. [unreadVariable] portmidi/pm_win/pmwinmm.c:674:16: style: Variable 'entry' is assigned a value that is never used. [unreadVariable] portmidi/pm_win/pmwinmm.c:894:14: style: Variable 'dur' is assigned a value that is never used. [unreadVariable] portmidi/pm_win/pmwinmm.c:1422:17: style: Variable 'doneAny' is assigned a value that is never used. [unreadVariable] portmidi/porttime/ptlinux.c:62:37: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PRIO_PROCESS [valueFlowBailoutIncompleteVar] portmidi/porttime/ptlinux.c:82:5: style: Obsolescent function 'ftime' called. It is recommended to use 'time', 'gettimeofday' or 'clock_gettime' instead. [prohibitedftimeCalled] portmidi/porttime/ptlinux.c:125:5: style: Obsolescent function 'ftime' called. It is recommended to use 'time', 'gettimeofday' or 'clock_gettime' instead. [prohibitedftimeCalled] portmidi/porttime/ptlinux.c:134:5: style: Obsolescent function 'usleep' called. It is recommended to use 'nanosleep' or 'setitimer' instead. [prohibitedusleepCalled] portmidi/porttime/ptmacosx_cf.c:49:51: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable THREAD_EXTENDED_POLICY [valueFlowBailoutIncompleteVar] portmidi/porttime/ptmacosx_cf.c:109:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable TRUE [valueFlowBailoutIncompleteVar] portmidi/porttime/ptmacosx_cf.c:119:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable FALSE [valueFlowBailoutIncompleteVar] portmidi/porttime/ptmacosx_cf.c:139:5: style: Obsolescent function 'usleep' called. It is recommended to use 'nanosleep' or 'setitimer' instead. [prohibitedusleepCalled] portmidi/porttime/ptmacosx_cf.c:97:28: error: Memory leak: params [memleak] portmidi/porttime/ptmacosx_mach.c:44:51: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable THREAD_EXTENDED_POLICY [valueFlowBailoutIncompleteVar] portmidi/porttime/ptmacosx_mach.c:98:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable TRUE [valueFlowBailoutIncompleteVar] portmidi/porttime/ptmacosx_mach.c:108:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable FALSE [valueFlowBailoutIncompleteVar] portmidi/porttime/ptmacosx_mach.c:130:5: style: Obsolescent function 'usleep' called. It is recommended to use 'nanosleep' or 'setitimer' instead. [prohibitedusleepCalled] portmidi/porttime/ptwinmm.c:30:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable TRUE [valueFlowBailoutIncompleteVar] portmidi/porttime/ptwinmm.c:49:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable FALSE [valueFlowBailoutIncompleteVar] diff: DONE