2025-05-06 06:21 ftp://ftp.de.debian.org/debian/pool/main/m/midish/midish_1.0.4.orig.tar.gz cppcheck-options: --library=posix --library=gnu --library=bsd --inconclusive --enable=style,information --inline-suppr --template=daca2 --disable=missingInclude --suppress=unmatchedSuppression --check-library --debug-warnings --suppress=autoNoType --suppress=valueFlowBailout --suppress=bailoutUninitVar --suppress=symbolDatabaseWarning --suppress=normalCheckLevelConditionExpressions -D__GNUC__ --platform=unix64 -j3 platform: Linux-6.8.0-1022-oracle-aarch64-with-glibc2.39 python: 3.12.3 client-version: 1.3.67 compiler: g++ (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0 cppcheck: head 2.17.0 head-info: 581f101 (2025-05-05 21:13:30 +0200) count: 181 181 elapsed-time: 1.6 1.6 head-timing-info: old-timing-info: head results: midish-1.0.4/cons.c:65:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] midish-1.0.4/cons.c:84:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] midish-1.0.4/cons.c:97:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] midish-1.0.4/cons.c:103:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] midish-1.0.4/cons.c:109:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] midish-1.0.4/cons.c:115:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] midish-1.0.4/cons.c:121:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] midish-1.0.4/cons.c:127:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] midish-1.0.4/cons.c:95:16: style: Parameter 'mesg' can be declared as pointer to const [constParameterPointer] midish-1.0.4/cons.c:101:17: style: Parameter 's' can be declared as pointer to const [constParameterPointer] midish-1.0.4/cons.c:101:26: style: Parameter 'mesg' can be declared as pointer to const [constParameterPointer] midish-1.0.4/cons.c:107:34: style: Parameter 'mesg' can be declared as pointer to const [constParameterPointer] midish-1.0.4/cons.c:113:18: style: Parameter 's0' can be declared as pointer to const [constParameterPointer] midish-1.0.4/cons.c:113:28: style: Parameter 's1' can be declared as pointer to const [constParameterPointer] midish-1.0.4/cons.c:113:38: style: Parameter 'mesg' can be declared as pointer to const [constParameterPointer] midish-1.0.4/cons.c:119:18: style: Parameter 's' can be declared as pointer to const [constParameterPointer] midish-1.0.4/cons.c:119:44: style: Parameter 'mesg' can be declared as pointer to const [constParameterPointer] midish-1.0.4/cons.c:125:54: style: Parameter 'mesg' can be declared as pointer to const [constParameterPointer] midish-1.0.4/data.c:518:4: style: 'continue' is redundant since it is the last statement in a loop. [redundantContinue] midish-1.0.4/data.c:154:27: style: Parameter 'o' can be declared as pointer to const [constParameterPointer] midish-1.0.4/conv.c:68:49: style: Parameter 'ev' can be declared as pointer to const [constParameterPointer] midish-1.0.4/conv.c:89:49: style: Parameter 'ev' can be declared as pointer to const [constParameterPointer] midish-1.0.4/conv.c:106:48: style: Parameter 'ev' can be declared as pointer to const [constParameterPointer] midish-1.0.4/conv.c:212:9: warning: Shifting signed 32-bit value by 31 bits is undefined behaviour. See condition at line 211. [shiftTooManyBitsSigned] midish-1.0.4/conv.c:211:20: note: Assuming that condition 'ev->v0<32' is not redundant midish-1.0.4/conv.c:212:9: note: Shift midish-1.0.4/conv.c:220:10: warning: Shifting signed 32-bit value by 31 bits is undefined behaviour. See condition at line 218. [shiftTooManyBitsSigned] midish-1.0.4/conv.c:218:27: note: Assuming that condition 'ev->v0<64' is not redundant midish-1.0.4/conv.c:219:9: note: num is assigned 'ev->v0-32' here. midish-1.0.4/conv.c:220:10: note: Shift midish-1.0.4/conv.c:258:27: warning: Shifting signed 32-bit value by 31 bits is undefined behaviour. See condition at line 258. [shiftTooManyBitsSigned] midish-1.0.4/conv.c:258:19: note: Assuming that condition 'ev->v0<32' is not redundant midish-1.0.4/conv.c:258:27: note: Shift midish-1.0.4/conv.c:276:7: style: Variable 'rev' is assigned a value that is never used. [unreadVariable] midish-1.0.4/conv.c:311:6: style: Variable 'rev' is assigned a value that is never used. [unreadVariable] midish-1.0.4/conv.c:349:6: style: Variable 'rev' is assigned a value that is never used. [unreadVariable] midish-1.0.4/dbg.c:82:8: style: Variable 'p' can be declared as pointer to const [constVariablePointer] midish-1.0.4/exec.c:251:64: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable func [valueFlowBailoutIncompleteVar] midish-1.0.4/filt.c:60:29: style: Parameter 'from' can be declared as pointer to const [constParameterPointer] midish-1.0.4/ev.c:125:22: style: Parameter 'ev' can be declared as pointer to const [constParameterPointer] midish-1.0.4/ev.c:167:21: style: Parameter 'ev' can be declared as pointer to const [constParameterPointer] midish-1.0.4/ev.c:276:19: style: Parameter 'in' can be declared as pointer to const [constParameterPointer] midish-1.0.4/ev.c:276:38: style: Parameter 'from' can be declared as pointer to const [constParameterPointer] midish-1.0.4/ev.c:276:59: style: Parameter 'to' can be declared as pointer to const [constParameterPointer] midish-1.0.4/ev.c:338:27: style: Parameter 'o' can be declared as pointer to const [constParameterPointer] midish-1.0.4/ev.c:392:31: style: Parameter 'es' can be declared as pointer to const [constParameterPointer] midish-1.0.4/ev.c:392:46: style: Parameter 'ev' can be declared as pointer to const [constParameterPointer] midish-1.0.4/ev.c:438:26: style: Parameter 'es1' can be declared as pointer to const [constParameterPointer] midish-1.0.4/ev.c:438:46: style: Parameter 'es2' can be declared as pointer to const [constParameterPointer] midish-1.0.4/ev.c:474:28: style: Parameter 'es1' can be declared as pointer to const [constParameterPointer] midish-1.0.4/ev.c:474:48: style: Parameter 'es2' can be declared as pointer to const [constParameterPointer] midish-1.0.4/ev.c:520:26: style: Parameter 'es1' can be declared as pointer to const [constParameterPointer] midish-1.0.4/ev.c:520:46: style: Parameter 'es2' can be declared as pointer to const [constParameterPointer] midish-1.0.4/ev.c:569:30: style: Parameter 'from' can be declared as pointer to const [constParameterPointer] midish-1.0.4/ev.c:569:51: style: Parameter 'to' can be declared as pointer to const [constParameterPointer] midish-1.0.4/ev.c:605:27: style: Parameter 'in' can be declared as pointer to const [constParameterPointer] midish-1.0.4/ev.c:606:20: style: Parameter 'from' can be declared as pointer to const [constParameterPointer] midish-1.0.4/ev.c:606:41: style: Parameter 'to' can be declared as pointer to const [constParameterPointer] midish-1.0.4/builtin.c:2750:7: warning: Opposite inner 'if' condition leads to a dead code block. [oppositeInnerCondition] midish-1.0.4/builtin.c:2749:26: note: outer condition: x!=0 midish-1.0.4/builtin.c:2750:7: note: opposite inner condition: !x midish-1.0.4/builtin.c:1002:13: style: Condition 'where<0' is always false [knownConditionTrueFalse] midish-1.0.4/builtin.c:998:12: note: Assuming that condition 'where>=0' is not redundant midish-1.0.4/builtin.c:1001:25: note: Assignment 'where=usong->curpos-where', assigned value is greater than 0 midish-1.0.4/builtin.c:1002:13: note: Condition 'where<0' is always false midish-1.0.4/builtin.c:2789:6: warning: Either the condition '!arg' is redundant or there is possible null pointer dereference: arg. [nullPointerRedundantCheck] midish-1.0.4/builtin.c:2785:6: note: Assuming that condition '!arg' is not redundant midish-1.0.4/builtin.c:2789:6: note: Null pointer dereference midish-1.0.4/builtin.c:2897:6: warning: Either the condition '!arg' is redundant or there is possible null pointer dereference: arg. [nullPointerRedundantCheck] midish-1.0.4/builtin.c:2893:6: note: Assuming that condition '!arg' is not redundant midish-1.0.4/builtin.c:2897:6: note: Null pointer dereference midish-1.0.4/builtin.c:2959:6: warning: Either the condition '!arg' is redundant or there is possible null pointer dereference: arg. [nullPointerRedundantCheck] midish-1.0.4/builtin.c:2955:6: note: Assuming that condition '!arg' is not redundant midish-1.0.4/builtin.c:2959:6: note: Null pointer dereference midish-1.0.4/builtin.c:59:18: style: Local variable 'filt_debug' shadows outer variable [shadowVariable] midish-1.0.4/filt.h:72:17: note: Shadowed declaration midish-1.0.4/builtin.c:59:18: note: Shadow variable midish-1.0.4/builtin.c:59:30: style: Local variable 'mididev_debug' shadows outer variable [shadowVariable] midish-1.0.4/mididev.h:162:17: note: Shadowed declaration midish-1.0.4/builtin.c:59:30: note: Shadow variable midish-1.0.4/builtin.c:60:6: style: Local variable 'norm_debug' shadows outer variable [shadowVariable] midish-1.0.4/norm.h:48:17: note: Shadowed declaration midish-1.0.4/builtin.c:60:6: note: Shadow variable midish-1.0.4/builtin.c:60:30: style: Local variable 'song_debug' shadows outer variable [shadowVariable] midish-1.0.4/song.h:220:17: note: Shadowed declaration midish-1.0.4/builtin.c:60:30: note: Shadow variable midish-1.0.4/builtin.c:61:18: style: Local variable 'mem_debug' shadows outer variable [shadowVariable] midish-1.0.4/dbg.h:63:17: note: Shadowed declaration midish-1.0.4/builtin.c:61:18: note: Shadow variable midish-1.0.4/builtin.c:49:24: style: Parameter 'o' can be declared as pointer to const [constParameterPointer] midish-1.0.4/builtin.c:176:14: style: Variable 'arg' can be declared as pointer to const [constVariablePointer] midish-1.0.4/builtin.c:239:14: style: Variable 'arg' can be declared as pointer to const [constVariablePointer] midish-1.0.4/builtin.c:435:14: style: Variable 'arg' can be declared as pointer to const [constVariablePointer] midish-1.0.4/builtin.c:1350:18: style: Variable 't' can be declared as pointer to const [constVariablePointer] midish-1.0.4/builtin.c:1412:18: style: Variable 't' can be declared as pointer to const [constVariablePointer] midish-1.0.4/builtin.c:1927:19: style: Variable 'c' can be declared as pointer to const [constVariablePointer] midish-1.0.4/builtin.c:1954:19: style: Variable 'i' can be declared as pointer to const [constVariablePointer] midish-1.0.4/builtin.c:2081:23: style: Variable 'i' can be declared as pointer to const [constVariablePointer] midish-1.0.4/builtin.c:2287:19: style: Variable 'i' can be declared as pointer to const [constVariablePointer] midish-1.0.4/builtin.c:2571:17: style: Variable 'c' can be declared as pointer to const [constVariablePointer] midish-1.0.4/builtin.c:2585:17: style: Variable 'c' can be declared as pointer to const [constVariablePointer] midish-1.0.4/builtin.c:2769:14: style: Variable 'arg' can be declared as pointer to const [constVariablePointer] midish-1.0.4/builtin.c:1363:4: style: Variable 't' is assigned a value that is never used. [unreadVariable] midish-1.0.4/builtin.c:2297:4: style: Variable 'i' is assigned a value that is never used. [unreadVariable] midish-1.0.4/builtin.c:2598:4: style: Variable 'c' is assigned a value that is never used. [unreadVariable] midish-1.0.4/lex.c:148:21: style: Parameter 'o' can be declared as pointer to const [constParameterPointer] midish-1.0.4/main.c:67:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable optind [valueFlowBailoutIncompleteVar] midish-1.0.4/main.c:68:2: warning: Assignment of function parameter has no effect outside the function. Did you forget dereferencing it? [uselessAssignmentPtrArg] midish-1.0.4/mdep.c:98:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SIG_BLOCK [valueFlowBailoutIncompleteVar] midish-1.0.4/mdep.c:135:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ITIMER_REAL [valueFlowBailoutIncompleteVar] midish-1.0.4/mdep.c:160:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable POLLIN [valueFlowBailoutIncompleteVar] midish-1.0.4/mdep.c:264:7: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] midish-1.0.4/mdep.c:295:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SA_RESTART [valueFlowBailoutIncompleteVar] midish-1.0.4/mdep.c:309:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SA_RESTART [valueFlowBailoutIncompleteVar] midish-1.0.4/mdep.c:339:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PATH_MAX [valueFlowBailoutIncompleteVar] midish-1.0.4/mdep.c:255:18: style: Local variable 'ts' shadows outer variable [shadowVariable] midish-1.0.4/mdep.c:71:17: note: Shadowed declaration midish-1.0.4/mdep.c:255:18: note: Shadow variable midish-1.0.4/mdep.c:338:8: style: Variable 'home' can be declared as pointer to const [constVariablePointer] midish-1.0.4/mdep_raw.c:99:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDONLY [valueFlowBailoutIncompleteVar] midish-1.0.4/mdep_raw.c:144:48: style: Parameter 'buf' can be declared as pointer to const. However it seems that 'raw_write' is a callback function, if 'buf' is declared with const you might also need to cast function pointer(s). [constParameterCallback] midish-1.0.4/mdep_raw.c:59:2: note: You might need to cast the function pointer here midish-1.0.4/mdep_raw.c:144:48: note: Parameter 'buf' can be declared as pointer to const midish-1.0.4/mdep_raw.c:159:26: style: Parameter 'addr' can be declared as pointer to const. However it seems that 'raw_nfds' is a callback function, if 'addr' is declared with const you might also need to cast function pointer(s). [constParameterCallback] midish-1.0.4/mdep_raw.c:60:2: note: You might need to cast the function pointer here midish-1.0.4/mdep_raw.c:159:26: note: Parameter 'addr' can be declared as pointer to const midish-1.0.4/mdep_raw.c:167:14: style: Variable 'dev' can be declared as pointer to const [constVariablePointer] midish-1.0.4/mdep_raw.c:175:29: style: Parameter 'addr' can be declared as pointer to const. However it seems that 'raw_revents' is a callback function, if 'addr' is declared with const you might also need to cast function pointer(s). [constParameterCallback] midish-1.0.4/mdep_raw.c:62:2: note: You might need to cast the function pointer here midish-1.0.4/mdep_raw.c:175:29: note: Parameter 'addr' can be declared as pointer to const midish-1.0.4/mdep_raw.c:175:50: style: Parameter 'pfd' can be declared as pointer to const. However it seems that 'raw_revents' is a callback function, if 'pfd' is declared with const you might also need to cast function pointer(s). [constParameterCallback] midish-1.0.4/mdep_raw.c:62:2: note: You might need to cast the function pointer here midish-1.0.4/mdep_raw.c:175:50: note: Parameter 'pfd' can be declared as pointer to const midish-1.0.4/metro.c:83:12: warning: Either the condition 'o->ev==0' is redundant or there is possible null pointer dereference: o->ev. [nullPointerRedundantCheck] midish-1.0.4/metro.c:78:12: note: Assuming that condition 'o->ev==0' is not redundant midish-1.0.4/metro.c:83:12: note: Null pointer dereference midish-1.0.4/metro.c:84:12: warning: Either the condition 'o->ev==0' is redundant or there is possible null pointer dereference: o->ev. [nullPointerRedundantCheck] midish-1.0.4/metro.c:78:12: note: Assuming that condition 'o->ev==0' is not redundant midish-1.0.4/metro.c:84:12: note: Null pointer dereference midish-1.0.4/metro.c:85:17: warning: Either the condition 'o->ev==0' is redundant or there is possible null pointer dereference: o->ev. [nullPointerRedundantCheck] midish-1.0.4/metro.c:78:12: note: Assuming that condition 'o->ev==0' is not redundant midish-1.0.4/metro.c:85:17: note: Null pointer dereference midish-1.0.4/metro.c:64:26: style: Parameter 'o' can be declared as pointer to const [constParameterPointer] midish-1.0.4/frame.c:727:5: style: Variable 'sp' is reassigned a value before the old one has been used. [redundantAssignment] midish-1.0.4/frame.c:719:5: note: sp is assigned midish-1.0.4/frame.c:727:5: note: sp is overwritten midish-1.0.4/frame.c:269:44: style: Parameter 'ev' can be declared as pointer to const [constParameterPointer] midish-1.0.4/frame.c:425:20: style: Variable 'prev' can be declared as pointer to const [constVariablePointer] midish-1.0.4/frame.c:534:68: style: Parameter 's2' can be declared as pointer to const [constParameterPointer] midish-1.0.4/frame.c:927:6: style: Variable 'ofs' is assigned a value that is never used. [unreadVariable] midish-1.0.4/mixout.c:122:5: style: Variable 'os' is reassigned a value before the old one has been used. [redundantAssignment] midish-1.0.4/mixout.c:113:7: note: os is assigned midish-1.0.4/mixout.c:122:5: note: os is overwritten midish-1.0.4/mux.c:620:18: style: Variable 'dev' can be declared as pointer to const [constVariablePointer] midish-1.0.4/mux.c:654:17: style: Variable 'data' can be declared as pointer to const [constVariablePointer] midish-1.0.4/node.c:435:29: style: Parameter 'o' can be declared as pointer to const [constParameterPointer] midish-1.0.4/node.c:435:45: style: Parameter 'x' can be declared as pointer to const [constParameterPointer] midish-1.0.4/node.c:463:28: style: Parameter 'o' can be declared as pointer to const [constParameterPointer] midish-1.0.4/node.c:463:44: style: Parameter 'x' can be declared as pointer to const [constParameterPointer] midish-1.0.4/node.c:451:5: style: Variable 'v' is assigned a value that is never used. [unreadVariable] midish-1.0.4/mididev.c:199:17: style: Variable 'data' can be declared as pointer to const [constVariablePointer] midish-1.0.4/mididev.c:341:51: style: Parameter 'buf' can be declared as pointer to const [constParameterPointer] midish-1.0.4/mididev.c:530:45: style: Parameter 'ev' can be declared as pointer to const [constParameterPointer] midish-1.0.4/mididev.c:572:51: style: Parameter 'buf' can be declared as pointer to const [constParameterPointer] midish-1.0.4/rmidish.c:206:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] midish-1.0.4/rmidish.c:254:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] midish-1.0.4/rmidish.c:270:15: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] midish-1.0.4/rmidish.c:339:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PATH_MAX [valueFlowBailoutIncompleteVar] midish-1.0.4/rmidish.c:158:13: style: Condition 'count>avail' is always false [knownConditionTrueFalse] midish-1.0.4/rmidish.c:157:25: note: Assignment 'count=1024-end', assigned value is less than 1025 midish-1.0.4/rmidish.c:152:18: note: Assuming that condition 'p->buf_used==0' is not redundant midish-1.0.4/rmidish.c:153:25: note: Assignment 'avail=1024-p->buf_used', assigned value is 1024 midish-1.0.4/rmidish.c:158:13: note: Condition 'count>avail' is always false midish-1.0.4/rmidish.c:130:29: style: Parameter 'p' can be declared as pointer to const [constParameterPointer] midish-1.0.4/rmidish.c:183:28: style: Parameter 'p' can be declared as pointer to const [constParameterPointer] midish-1.0.4/rmidish.c:183:37: style: Parameter 'str' can be declared as pointer to const [constParameterPointer] midish-1.0.4/rmidish.c:337:22: style: Parameter 'argv' can be declared as const array [constParameter] midish-1.0.4/rmidish.c:387:5: style: Variable 'n' is assigned a value that is never used. [unreadVariable] midish-1.0.4/smf.c:162:59: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EOF [valueFlowBailoutIncompleteVar] midish-1.0.4/parse.c:173:29: style: Parameter 'o' can be declared as pointer to const [constParameterPointer] midish-1.0.4/parse.c:173:42: style: Parameter 'first' can be declared as pointer to const [constParameterPointer] midish-1.0.4/smf.c:66:43: style: Parameter 'mode' can be declared as pointer to const [constParameterPointer] midish-1.0.4/smf.c:191:36: style: Parameter 'hdr' can be declared as pointer to const [constParameterPointer] midish-1.0.4/smf.c:349:36: style: Parameter 'hdr' can be declared as pointer to const [constParameterPointer] midish-1.0.4/smf.c:363:58: style: Parameter 's' can be declared as pointer to const [constParameterPointer] midish-1.0.4/smf.c:476:73: style: Parameter 'songsx' can be declared as pointer to const [constParameterPointer] midish-1.0.4/smf.c:891:17: style: Variable 'sx' can be declared as pointer to const [constVariablePointer] midish-1.0.4/smf.c:786:9: style: Variable 'delta' is assigned a value that is never used. [unreadVariable] midish-1.0.4/smf.c:849:9: style: Variable 'delta' is assigned a value that is never used. [unreadVariable] midish-1.0.4/state.c:114:43: style: Parameter 'ev' can be declared as pointer to const [constParameterPointer] midish-1.0.4/state.c:127:42: style: Parameter 'ev' can be declared as pointer to const [constParameterPointer] midish-1.0.4/state.c:184:28: style: Parameter 'st' can be declared as pointer to const [constParameterPointer] midish-1.0.4/state.c:184:47: style: Parameter 'spec' can be declared as pointer to const [constParameterPointer] midish-1.0.4/state.c:260:24: style: Parameter 'st' can be declared as pointer to const [constParameterPointer] midish-1.0.4/state.c:260:39: style: Parameter 'ev' can be declared as pointer to const [constParameterPointer] midish-1.0.4/str.c:104:8: warning: Either the condition 's1==0' is redundant or there is possible null pointer dereference: s1. [nullPointerRedundantCheck] midish-1.0.4/str.c:99:9: note: Assuming that condition 's1==0' is not redundant midish-1.0.4/str.c:104:8: note: Null pointer dereference midish-1.0.4/str.c:121:15: warning: Either the condition 'val==0' is redundant or there is possible null pointer dereference: s. [nullPointerRedundantCheck] midish-1.0.4/str.c:51:10: note: Assuming that condition 'val==0' is not redundant midish-1.0.4/str.c:55:16: note: Calling function 'str_len', 1st argument 'val' value is 0 midish-1.0.4/str.c:121:15: note: Null pointer dereference midish-1.0.4/str.c:96:14: style: Parameter 's1' can be declared as pointer to const [constParameterPointer] midish-1.0.4/str.c:96:24: style: Parameter 's2' can be declared as pointer to const [constParameterPointer] midish-1.0.4/song.c:504:75: style: Parameter 'in' can be declared as pointer to const [constParameterPointer] midish-1.0.4/song.c:566:17: style: Variable 'l' can be declared as pointer to const [constVariablePointer] midish-1.0.4/song.c:755:27: style: Parameter 's' can be declared as pointer to const [constParameterPointer] midish-1.0.4/song.c:766:29: style: Parameter 's' can be declared as pointer to const [constParameterPointer] midish-1.0.4/song.c:1245:28: style: Parameter 'o' can be declared as pointer to const [constParameterPointer] midish-1.0.4/song.c:1255:29: style: Parameter 'o' can be declared as pointer to const [constParameterPointer] midish-1.0.4/song.c:1261:30: style: Parameter 'o' can be declared as pointer to const [constParameterPointer] midish-1.0.4/song.c:1267:30: style: Parameter 'o' can be declared as pointer to const [constParameterPointer] midish-1.0.4/song.c:1273:32: style: Parameter 'o' can be declared as pointer to const [constParameterPointer] midish-1.0.4/song.c:1279:30: style: Parameter 'o' can be declared as pointer to const [constParameterPointer] midish-1.0.4/song.c:1285:31: style: Parameter 'o' can be declared as pointer to const [constParameterPointer] midish-1.0.4/song.c:1303:27: style: Parameter 'o' can be declared as pointer to const [constParameterPointer] midish-1.0.4/song.c:1303:46: style: Parameter 'f' can be declared as pointer to const [constParameterPointer] midish-1.0.4/song.c:1325:26: style: Parameter 'o' can be declared as pointer to const [constParameterPointer] midish-1.0.4/song.c:1325:44: style: Parameter 'x' can be declared as pointer to const [constParameterPointer] midish-1.0.4/song.c:1335:28: style: Parameter 'o' can be declared as pointer to const [constParameterPointer] midish-1.0.4/saveload.c:646:30: style: Redundant condition: The condition 'o->lex.id == 25' is redundant since 'o->lex.id != 0' is sufficient. [redundantCondition] midish-1.0.4/saveload.c:648:23: style: Condition 'o->lex.id!=TOK_ENDLINE' is always true [knownConditionTrueFalse] midish-1.0.4/saveload.c:646:43: note: Assuming that condition 'o->lex.id!=TOK_EOF' is not redundant midish-1.0.4/saveload.c:648:23: note: Condition 'o->lex.id!=TOK_ENDLINE' is always true midish-1.0.4/textio.c:70:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdin [valueFlowBailoutIncompleteVar] midish-1.0.4/textio.c:144:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] midish-1.0.4/saveload.c:207:23: style: Variable 'snext' can be declared as pointer to const [constVariablePointer] midish-1.0.4/saveload.c:292:30: style: Parameter 'o' can be declared as pointer to const [constParameterPointer] midish-1.0.4/saveload.c:972:17: style: Variable 'info' can be declared as pointer to const [constVariablePointer] midish-1.0.4/textio.c:121:30: style: Parameter 'o' can be declared as pointer to const [constParameterPointer] midish-1.0.4/textio.c:182:41: style: Parameter 'str' can be declared as pointer to const [constParameterPointer] midish-1.0.4/user.c:382:20: style: Condition 'd->val.list' is always true [knownConditionTrueFalse] midish-1.0.4/user.c:135:22: warning: Either the condition '!arg' is redundant or there is possible null pointer dereference: arg. [nullPointerRedundantCheck] midish-1.0.4/user.c:131:6: note: Assuming that condition '!arg' is not redundant midish-1.0.4/user.c:135:22: note: Null pointer dereference midish-1.0.4/user.c:157:6: warning: Either the condition '!arg' is redundant or there is possible null pointer dereference: arg. [nullPointerRedundantCheck] midish-1.0.4/user.c:153:6: note: Assuming that condition '!arg' is not redundant midish-1.0.4/user.c:157:6: note: Null pointer dereference midish-1.0.4/user.c:242:6: warning: Either the condition '!arg' is redundant or there is possible null pointer dereference: arg. [nullPointerRedundantCheck] midish-1.0.4/user.c:238:6: note: Assuming that condition '!arg' is not redundant midish-1.0.4/user.c:242:6: note: Null pointer dereference midish-1.0.4/user.c:337:6: warning: Either the condition '!arg' is redundant or there is possible null pointer dereference: arg. [nullPointerRedundantCheck] midish-1.0.4/user.c:333:6: note: Assuming that condition '!arg' is not redundant midish-1.0.4/user.c:337:6: note: Null pointer dereference midish-1.0.4/user.c:498:21: warning: Either the condition '!arg' is redundant or there is possible null pointer dereference: arg. [nullPointerRedundantCheck] midish-1.0.4/user.c:494:6: note: Assuming that condition '!arg' is not redundant midish-1.0.4/user.c:498:21: note: Null pointer dereference midish-1.0.4/user.c:592:6: warning: Either the condition '!arg' is redundant or there is possible null pointer dereference: arg. [nullPointerRedundantCheck] midish-1.0.4/user.c:588:6: note: Assuming that condition '!arg' is not redundant midish-1.0.4/user.c:592:6: note: Null pointer dereference midish-1.0.4/user.c:329:19: style: Variable 'i' can be declared as pointer to const [constVariablePointer] midish-1.0.4/user.c:617:19: style: Variable 'i' can be declared as pointer to const [constVariablePointer] diff: DONE