2025-05-06 07:23 ftp://ftp.de.debian.org/debian/pool/main/m/mirrormagic/mirrormagic_3.3.1+dfsg1.orig.tar.xz cppcheck-options: --library=posix --library=gnu --library=bsd --library=sdl --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-59-generic-x86_64-with-glibc2.39 python: 3.12.3 client-version: 1.3.67 compiler: g++ (Ubuntu 14.2.0-4ubuntu2~24.04) 14.2.0 cppcheck: head 2.17.0 head-info: 581f101 (2025-05-05 21:13:30 +0200) count: 819 807 elapsed-time: 1165.0 1191.9 head-timing-info: old-timing-info: head results: mirrormagic-3.3.1/src/anim.c:1245:8: style:inconclusive: Found duplicate branches for 'if' and 'else'. [duplicateBranch] mirrormagic-3.3.1/src/anim.c:1237:29: note: 'mask_ce_only' is assigned value 'mask&~(0xff<<24)' here. mirrormagic-3.3.1/src/anim.c:1236:29: note: 'mask_anim_only' is assigned value 'mask&~(0xff<<24)' here. mirrormagic-3.3.1/src/anim.c:1248:3: note: Found duplicate branches for 'if' and 'else'. mirrormagic-3.3.1/src/anim.c:1245:8: note: Found duplicate branches for 'if' and 'else'. mirrormagic-3.3.1/src/anim.c:2212:7: style: Local variable 'anim_status_last' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/anim.c:257:12: note: Shadowed declaration mirrormagic-3.3.1/src/anim.c:2212:7: note: Shadow variable mirrormagic-3.3.1/src/anim.c:337:23: style: Variable 'c' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/anim.c:384:70: style: Parameter 'part' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/anim.c:730:23: style: Variable 'c' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/anim.c:921:27: style: Variable 'c' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/anim.c:941:22: style: Variable 'g' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/anim.c:1115:67: style: Parameter 'part' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/anim.c:1138:67: style: Parameter 'part' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/anim.c:1153:67: style: Parameter 'part' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/anim.c:1174:67: style: Parameter 'part' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/anim.c:1255:23: style: Variable 'c' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/anim.c:1290:23: style: Variable 'g' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/anim.c:1291:23: style: Variable 'c' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/anim.c:1460:22: style: Variable 'c' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/anim.c:1529:23: style: Variable 'g' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/anim.c:1530:23: style: Variable 'c' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/anim.c:1819:23: style: Variable 'c' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/api.c:92:14: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EOF [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/api.c:571:7: style: Condition '!SetRequest_ApiGetScore(request,data_raw)' is always false [knownConditionTrueFalse] mirrormagic-3.3.1/src/api.c:571:30: note: Calling function 'SetRequest_ApiGetScore' returns 1 mirrormagic-3.3.1/src/api.c:571:7: note: Condition '!SetRequest_ApiGetScore(request,data_raw)' is always false mirrormagic-3.3.1/src/api.c:798:7: style: Condition '!SetRequest_ApiGetScoreTape(request,data_raw)' is always false [knownConditionTrueFalse] mirrormagic-3.3.1/src/api.c:798:34: note: Calling function 'SetRequest_ApiGetScoreTape' returns 1 mirrormagic-3.3.1/src/api.c:798:7: note: Condition '!SetRequest_ApiGetScoreTape(request,data_raw)' is always false mirrormagic-3.3.1/src/api.c:999:7: style: Condition '!SetRequest_ApiRenamePlayer(request,data_raw)' is always false [knownConditionTrueFalse] mirrormagic-3.3.1/src/api.c:999:34: note: Calling function 'SetRequest_ApiRenamePlayer' returns 1 mirrormagic-3.3.1/src/api.c:999:7: note: Condition '!SetRequest_ApiRenamePlayer(request,data_raw)' is always false mirrormagic-3.3.1/src/api.c:1209:7: style: Condition '!SetRequest_ApiResetUUID(request,data_raw)' is always false [knownConditionTrueFalse] mirrormagic-3.3.1/src/api.c:1209:31: note: Calling function 'SetRequest_ApiResetUUID' returns 1 mirrormagic-3.3.1/src/api.c:1209:7: note: Condition '!SetRequest_ApiResetUUID(request,data_raw)' is always false mirrormagic-3.3.1/src/api.c:166:7: style: Local variable 'level_nr' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/libgame/system.h:1936:14: note: Shadowed declaration mirrormagic-3.3.1/src/api.c:166:7: note: Shadow variable mirrormagic-3.3.1/src/api.c:375:23: style: Local variable 'request' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/main.h:3957:27: note: Shadowed declaration mirrormagic-3.3.1/src/api.c:375:23: note: Shadow variable mirrormagic-3.3.1/src/api.c:439:7: style: Local variable 'level_nr' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/libgame/system.h:1936:14: note: Shadowed declaration mirrormagic-3.3.1/src/api.c:439:7: note: Shadow variable mirrormagic-3.3.1/src/api.c:609:23: style: Local variable 'request' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/main.h:3957:27: note: Shadowed declaration mirrormagic-3.3.1/src/api.c:609:23: note: Shadow variable mirrormagic-3.3.1/src/api.c:713:7: style: Local variable 'level_nr' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/libgame/system.h:1936:14: note: Shadowed declaration mirrormagic-3.3.1/src/api.c:713:7: note: Shadow variable mirrormagic-3.3.1/src/api.c:836:23: style: Local variable 'request' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/main.h:3957:27: note: Shadowed declaration mirrormagic-3.3.1/src/api.c:836:23: note: Shadow variable mirrormagic-3.3.1/src/api.c:1033:23: style: Local variable 'request' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/main.h:3957:27: note: Shadowed declaration mirrormagic-3.3.1/src/api.c:1033:23: note: Shadow variable mirrormagic-3.3.1/src/api.c:1243:23: style: Local variable 'request' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/main.h:3957:27: note: Shadowed declaration mirrormagic-3.3.1/src/api.c:1243:23: note: Shadow variable mirrormagic-3.3.1/src/api.c:132:14: style: Parameter 'score_tape_filename' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/api.c:260:61: style: Parameter 'response' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/api.c:261:18: style: Parameter 'data_raw' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/api.c:419:9: style: Variable 'score_cache_filename' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/api.c:438:33: style: Variable 'data' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/api.c:654:9: style: Variable 'score_tape_filename' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/api.c:674:37: style: Variable 'data' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/api.c:699:65: style: Parameter 'response' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/api.c:933:65: style: Parameter 'response' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/api.c:934:15: style: Parameter 'data_raw' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/api.c:1073:50: style: Parameter 'uuid_new' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/api.c:1140:34: style: Variable 'data' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/conf_act.c:21:7: style: struct member 'Anonymous0::element' is never used. [unusedStructMember] mirrormagic-3.3.1/src/conf_act.c:22:7: style: struct member 'Anonymous0::element_active' is never used. [unusedStructMember] mirrormagic-3.3.1/src/conf_act.c:343:7: style: struct member 'Anonymous1::button' is never used. [unusedStructMember] mirrormagic-3.3.1/src/conf_act.c:344:7: style: struct member 'Anonymous1::button_active' is never used. [unusedStructMember] mirrormagic-3.3.1/src/conf_act.c:469:7: style: struct member 'Anonymous2::font_nr' is never used. [unusedStructMember] mirrormagic-3.3.1/src/conf_act.c:470:7: style: struct member 'Anonymous2::font_nr_active' is never used. [unusedStructMember] mirrormagic-3.3.1/src/conf_chr.c:765:40: error: syntax error [syntaxError] mirrormagic-3.3.1/src/conf_cus.c:2065:41: error: syntax error [syntaxError] mirrormagic-3.3.1/src/conf_e2g.c:21:7: style: struct member 'Anonymous0::element' is never used. [unusedStructMember] mirrormagic-3.3.1/src/conf_e2g.c:22:7: style: struct member 'Anonymous0::action' is never used. [unusedStructMember] mirrormagic-3.3.1/src/conf_e2g.c:23:7: style: struct member 'Anonymous0::direction' is never used. [unusedStructMember] mirrormagic-3.3.1/src/conf_e2g.c:26:7: style: struct member 'Anonymous0::graphic' is never used. [unusedStructMember] mirrormagic-3.3.1/src/conf_e2s.c:21:7: style: struct member 'Anonymous0::element' is never used. [unusedStructMember] mirrormagic-3.3.1/src/conf_e2s.c:23:7: style: struct member 'Anonymous0::action' is never used. [unusedStructMember] mirrormagic-3.3.1/src/conf_e2s.c:25:7: style: struct member 'Anonymous0::sound' is never used. [unusedStructMember] mirrormagic-3.3.1/src/conf_emp.c:145:44: error: syntax error [syntaxError] mirrormagic-3.3.1/src/conf_esg.c:21:7: style: struct member 'Anonymous0::element' is never used. [unusedStructMember] mirrormagic-3.3.1/src/conf_esg.c:22:7: style: struct member 'Anonymous0::special' is never used. [unusedStructMember] mirrormagic-3.3.1/src/conf_esg.c:24:7: style: struct member 'Anonymous0::graphic' is never used. [unusedStructMember] mirrormagic-3.3.1/src/conf_fnt.c:21:7: style: struct member 'Anonymous0::font_nr' is never used. [unusedStructMember] mirrormagic-3.3.1/src/conf_fnt.c:22:7: style: struct member 'Anonymous0::special' is never used. [unusedStructMember] mirrormagic-3.3.1/src/conf_fnt.c:24:7: style: struct member 'Anonymous0::graphic' is never used. [unusedStructMember] mirrormagic-3.3.1/src/conf_g2m.c:21:7: style: struct member 'Anonymous0::gamemode' is never used. [unusedStructMember] mirrormagic-3.3.1/src/conf_g2m.c:23:7: style: struct member 'Anonymous0::music' is never used. [unusedStructMember] mirrormagic-3.3.1/src/conf_g2s.c:21:7: style: struct member 'Anonymous0::gamemode' is never used. [unusedStructMember] mirrormagic-3.3.1/src/conf_g2s.c:23:7: style: struct member 'Anonymous0::sound' is never used. [unusedStructMember] mirrormagic-3.3.1/src/conf_grp.c:273:39: error: syntax error [syntaxError] mirrormagic-3.3.1/src/editor.c:7986:36: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable DATE_SRC_LEVELFILE [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/editor.c:12091:31: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable KMOD_LSHIFT [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/editor.c:13507:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable KMOD_LCTRL [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/editor.c:14304:28: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable KMOD_LCTRL [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/editor.c:14825:21: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDLK_DELETE [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/editor.c:15010:45: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable KMOD_LALT [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/editor.c:15116:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable KMOD_LCTRL [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/editor.c:0:0: debug: ValueFlow maximum iterations exceeded [valueFlowMaxIterations] mirrormagic-3.3.1/src/editor.c:13569:20: style: Condition 'new_element==old_element' is always false [knownConditionTrueFalse] mirrormagic-3.3.1/src/editor.c:5660:11: warning: Either the condition 'gi==NULL' is redundant or there is possible null pointer dereference: gi. [nullPointerRedundantCheck] mirrormagic-3.3.1/src/editor.c:7321:12: note: Assuming that condition 'gi==NULL' is not redundant mirrormagic-3.3.1/src/editor.c:7326:28: note: Calling function 'getRightGadgetBorder', 1st argument 'gi' value is 0 mirrormagic-3.3.1/src/editor.c:5660:11: note: Null pointer dereference mirrormagic-3.3.1/src/editor.c:5660:19: warning: Either the condition 'gi==NULL' is redundant or there is possible null pointer dereference: gi. [nullPointerRedundantCheck] mirrormagic-3.3.1/src/editor.c:7321:12: note: Assuming that condition 'gi==NULL' is not redundant mirrormagic-3.3.1/src/editor.c:7326:28: note: Calling function 'getRightGadgetBorder', 1st argument 'gi' value is 0 mirrormagic-3.3.1/src/editor.c:5660:19: note: Null pointer dereference mirrormagic-3.3.1/src/editor.c:6645:12: warning: Either the condition 'gi==NULL' is redundant or there is possible null pointer dereference: gi. [nullPointerRedundantCheck] mirrormagic-3.3.1/src/editor.c:6638:14: note: Assuming that condition 'gi==NULL' is not redundant mirrormagic-3.3.1/src/editor.c:6645:12: note: Null pointer dereference mirrormagic-3.3.1/src/editor.c:6707:7: warning: Either the condition 'gi==NULL' is redundant or there is possible null pointer dereference: gi. [nullPointerRedundantCheck] mirrormagic-3.3.1/src/editor.c:6700:9: note: Assuming that condition 'gi==NULL' is not redundant mirrormagic-3.3.1/src/editor.c:6707:7: note: Null pointer dereference mirrormagic-3.3.1/src/editor.c:12754:12: style: Local variable 'request' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/main.h:3957:27: note: Shadowed declaration mirrormagic-3.3.1/src/editor.c:12754:12: note: Shadow variable mirrormagic-3.3.1/src/editor.c:13621:13: style: Local variable 'last_sx' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/editor.c:13406:14: note: Shadowed declaration mirrormagic-3.3.1/src/editor.c:13621:13: note: Shadow variable mirrormagic-3.3.1/src/editor.c:13622:13: style: Local variable 'last_sy' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/editor.c:13407:14: note: Shadowed declaration mirrormagic-3.3.1/src/editor.c:13622:13: note: Shadow variable mirrormagic-3.3.1/src/editor.c:13658:13: style: Local variable 'last_sx' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/editor.c:13406:14: note: Shadowed declaration mirrormagic-3.3.1/src/editor.c:13658:13: note: Shadow variable mirrormagic-3.3.1/src/editor.c:13659:13: style: Local variable 'last_sy' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/editor.c:13407:14: note: Shadowed declaration mirrormagic-3.3.1/src/editor.c:13659:13: note: Shadow variable mirrormagic-3.3.1/src/editor.c:5658:52: style: Parameter 'gi' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/editor.c:6071:12: style: Variable 'stop' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/editor.c:6258:22: style: Variable 'gi' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/editor.c:6261:8: style: Variable 'value' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/editor.c:6322:24: style: Variable 'pos' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/editor.c:6889:25: style: Variable 'gd2' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/editor.c:7906:24: style: Variable 'last_copied_leveldir' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/editor.c:7965:66: style: Parameter 'former_name' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/editor.c:8770:26: style: Variable 'vp_door_1' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/editor.c:9142:71: style: Parameter 'pos' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/editor.c:9173:9: style: Variable 'drawing_elements' can be declared as const array [constVariable] mirrormagic-3.3.1/src/editor.c:9235:22: style: Variable 'gd_gi1' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/editor.c:9236:22: style: Variable 'gd_gi4' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/editor.c:9258:22: style: Variable 'gd_gi1' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/editor.c:10666:23: style: Variable 'gd' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/editor.c:10760:24: style: Variable 'gi' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/editor.c:12568:11: style: Variable 'format' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/editor.c:12580:8: style: Variable 'prefix' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/editor.c:12740:26: style: Variable 'gi' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/editor.c:13873:55: style: Parameter 'gi' can be declared as pointer to const. However it seems that 'HandleTextInputGadgets' is a callback function, if 'gi' is declared with const you might also need to cast function pointer(s). [constParameterCallback] mirrormagic-3.3.1/src/editor.c:6824:30: note: You might need to cast the function pointer here mirrormagic-3.3.1/src/editor.c:13873:55: note: Parameter 'gi' can be declared as pointer to const mirrormagic-3.3.1/src/editor.c:13894:54: style: Parameter 'gi' can be declared as pointer to const. However it seems that 'HandleTextAreaGadgets' is a callback function, if 'gi' is declared with const you might also need to cast function pointer(s). [constParameterCallback] mirrormagic-3.3.1/src/editor.c:6871:30: note: You might need to cast the function pointer here mirrormagic-3.3.1/src/editor.c:13894:54: note: Parameter 'gi' can be declared as pointer to const mirrormagic-3.3.1/src/editor.c:13955:56: style: Parameter 'gi' can be declared as pointer to const. However it seems that 'HandleTextbuttonGadgets' is a callback function, if 'gi' is declared with const you might also need to cast function pointer(s). [constParameterCallback] mirrormagic-3.3.1/src/editor.c:7030:30: note: You might need to cast the function pointer here mirrormagic-3.3.1/src/editor.c:13955:56: note: Parameter 'gi' can be declared as pointer to const mirrormagic-3.3.1/src/editor.c:14150:51: style: Parameter 'gi' can be declared as pointer to const. However it seems that 'HandleRadiobuttons' is a callback function, if 'gi' is declared with const you might also need to cast function pointer(s). [constParameterCallback] mirrormagic-3.3.1/src/editor.c:7318:30: note: You might need to cast the function pointer here mirrormagic-3.3.1/src/editor.c:14150:51: note: Parameter 'gi' can be declared as pointer to const mirrormagic-3.3.1/src/editor.c:14993:24: style: Variable 'gi' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/editor.c:15038:51: style: Parameter 'gi' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/editor.c:15154:8: style: Variable 'text' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/editor.c:15265:28: style: Variable 'vp_door_1' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/editor.c:15266:28: style: Variable 'vp_door_2' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/events.c:63:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_MOUSEMOTION [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/events.c:91:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_MOUSEBUTTONDOWN [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/events.c:154:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_MOUSEMOTION [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/events.c:500:4: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDLK_UNKNOWN [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/events.c:541:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_MOUSEBUTTONDOWN [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/events.c:639:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_WINDOWEVENT_RESIZED [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/events.c:738:36: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_FINGERUP [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/events.c:859:29: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDLK_UNKNOWN [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/events.c:1028:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_FINGERUP [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/events.c:1221:29: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDLK_UNKNOWN [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/events.c:1412:27: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable KMOD_LSHIFT [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/events.c:1448:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_APP_WILLENTERBACKGROUND [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/events.c:1460:36: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_KEYDOWN [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/events.c:1772:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDLK_RETURN [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/events.c:1945:29: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable KMOD_LCTRL [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/events.c:2056:36: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDLK_LEFT [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/events.c:2639:15: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDLK_ESCAPE [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/events.c:2779:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDLK_SPACE [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/events.c:1743:7: style: Condition 'handle_gadgets' is always true [knownConditionTrueFalse] mirrormagic-3.3.1/src/events.c:1699:28: note: Assignment 'handle_gadgets=1', assigned value is 1 mirrormagic-3.3.1/src/events.c:1737:29: note: Assuming condition is false mirrormagic-3.3.1/src/events.c:1743:7: note: Condition 'handle_gadgets' is always true mirrormagic-3.3.1/src/events.c:2066:22: style: Condition 'HandleKeysDebug(key,key_status)' is always false [knownConditionTrueFalse] mirrormagic-3.3.1/src/events.c:2066:22: note: Calling function 'HandleKeysDebug' returns 0 mirrormagic-3.3.1/src/events.c:2066:22: note: Condition 'HandleKeysDebug(key,key_status)' is always false mirrormagic-3.3.1/src/events.c:2611:7: style: Local variable 'joystick' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/libgame/system.h:1929:28: note: Shadowed declaration mirrormagic-3.3.1/src/events.c:2611:7: note: Shadow variable mirrormagic-3.3.1/src/events.c:61:35: style: Parameter 'userdata' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/events.c:83:16: style: Variable 'motion' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/events.c:518:37: style: Parameter 'event' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/events.c:549:37: style: Parameter 'event' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/events.c:564:35: style: Parameter 'event' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/events.c:603:37: style: Parameter 'event' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/events.c:857:57: style: Parameter 'event' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/events.c:1423:33: style: Parameter 'event' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/events.c:1446:47: style: Parameter 'event' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/events.c:1677:33: style: Parameter 'event' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/events.c:2757:48: style: Parameter 'event' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/files.c:1521:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable DATE_SRC_CLOCK [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/files.c:2529:32: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable DATE_SRC_LEVELFILE [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/files.c:3572:40: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LoadLevel_VERS [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/files.c:8350:39: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LoadTape_VERS [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/files.c:8839:55: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EOF [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/files.c:9053:40: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LoadScore_VERS [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/files.c:10557:28: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDLK_F1 [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/files.c:11784:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDLK_UNKNOWN [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/files.c:12127:35: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable x [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/files.c:12392:37: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable x [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/files.c:13643:15: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/files.c:13706:51: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_PIXELFORMAT_ARGB8888 [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/files.c:1514:20: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] mirrormagic-3.3.1/src/files.c:1643:7: style:inconclusive: Found duplicate branches for 'if' and 'else'. [duplicateBranch] mirrormagic-3.3.1/src/files.c:1645:7: note: Found duplicate branches for 'if' and 'else'. mirrormagic-3.3.1/src/files.c:1643:7: note: Found duplicate branches for 'if' and 'else'. mirrormagic-3.3.1/src/files.c:1695:7: style:inconclusive: Found duplicate branches for 'if' and 'else'. [duplicateBranch] mirrormagic-3.3.1/src/files.c:1697:7: note: Found duplicate branches for 'if' and 'else'. mirrormagic-3.3.1/src/files.c:1695:7: note: Found duplicate branches for 'if' and 'else'. mirrormagic-3.3.1/src/files.c:12805:4: style:inconclusive: Found duplicate branches for 'if' and 'else'. [duplicateBranch] mirrormagic-3.3.1/src/files.c:12807:4: note: Found duplicate branches for 'if' and 'else'. mirrormagic-3.3.1/src/files.c:12805:4: note: Found duplicate branches for 'if' and 'else'. mirrormagic-3.3.1/src/files.c:7477:68: style: Same expression in both branches of ternary operator. [duplicateExpressionTernary] mirrormagic-3.3.1/src/files.c:1514:14: style: Variable 'now' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/files.c:1556:66: style: Parameter 'change' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/files.c:1573:9: style: Variable 'default_description' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/files.c:1590:9: style: Variable 'default_description' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/files.c:1617:8: style: Variable 'default_string' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/files.c:1667:8: style: Variable 'string' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/files.c:1674:7: style: Variable 'element_array' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/files.c:1869:28: style: Variable 'level_mm' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/files.c:2146:54: style: Parameter 'extension' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/files.c:2257:36: style: Parameter 'filetype_id' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/files.c:3658:14: style: Variable 'ball_xy' can be declared as const array [constVariable] mirrormagic-3.3.1/src/files.c:4008:22: style: Variable 'port' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/files.c:6669:60: style: Parameter 'level' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/files.c:6867:25: style: Variable 'level_file_info' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/files.c:6951:57: style: Parameter 'level' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/files.c:6961:57: style: Parameter 'level' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/files.c:7024:57: style: Parameter 'level' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/files.c:7035:57: style: Parameter 'level' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/files.c:7063:57: style: Parameter 'level' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/files.c:7525:10: style: Variable 'element_array' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/files.c:7550:21: style: Variable 'content' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/files.c:7581:57: style: Parameter 'level' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/files.c:7594:57: style: Parameter 'level' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/files.c:7662:28: style: Variable 'group' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/files.c:7682:23: style: Variable 'ei' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/files.c:7961:44: style: Parameter 'tape' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/files.c:8447:52: style: Parameter 'tape' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/files.c:8455:56: style: Parameter 'tape' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/files.c:8485:56: style: Parameter 'tape' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/files.c:8491:56: style: Parameter 'tape' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/files.c:8504:56: style: Parameter 'tape' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/files.c:9136:58: style: Parameter 'scores' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/files.c:9142:58: style: Parameter 'scores' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/files.c:9156:58: style: Parameter 'scores' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/files.c:9169:58: style: Parameter 'scores' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/files.c:9177:58: style: Parameter 'scores' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/files.c:9185:58: style: Parameter 'scores' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/files.c:9193:58: style: Parameter 'scores' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/files.c:9343:13: style: Variable 'value' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/files.c:10725:38: style: Parameter 'setup_value' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/files.c:10820:13: style: Variable 'value_string' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/files.c:11405:11: style: Variable 'value' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/files.c:11418:9: style: Variable 'value' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/files.c:11507:35: style: Variable 'gaeli' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/files.c:11515:43: style: Parameter 's' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/files.c:11553:9: style: Variable 'pattern_1' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/files.c:11639:9: style: Variable 'pattern_1' can be declared as const array [constVariable] mirrormagic-3.3.1/src/files.c:12890:11: style: Variable 'value' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/files.c:12944:9: style: Variable 'filename_music' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/files.c:13010:11: style: Variable 'value' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/files.c:13269:11: style: Variable 'element_value' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/files.c:13269:27: style: Variable 'action_value' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/files.c:13269:42: style: Variable 'direction_value' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/files.c:13691:9: style: Variable 'filename_png' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/files.c:2850:15: style: Variable 'element' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/game.c:4081:31: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDLK_UNKNOWN [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/game.c:5975:30: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable shield_normal_time_left [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/game.c:6248:27: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable shield_normal_time_left [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/game.c:7110:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable shield_normal_time_left [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/game.c:8408:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable shield_normal_time_left [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/game.c:8753:50: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable MovPos [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/game.c:10651:40: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable shield_normal_time_left [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/game.c:13514:41: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable initial_element [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/game.c:13678:48: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable initial_element [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/game.c:13729:47: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable initial_element [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/game.c:13794:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable shield_normal_time_left [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/game.c:13884:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable shield_normal_time_left [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/game.c:13941:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable shield_normal_time_left [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/game.c:14066:8: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable shield_normal_time_left [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/game.c:14072:8: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable shield_normal_time_left [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/game.c:14670:6: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable shield_normal_time_left [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/game.c:15250:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_MIX_MAXVOLUME [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/game.c:1851:6: warning: Either the condition 'x>0' is redundant or the array 'Tile[128][128]' is accessed at index Tile[128][*], which is out of bounds. [arrayIndexOutOfBoundsCond] mirrormagic-3.3.1/src/game.c:1850:18: note: Assuming that condition 'x>0' is not redundant mirrormagic-3.3.1/src/game.c:1851:6: note: Array index out of bounds mirrormagic-3.3.1/src/game.c:1853:6: warning: Either the condition 'y>0' is redundant or the array 'Tile[128][128]' is accessed at index Tile[*][128], which is out of bounds. [arrayIndexOutOfBoundsCond] mirrormagic-3.3.1/src/game.c:1852:18: note: Assuming that condition 'y>0' is not redundant mirrormagic-3.3.1/src/game.c:1853:6: note: Array index out of bounds mirrormagic-3.3.1/src/game.c:1855:6: warning: Either the condition 'y>0' is redundant or the array 'Tile[128][128]' is accessed at index Tile[*][128], which is out of bounds. [arrayIndexOutOfBoundsCond] mirrormagic-3.3.1/src/game.c:1854:18: note: Assuming that condition 'y>0' is not redundant mirrormagic-3.3.1/src/game.c:1855:6: note: Array index out of bounds mirrormagic-3.3.1/src/game.c:1857:6: warning: Either the condition 'y>0' is redundant or the array 'Tile[128][128]' is accessed at index Tile[*][128], which is out of bounds. [arrayIndexOutOfBoundsCond] mirrormagic-3.3.1/src/game.c:1856:18: note: Assuming that condition 'y>0' is not redundant mirrormagic-3.3.1/src/game.c:1857:6: note: Array index out of bounds mirrormagic-3.3.1/src/game.c:9783:11: warning: Either the condition '(y)>=0' is redundant or the array 'Tile[128][128]' is accessed at index Tile[-2][-1], which is out of bounds. [negativeIndex] mirrormagic-3.3.1/src/game.c:9764:6: note: Assuming that condition '(y)>=0' is not redundant mirrormagic-3.3.1/src/game.c:9783:11: note: Negative array index mirrormagic-3.3.1/src/game.c:9783:25: warning: Either the condition '(y)>=0' is redundant or the array 'Store[128][128]' is accessed at index Store[-2][-1], which is out of bounds. [negativeIndex] mirrormagic-3.3.1/src/game.c:9764:6: note: Assuming that condition '(y)>=0' is not redundant mirrormagic-3.3.1/src/game.c:9783:25: note: Negative array index mirrormagic-3.3.1/src/game.c:9784:12: warning: Either the condition '(y)>=0' is redundant or the array 'Store[128][128]' is accessed at index Store[-2][-1], which is out of bounds. [negativeIndex] mirrormagic-3.3.1/src/game.c:9764:6: note: Assuming that condition '(y)>=0' is not redundant mirrormagic-3.3.1/src/game.c:9784:12: note: Negative array index mirrormagic-3.3.1/src/game.c:9785:13: warning: Either the condition '(y)>=0' is redundant or the array 'GfxDir[128][128]' is accessed at index GfxDir[-2][-1], which is out of bounds. [negativeIndex] mirrormagic-3.3.1/src/game.c:9764:6: note: Assuming that condition '(y)>=0' is not redundant mirrormagic-3.3.1/src/game.c:9785:13: note: Negative array index mirrormagic-3.3.1/src/game.c:9785:28: warning: Either the condition '(y)>=0' is redundant or the array 'MovDir[128][128]' is accessed at index MovDir[-2][-1], which is out of bounds. [negativeIndex] mirrormagic-3.3.1/src/game.c:9764:6: note: Assuming that condition '(y)>=0' is not redundant mirrormagic-3.3.1/src/game.c:9785:28: note: Negative array index mirrormagic-3.3.1/src/game.c:15097:7: warning: Either the condition 'new_element==-1' is redundant or the array 'element_info[0]' is accessed at index -1, which is out of bounds. [negativeIndex] mirrormagic-3.3.1/src/game.c:15114:19: note: Assuming that condition 'new_element==-1' is not redundant mirrormagic-3.3.1/src/game.c:15107:17: note: Assignment to 'new_element=drop_element' mirrormagic-3.3.1/src/game.c:15097:7: note: Negative array index mirrormagic-3.3.1/src/game.c:6621:19: warning: Opposite inner 'if' condition leads to a dead code block. [oppositeInnerCondition] mirrormagic-3.3.1/src/game.c:6612:43: note: outer condition: element==(1253+11)||element==(1253+12)||element==(1253+13) mirrormagic-3.3.1/src/game.c:6621:19: note: opposite inner condition: element==316 mirrormagic-3.3.1/src/game.c:6670:19: warning: Opposite inner 'if' condition leads to a dead code block. [oppositeInnerCondition] mirrormagic-3.3.1/src/game.c:6661:43: note: outer condition: element==(1253+11)||element==(1253+12)||element==(1253+13) mirrormagic-3.3.1/src/game.c:6670:19: note: opposite inner condition: element==316 mirrormagic-3.3.1/src/game.c:13712:9: style: Condition 'object_hit' is always true [knownConditionTrueFalse] mirrormagic-3.3.1/src/game.c:13710:18: note: Assignment 'object_hit=1', assigned value is 1 mirrormagic-3.3.1/src/game.c:13712:9: note: Condition 'object_hit' is always true mirrormagic-3.3.1/src/game.c:10120:41: style: Same value in both branches of ternary operator. [duplicateValueTernary] mirrormagic-3.3.1/src/game.c:1835:15: style: Variable 'element' is reassigned a value before the old one has been used. [redundantAssignment] mirrormagic-3.3.1/src/game.c:1832:15: note: element is assigned mirrormagic-3.3.1/src/game.c:1835:15: note: element is overwritten mirrormagic-3.3.1/src/game.c:13710:16: style: Redundant initialization for 'object_hit'. The initialized value is overwritten before it is read. [redundantInitialization] mirrormagic-3.3.1/src/game.c:13706:24: note: object_hit is initialized mirrormagic-3.3.1/src/game.c:13710:16: note: object_hit is overwritten mirrormagic-3.3.1/src/game.c:12879:3: style:inconclusive: Statements following 'return' will never be executed. [unreachableCode] mirrormagic-3.3.1/src/game.c:6446:9: style: Local variable 'element' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/game.c:6428:7: note: Shadowed declaration mirrormagic-3.3.1/src/game.c:6446:9: note: Shadow variable mirrormagic-3.3.1/src/game.c:6464:9: style: Local variable 'element' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/game.c:6428:7: note: Shadowed declaration mirrormagic-3.3.1/src/game.c:6464:9: note: Shadow variable mirrormagic-3.3.1/src/game.c:10192:11: style: Local variable 'element' shadows outer argument [shadowArgument] mirrormagic-3.3.1/src/game.c:10061:58: note: Shadowed declaration mirrormagic-3.3.1/src/game.c:10192:11: note: Shadow variable mirrormagic-3.3.1/src/game.c:10297:11: style: Local variable 'element' shadows outer argument [shadowArgument] mirrormagic-3.3.1/src/game.c:10061:58: note: Shadowed declaration mirrormagic-3.3.1/src/game.c:10297:11: note: Shadow variable mirrormagic-3.3.1/src/game.c:10446:10: style: Local variable 'element' shadows outer argument [shadowArgument] mirrormagic-3.3.1/src/game.c:10061:58: note: Shadowed declaration mirrormagic-3.3.1/src/game.c:10446:10: note: Shadow variable mirrormagic-3.3.1/src/game.c:10507:7: style: Local variable 'element' shadows outer argument [shadowArgument] mirrormagic-3.3.1/src/game.c:10061:58: note: Shadowed declaration mirrormagic-3.3.1/src/game.c:10507:7: note: Shadow variable mirrormagic-3.3.1/src/game.c:12289:11: style: Local variable 'x' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/game.c:12187:10: note: Shadowed declaration mirrormagic-3.3.1/src/game.c:12289:11: note: Shadow variable mirrormagic-3.3.1/src/game.c:12290:11: style: Local variable 'y' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/game.c:12187:13: note: Shadowed declaration mirrormagic-3.3.1/src/game.c:12290:11: note: Shadow variable mirrormagic-3.3.1/src/game.c:12326:6: style: Local variable 'element' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/game.c:12187:16: note: Shadowed declaration mirrormagic-3.3.1/src/game.c:12326:6: note: Shadow variable mirrormagic-3.3.1/src/game.c:12600:11: style: Local variable 'element' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/game.c:12187:16: note: Shadowed declaration mirrormagic-3.3.1/src/game.c:12600:11: note: Shadow variable mirrormagic-3.3.1/src/game.c:16288:25: style: Local variable 'gfx' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/libgame/system.h:1925:24: note: Shadowed declaration mirrormagic-3.3.1/src/game.c:16288:25: note: Shadow variable mirrormagic-3.3.1/src/game.c:5424:39: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] mirrormagic-3.3.1/src/game.c:5424:67: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] mirrormagic-3.3.1/src/game.c:5425:39: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] mirrormagic-3.3.1/src/game.c:5425:67: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] mirrormagic-3.3.1/src/game.c:5434:39: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] mirrormagic-3.3.1/src/game.c:5434:67: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] mirrormagic-3.3.1/src/game.c:5435:39: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] mirrormagic-3.3.1/src/game.c:5435:67: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] mirrormagic-3.3.1/src/game.c:12827:32: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] mirrormagic-3.3.1/src/game.c:12827:59: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] mirrormagic-3.3.1/src/game.c:12828:32: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] mirrormagic-3.3.1/src/game.c:12828:59: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] mirrormagic-3.3.1/src/game.c:12843:32: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] mirrormagic-3.3.1/src/game.c:12843:59: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] mirrormagic-3.3.1/src/game.c:12844:32: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] mirrormagic-3.3.1/src/game.c:12844:59: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] mirrormagic-3.3.1/src/game.c:2363:25: style: Variable 'pos' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/game.c:2643:34: style: Variable 'gpc' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/game.c:2863:13: style: Variable 's' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/game.c:3299:33: style: Variable 'change' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/game.c:4580:14: style: Variable 'xy' can be declared as const array [constVariable] mirrormagic-3.3.1/src/game.c:4669:22: style: Variable 'ei' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/game.c:6250:24: style: Variable 'player' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/game.c:6334:14: style: Variable 'belt_base_element' can be declared as const array [constVariable] mirrormagic-3.3.1/src/game.c:6341:14: style: Variable 'belt_base_active_element' can be declared as const array [constVariable] mirrormagic-3.3.1/src/game.c:6399:14: style: Variable 'belt_base_element' can be declared as const array [constVariable] mirrormagic-3.3.1/src/game.c:6406:14: style: Variable 'belt_base_active_element' can be declared as const array [constVariable] mirrormagic-3.3.1/src/game.c:6413:14: style: Variable 'belt_base_switch_element' can be declared as const array [constVariable] mirrormagic-3.3.1/src/game.c:6420:14: style: Variable 'belt_move_dir' can be declared as const array [constVariable] mirrormagic-3.3.1/src/game.c:7329:21: style: Variable 'player' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/game.c:7459:18: style: Variable 'check_pos' can be declared as const array [constVariable] mirrormagic-3.3.1/src/game.c:7694:21: style: Variable 'player' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/game.c:7762:16: style: Variable 'test_dir' can be declared as const array [constVariable] mirrormagic-3.3.1/src/game.c:7843:24: style: Variable 'player' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/game.c:8739:23: style: Variable 'ei' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/game.c:9011:24: style: Variable 'player' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/game.c:9417:8: style: Variable 'life_parameter' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/game.c:11262:48: style: Parameter 'player' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/game.c:11554:13: style: Parameter 'tape_action' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/game.c:11565:31: style: Parameter 'mouse_action' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/game.c:11782:55: style: Parameter 'mouse_action' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/game.c:11783:34: style: Parameter 'mouse_action_last' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/game.c:12288:26: style: Variable 'player' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/game.c:12683:24: style: Variable 'player' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/game.c:12742:53: style: Parameter 'player' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/game.c:12813:47: style: Parameter 'player' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/game.c:13364:38: style: Parameter 'player' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/game.c:13422:22: style: Variable 'player' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/game.c:13469:14: style: Variable 'touch_dir' can be declared as const array [constVariable] mirrormagic-3.3.1/src/game.c:13492:26: style: Variable 'player' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/game.c:13523:26: style: Variable 'player' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/game.c:13604:14: style: Variable 'touch_dir' can be declared as const array [constVariable] mirrormagic-3.3.1/src/game.c:13748:14: style: Variable 'test_dir' can be declared as const array [constVariable] mirrormagic-3.3.1/src/game.c:13807:14: style: Variable 'touch_dir' can be declared as const array [constVariable] mirrormagic-3.3.1/src/game.c:13814:14: style: Variable 'test_dir' can be declared as const array [constVariable] mirrormagic-3.3.1/src/game.c:13849:21: style: Variable 'player' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/game.c:13914:26: style: Variable 'player' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/game.c:14183:56: style: Parameter 'player' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/game.c:15725:9: style: Variable 'game_over_text' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/game.c:15726:9: style: Variable 'play_again_text' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/game.c:15876:14: style: Variable 'belt_base_active_element' can be declared as const array [constVariable] mirrormagic-3.3.1/src/game.c:16729:50: style: Parameter 'gi' can be declared as pointer to const. However it seems that 'HandleGameButtons' is a callback function, if 'gi' is declared with const you might also need to cast function pointer(s). [constParameterCallback] mirrormagic-3.3.1/src/game.c:16366:30: note: You might need to cast the function pointer here mirrormagic-3.3.1/src/game.c:16729:50: note: Parameter 'gi' can be declared as pointer to const mirrormagic-3.3.1/src/game.c:5299:39: error: Uninitialized struct member: last_added_entry.score [uninitStructMember] mirrormagic-3.3.1/src/game.c:5299:39: error: Uninitialized struct member: last_added_entry.time [uninitStructMember] mirrormagic-3.3.1/src/game.c:5299:39: error: Uninitialized struct member: last_added_entry.id [uninitStructMember] mirrormagic-3.3.1/src/game.c:16177:7: style: struct member 'Anonymous22::gadget_id' is never used. [unusedStructMember] mirrormagic-3.3.1/src/game.c:8231:19: style: Variable 'can_fall_right' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/game.c:8235:16: style: Variable 'can_fall_both' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/game_em/convert.c:430:11: style: Local variable 'x' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/game_em/convert.c:264:13: note: Shadowed declaration mirrormagic-3.3.1/src/game_em/convert.c:430:11: note: Shadow variable mirrormagic-3.3.1/src/game_em/convert.c:431:11: style: Local variable 'y' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/game_em/convert.c:264:16: note: Shadowed declaration mirrormagic-3.3.1/src/game_em/convert.c:431:11: note: Shadow variable mirrormagic-3.3.1/src/game_em/graphics.c:270:5: style: Variable 'dst_y' is assigned an expression that holds the same value. [redundantAssignment] mirrormagic-3.3.1/src/game_em/graphics.c:264:11: note: dst_y is assigned 'y1' here. mirrormagic-3.3.1/src/game_em/graphics.c:270:5: note: Variable 'dst_y' is assigned an expression that holds the same value. mirrormagic-3.3.1/src/game_em/graphics.c:290:5: style: Variable 'dst_y' is assigned an expression that holds the same value. [redundantAssignment] mirrormagic-3.3.1/src/game_em/graphics.c:284:11: note: dst_y is assigned 'y1' here. mirrormagic-3.3.1/src/game_em/graphics.c:290:5: note: Variable 'dst_y' is assigned an expression that holds the same value. mirrormagic-3.3.1/src/game_em/graphics.c:328:30: style: Variable 'g' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/game_em/logic.c:568:65: style: Same value in both branches of ternary operator. [duplicateValueTernary] mirrormagic-3.3.1/src/game_em/logic.c:1401:9: style: Local variable 'oldx' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/game_em/logic.c:1369:7: note: Shadowed declaration mirrormagic-3.3.1/src/game_em/logic.c:1401:9: note: Shadow variable mirrormagic-3.3.1/src/game_em/logic.c:1402:9: style: Local variable 'oldy' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/game_em/logic.c:1370:7: note: Shadowed declaration mirrormagic-3.3.1/src/game_em/logic.c:1402:9: note: Shadow variable mirrormagic-3.3.1/src/game_em/logic.c:1403:9: style: Local variable 'x' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/game_em/logic.c:1371:7: note: Shadowed declaration mirrormagic-3.3.1/src/game_em/logic.c:1403:9: note: Shadow variable mirrormagic-3.3.1/src/game_em/logic.c:1404:9: style: Local variable 'y' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/game_em/logic.c:1372:7: note: Shadowed declaration mirrormagic-3.3.1/src/game_em/logic.c:1404:9: note: Shadow variable mirrormagic-3.3.1/src/game_em/logic.c:288:45: style: Parameter 'ply' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/game_em/reademc.c:785:3: style: Assignment of function parameter has no effect outside the function. [uselessAssignmentArg] mirrormagic-3.3.1/src/game_em/reademc.c:769:5: style: Opposite expression on both sides of '&='. [oppositeExpression] mirrormagic-3.3.1/src/game_em/reademc.c:569:9: style: Variable 'basename' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/game_em/reademc.c:785:10: style: Variable 'length' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/game_mm/mm_files.c:283:37: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LoadLevel_MM_VERS [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/game_mm/mm_files.c:417:64: style: Parameter 'level' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/game_mm/mm_files.c:425:64: style: Parameter 'level' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/game_mm/mm_game.c:618:40: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable num [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/game_mm/mm_game.c:760:24: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable num [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/game_mm/mm_game.c:2140:43: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable num [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/game_mm/mm_game.c:1467:11: style: Local variable 'element' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/game_mm/mm_game.c:1405:7: note: Shadowed declaration mirrormagic-3.3.1/src/game_mm/mm_game.c:1467:11: note: Shadow variable mirrormagic-3.3.1/src/game_mm/mm_game.c:3966:9: style: Local variable 'x' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/game_mm/mm_game.c:3651:7: note: Shadowed declaration mirrormagic-3.3.1/src/game_mm/mm_game.c:3966:9: note: Shadow variable mirrormagic-3.3.1/src/game_mm/mm_game.c:3966:18: style: Local variable 'y' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/game_mm/mm_game.c:3651:10: note: Shadowed declaration mirrormagic-3.3.1/src/game_mm/mm_game.c:3966:18: note: Shadow variable mirrormagic-3.3.1/src/game_mm/mm_game.c:3911:11: style: Local variable 'x' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/game_mm/mm_game.c:3651:7: note: Shadowed declaration mirrormagic-3.3.1/src/game_mm/mm_game.c:3911:11: note: Shadow variable mirrormagic-3.3.1/src/game_mm/mm_game.c:3911:14: style: Local variable 'y' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/game_mm/mm_game.c:3651:10: note: Shadowed declaration mirrormagic-3.3.1/src/game_mm/mm_game.c:3911:14: note: Shadow variable mirrormagic-3.3.1/src/game_mm/mm_game.c:3984:9: style: Local variable 'x' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/game_mm/mm_game.c:3651:7: note: Shadowed declaration mirrormagic-3.3.1/src/game_mm/mm_game.c:3984:9: note: Shadow variable mirrormagic-3.3.1/src/game_mm/mm_game.c:3984:12: style: Local variable 'y' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/game_mm/mm_game.c:3651:10: note: Shadowed declaration mirrormagic-3.3.1/src/game_mm/mm_game.c:3984:12: note: Shadow variable mirrormagic-3.3.1/src/game_mm/mm_game.c:472:14: style: Variable 'xy' can be declared as const array [constVariable] mirrormagic-3.3.1/src/game_mm/mm_game.c:3199:9: style: struct member 'Anonymous5::left' is never used. [unusedStructMember] mirrormagic-3.3.1/src/game_mm/mm_init.c:190:15: style: Variable 'ep_bit' can be declared as const array [constVariable] mirrormagic-3.3.1/src/game_mm/mm_tools.c:735:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_ALPHA_OPAQUE [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/game_mm/mm_tools.c:906:34: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_ALPHA_OPAQUE [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/game_mm/mm_tools.c:649:23: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] mirrormagic-3.3.1/src/game_mm/mm_tools.c:904:20: warning:inconclusive: Either the condition '(bitmap->surface_masked=SDLGetNativeSurface(surface))==NULL' is redundant or there is possible null pointer dereference: surface_masked. [nullPointerRedundantCheck] mirrormagic-3.3.1/src/game_mm/mm_tools.c:898:67: note: Assuming that condition '(bitmap->surface_masked=SDLGetNativeSurface(surface))==NULL' is not redundant mirrormagic-3.3.1/src/game_mm/mm_tools.c:901:43: note: Assignment 'surface_masked=bitmap->surface_masked', assigned value is 0 mirrormagic-3.3.1/src/game_mm/mm_tools.c:904:20: note: Null pointer dereference mirrormagic-3.3.1/src/game_mm/mm_tools.c:886:13: style: Variable 'bits' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/game_sp/DDScrollBuffer.c:332:11: style: Variable 'ScrollX' is reassigned a value before the old one has been used. [redundantAssignment] mirrormagic-3.3.1/src/game_sp/DDScrollBuffer.c:328:13: note: ScrollX is assigned mirrormagic-3.3.1/src/game_sp/DDScrollBuffer.c:332:11: note: ScrollX is overwritten mirrormagic-3.3.1/src/game_sp/DDScrollBuffer.c:333:11: style: Variable 'ScrollY' is reassigned a value before the old one has been used. [redundantAssignment] mirrormagic-3.3.1/src/game_sp/DDScrollBuffer.c:329:13: note: ScrollY is assigned mirrormagic-3.3.1/src/game_sp/DDScrollBuffer.c:333:11: note: ScrollY is overwritten mirrormagic-3.3.1/src/game_sp/Input.c:12:26: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] mirrormagic-3.3.1/src/game_sp/Input.c:13:20: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] mirrormagic-3.3.1/src/game_sp/Input.c:14:20: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] mirrormagic-3.3.1/src/game_sp/Input.c:15:21: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] mirrormagic-3.3.1/src/game_sp/Input.c:19:26: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] mirrormagic-3.3.1/src/game_sp/Input.c:20:20: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] mirrormagic-3.3.1/src/game_sp/Input.c:21:20: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] mirrormagic-3.3.1/src/game_sp/Input.c:22:21: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] mirrormagic-3.3.1/src/game_sp/Murphy.c:468:6: style: Variable 'al' is reassigned a value before the old one has been used. [redundantAssignment] mirrormagic-3.3.1/src/game_sp/Murphy.c:467:6: note: al is assigned mirrormagic-3.3.1/src/game_sp/Murphy.c:468:6: note: al is overwritten mirrormagic-3.3.1/src/game_sp/file.c:242:9: style: Local variable 'level_nr' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/libgame/system.h:1936:14: note: Shadowed declaration mirrormagic-3.3.1/src/game_sp/file.c:242:9: note: Shadow variable mirrormagic-3.3.1/src/game_sp/file.c:19:9: style: Variable 'empty_title' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/game_sp/file.c:549:22: style: Variable 'port' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/init.c:1489:7: style: The if condition is the same as the previous if condition [duplicateCondition] mirrormagic-3.3.1/src/init.c:1466:7: note: First condition mirrormagic-3.3.1/src/init.c:1489:7: note: Second condition mirrormagic-3.3.1/src/init.c:5274:14: warning: Either the condition 'level_nr==NULL' is redundant or there is possible null pointer dereference: level_nr++. [nullPointerRedundantCheck] mirrormagic-3.3.1/src/init.c:5271:18: note: Assuming that condition 'level_nr==NULL' is not redundant mirrormagic-3.3.1/src/init.c:5274:14: note: Null pointer dereference mirrormagic-3.3.1/src/init.c:5299:14: warning: Either the condition 'level_nr==NULL' is redundant or there is possible null pointer dereference: level_nr++. [nullPointerRedundantCheck] mirrormagic-3.3.1/src/init.c:5296:18: note: Assuming that condition 'level_nr==NULL' is not redundant mirrormagic-3.3.1/src/init.c:5299:14: note: Null pointer dereference mirrormagic-3.3.1/src/init.c:5274:14: warning: Either the condition 'level_nr==NULL' is redundant or there is pointer arithmetic with NULL pointer. [nullPointerArithmeticRedundantCheck] mirrormagic-3.3.1/src/init.c:5271:18: note: Assuming that condition 'level_nr==NULL' is not redundant mirrormagic-3.3.1/src/init.c:5274:14: note: Null pointer addition mirrormagic-3.3.1/src/init.c:5299:14: warning: Either the condition 'level_nr==NULL' is redundant or there is pointer arithmetic with NULL pointer. [nullPointerArithmeticRedundantCheck] mirrormagic-3.3.1/src/init.c:5296:18: note: Assuming that condition 'level_nr==NULL' is not redundant mirrormagic-3.3.1/src/init.c:5299:14: note: Null pointer addition mirrormagic-3.3.1/src/init.c:549:6: style: Local variable 'j' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/init.c:443:10: note: Shadowed declaration mirrormagic-3.3.1/src/init.c:549:6: note: Shadow variable mirrormagic-3.3.1/src/init.c:598:6: style: Local variable 'base_graphic' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/init.c:581:11: note: Shadowed declaration mirrormagic-3.3.1/src/init.c:598:6: note: Shadow variable mirrormagic-3.3.1/src/init.c:599:6: style: Local variable 'active_graphic' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/init.c:582:11: note: Shadowed declaration mirrormagic-3.3.1/src/init.c:599:6: note: Shadow variable mirrormagic-3.3.1/src/init.c:600:10: style: Local variable 'base_redefined' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/init.c:583:15: note: Shadowed declaration mirrormagic-3.3.1/src/init.c:600:10: note: Shadow variable mirrormagic-3.3.1/src/init.c:602:10: style: Local variable 'active_redefined' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/init.c:585:15: note: Shadowed declaration mirrormagic-3.3.1/src/init.c:602:10: note: Shadow variable mirrormagic-3.3.1/src/init.c:694:9: style: Local variable 'j' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/init.c:680:10: note: Shadowed declaration mirrormagic-3.3.1/src/init.c:694:9: note: Shadow variable mirrormagic-3.3.1/src/init.c:695:9: style: Local variable 'k' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/init.c:680:13: note: Shadowed declaration mirrormagic-3.3.1/src/init.c:695:9: note: Shadow variable mirrormagic-3.3.1/src/init.c:2035:9: style: Local variable 'i' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/init.c:1954:7: note: Shadowed declaration mirrormagic-3.3.1/src/init.c:2035:9: note: Shadow variable mirrormagic-3.3.1/src/init.c:2323:9: style: Local variable 'level' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/main.h:3925:26: note: Shadowed declaration mirrormagic-3.3.1/src/init.c:2323:9: note: Shadow variable mirrormagic-3.3.1/src/init.c:5269:11: style: Local variable 'level_nr' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/libgame/system.h:1936:14: note: Shadowed declaration mirrormagic-3.3.1/src/init.c:5269:11: note: Shadow variable mirrormagic-3.3.1/src/init.c:5294:11: style: Local variable 'level_nr' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/libgame/system.h:1936:14: note: Shadowed declaration mirrormagic-3.3.1/src/init.c:5294:11: note: Shadow variable mirrormagic-3.3.1/src/init.c:5346:6: style: Local variable 'level_nr' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/libgame/system.h:1936:14: note: Shadowed declaration mirrormagic-3.3.1/src/init.c:5346:6: note: Shadow variable mirrormagic-3.3.1/src/init.c:5398:6: style: Local variable 'level_nr' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/libgame/system.h:1936:14: note: Shadowed declaration mirrormagic-3.3.1/src/init.c:5398:6: note: Shadow variable mirrormagic-3.3.1/src/init.c:245:23: style: Variable 'g' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/init.c:255:14: style: Variable 'special_graphics' can be declared as const array [constVariable] mirrormagic-3.3.1/src/init.c:275:27: style: Variable 'property_mapping' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/init.c:308:23: style: Variable 'g' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/init.c:315:27: style: Variable 'property_mapping' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/init.c:341:14: style: Variable 'texture_graphics' can be declared as const array [constVariable] mirrormagic-3.3.1/src/init.c:412:9: style: Variable 'value' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/init.c:1303:11: style: Variable 'value' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/init.c:1320:11: style: Variable 'value' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/init.c:1340:45: style: Parameter 'src_bitmap' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/init.c:1352:46: style: Parameter 'src_bitmap' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/init.c:1772:14: style: Variable 'full_size_graphics' can be declared as const array [constVariable] mirrormagic-3.3.1/src/init.c:2601:34: style: Parameter 'bitfield' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/init.c:4739:14: style: Variable 'no_wall_properties' can be declared as const array [constVariable] mirrormagic-3.3.1/src/init.c:4959:16: style: Variable 'ep_em_slippery_wall' can be declared as const array [constVariable] mirrormagic-3.3.1/src/init.c:4974:16: style: Variable 'ep_em_explodes_by_fire' can be declared as const array [constVariable] mirrormagic-3.3.1/src/init.c:5314:11: style: Variable 'arg_ptr' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/init.c:5521:43: style: Parameter 'string' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/init.c:5819:8: style: Variable 'filename' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/init.c:6327:9: style: Variable 'gfx_new_identifier' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/init.c:6328:9: style: Variable 'snd_new_identifier' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/init.c:6329:9: style: Variable 'mus_new_identifier' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/init.c:1113:24: style: Variable 'default_crumbled' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/init.c:1178:26: style: Variable 'default_action_crumbled' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/init.c:6465:21: style: Variable 'num_lines_printed' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/libgame/gadgets.c:122:24: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable KMOD_LSHIFT [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/gadgets.c:902:19: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_ALPHA_OPAQUE [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/gadgets.c:2101:54: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable KMOD_LALT [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/gadgets.c:2374:14: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDLK_ESCAPE [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/gadgets.c:839:7: style: Condition 'direct' is always false [knownConditionTrueFalse] mirrormagic-3.3.1/src/libgame/gadgets.c:837:12: note: Assignment 'direct=0', assigned value is 0 mirrormagic-3.3.1/src/libgame/gadgets.c:839:7: note: Condition 'direct' is always false mirrormagic-3.3.1/src/libgame/gadgets.c:891:16: warning: Either the condition 'gi==NULL' is redundant or there is possible null pointer dereference: gi. [nullPointerRedundantCheck] mirrormagic-3.3.1/src/libgame/gadgets.c:893:10: note: Assuming that condition 'gi==NULL' is not redundant mirrormagic-3.3.1/src/libgame/gadgets.c:891:16: note: Null pointer dereference mirrormagic-3.3.1/src/libgame/gadgets.c:1843:24: style: Local variable 'gi' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/libgame/gadgets.c:1772:31: note: Shadowed declaration mirrormagic-3.3.1/src/libgame/gadgets.c:1843:24: note: Shadow variable mirrormagic-3.3.1/src/libgame/gadgets.c:1957:9: style: Local variable 'last_mx' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/libgame/gadgets.c:1767:14: note: Shadowed declaration mirrormagic-3.3.1/src/libgame/gadgets.c:1957:9: note: Shadow variable mirrormagic-3.3.1/src/libgame/gadgets.c:1958:9: style: Local variable 'last_my' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/libgame/gadgets.c:1767:27: note: Shadowed declaration mirrormagic-3.3.1/src/libgame/gadgets.c:1958:9: note: Shadow variable mirrormagic-3.3.1/src/libgame/gadgets.c:183:9: style: Variable 'text' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/gadgets.c:242:41: style: Parameter 'ptr' can be declared as pointer to const. However it seems that 'default_callback_info' is a callback function, if 'ptr' is declared with const you might also need to cast function pointer(s). [constParameterCallback] mirrormagic-3.3.1/src/libgame/gadgets.c:1536:31: note: You might need to cast the function pointer here mirrormagic-3.3.1/src/libgame/gadgets.c:242:41: note: Parameter 'ptr' can be declared as pointer to const mirrormagic-3.3.1/src/libgame/gadgets.c:247:43: style: Parameter 'ptr' can be declared as pointer to const. However it seems that 'default_callback_action' is a callback function, if 'ptr' is declared with const you might also need to cast function pointer(s). [constParameterCallback] mirrormagic-3.3.1/src/libgame/gadgets.c:1537:33: note: You might need to cast the function pointer here mirrormagic-3.3.1/src/libgame/gadgets.c:247:43: note: Parameter 'ptr' can be declared as pointer to const mirrormagic-3.3.1/src/libgame/gadgets.c:350:25: style: Variable 'font' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/gadgets.c:952:22: style: Variable 'gi' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/gadgets.c:999:10: style: Variable 'text' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/gadgets.c:1724:55: style: Parameter 'gi' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/gadgets.c:1740:39: style: Parameter 'gi' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/hash.c:187:35: style: Parameter 'h' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/http.c:290:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable INADDR_NONE [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/http.c:68:54: style: Parameter 'buffer' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/http.c:111:9: style: Variable 'status_text_end' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/http.c:129:9: style: Variable 'separator' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/http.c:130:9: style: Variable 'separator_start' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/http.c:149:9: style: Variable 'separator' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/http.c:203:11: style: Variable 'separator' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/http.c:204:11: style: Variable 'separator_start' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/http.c:228:11: style: Variable 'content_length_end' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/joystick.c:24:39: style: Parameter 'device_name' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:188:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/misc.c:193:28: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/misc.c:2132:7: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDLK_RETURN [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/misc.c:4226:34: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/misc.c:4247:28: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/misc.c:0:0: debug: ValueFlow maximum iterations exceeded [valueFlowMaxIterations] mirrormagic-3.3.1/src/libgame/misc.c:865:10: portability: Non reentrant function 'getpwuid' called. For threadsafe applications it is recommended to use the reentrant replacement function 'getpwuid_r'. [prohibitedgetpwuidCalled] mirrormagic-3.3.1/src/libgame/misc.c:995:20: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] mirrormagic-3.3.1/src/libgame/misc.c:3041:30: portability: Non reentrant function 'readdir' called. For threadsafe applications it is recommended to use the reentrant replacement function 'readdir_r'. [prohibitedreaddirCalled] mirrormagic-3.3.1/src/libgame/misc.c:1308:13: style:inconclusive: Redundant condition: The condition '*s' is redundant since '*s >= 'a'' is sufficient. [redundantCondition] mirrormagic-3.3.1/src/libgame/misc.c:1240:7: style: Condition 's1==NULL' is always false [knownConditionTrueFalse] mirrormagic-3.3.1/src/libgame/misc.c:1241:7: style: Condition 's1!=NULL' is always true [knownConditionTrueFalse] mirrormagic-3.3.1/src/libgame/misc.c:1241:21: style: Condition 's2==NULL' is always false [knownConditionTrueFalse] mirrormagic-3.3.1/src/libgame/misc.c:1248:7: style: Condition 's1==NULL' is always false [knownConditionTrueFalse] mirrormagic-3.3.1/src/libgame/misc.c:1249:7: style: Condition 's1!=NULL' is always true [knownConditionTrueFalse] mirrormagic-3.3.1/src/libgame/misc.c:1249:21: style: Condition 's2==NULL' is always false [knownConditionTrueFalse] mirrormagic-3.3.1/src/libgame/misc.c:1256:7: style: Condition 's1==NULL' is always false [knownConditionTrueFalse] mirrormagic-3.3.1/src/libgame/misc.c:1257:7: style: Condition 's1!=NULL' is always true [knownConditionTrueFalse] mirrormagic-3.3.1/src/libgame/misc.c:1257:21: style: Condition 's2==NULL' is always false [knownConditionTrueFalse] mirrormagic-3.3.1/src/libgame/misc.c:1264:7: style: Condition 's1==NULL' is always false [knownConditionTrueFalse] mirrormagic-3.3.1/src/libgame/misc.c:1265:7: style: Condition 's1!=NULL' is always true [knownConditionTrueFalse] mirrormagic-3.3.1/src/libgame/misc.c:1265:21: style: Condition 's2==NULL' is always false [knownConditionTrueFalse] mirrormagic-3.3.1/src/libgame/misc.c:1272:6: style: Condition 's==NULL' is always false [knownConditionTrueFalse] mirrormagic-3.3.1/src/libgame/misc.c:1273:6: style: Condition 's!=NULL' is always true [knownConditionTrueFalse] mirrormagic-3.3.1/src/libgame/misc.c:1273:24: style: Condition 'prefix==NULL' is always false [knownConditionTrueFalse] mirrormagic-3.3.1/src/libgame/misc.c:1280:6: style: Condition 's==NULL' is always false [knownConditionTrueFalse] mirrormagic-3.3.1/src/libgame/misc.c:1281:6: style: Condition 's!=NULL' is always true [knownConditionTrueFalse] mirrormagic-3.3.1/src/libgame/misc.c:1281:24: style: Condition 'suffix==NULL' is always false [knownConditionTrueFalse] mirrormagic-3.3.1/src/libgame/misc.c:2399:22: style: Condition 'c1<='9'' is always true [knownConditionTrueFalse] mirrormagic-3.3.1/src/libgame/misc.c:2398:28: note: Assuming that condition 'c1<='9'' is not redundant mirrormagic-3.3.1/src/libgame/misc.c:2399:22: note: Condition 'c1<='9'' is always true mirrormagic-3.3.1/src/libgame/misc.c:523:3: warning: %d in format string (no. 1) requires 'int' but the argument type is 'unsigned int'. [invalidPrintfArgType_sint] mirrormagic-3.3.1/src/libgame/misc.c:94:41: style: Parameter 'format' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:113:31: style: Parameter 'format' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:116:9: style: Variable 'newline' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/misc.c:169:37: style: Parameter 'line_chars' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:179:49: style: Parameter 'prefix' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:196:26: style: Parameter 'format' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:323:9: style: Variable 'log_token' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/misc.c:829:9: style: Variable 'from_ptr' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/misc.c:917:11: style: Variable 'name' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/misc.c:963:30: style: Parameter 'name' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:995:14: style: Variable 'now' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/misc.c:1025:44: style: Parameter 'filename' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:1067:25: style: Parameter 'filename' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:1091:40: style: Parameter 's1' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:1091:50: style: Parameter 's2' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:1091:60: style: Parameter 'sep' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:1104:40: style: Parameter 's1' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:1104:50: style: Parameter 's2' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:1104:60: style: Parameter 's3' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:1104:70: style: Parameter 'sep' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:1230:40: style: Parameter 'new_value' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:1237:24: style: Parameter 's1' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:1237:34: style: Parameter 's2' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:1245:25: style: Parameter 's1' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:1245:35: style: Parameter 's2' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:1253:28: style: Parameter 's1' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:1253:38: style: Parameter 's2' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:1261:29: style: Parameter 's1' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:1261:39: style: Parameter 's2' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:1269:25: style: Parameter 's' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:1269:34: style: Parameter 'prefix' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:1277:25: style: Parameter 's' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:1277:34: style: Parameter 'suffix' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:1286:30: style: Parameter 's' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:1296:30: style: Parameter 's' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:1813:36: style: Parameter 'chunk_name' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:1873:41: style: Parameter 'buffer' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:1902:18: style: Variable 'src' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/misc.c:2078:18: style: Variable 'src' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/misc.c:2095:13: style: Variable 'esc' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/misc.c:2548:35: style: Parameter 's' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:2607:37: style: Parameter 's' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:2642:49: style: Parameter 'key' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:2732:22: style: Parameter 'filename' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:2732:38: style: Parameter 'mode' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:2814:36: style: Parameter 'buffer' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:3075:31: style: Parameter 'dir_name' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:3103:26: style: Parameter 'filename' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:3150:36: style: Parameter 'basename' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:3441:41: style: Parameter 'token' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:3441:54: style: Parameter 'suffix' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:3512:12: style: Parameter 'token' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:3924:8: style: Variable 'value' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/misc.c:4369:39: style: Parameter 'message' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/misc.c:4369:54: style: Parameter 'mode' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/random.c:512:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable DBL_MAX [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/random.c:509:22: style: Local variable 's' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/libgame/random.c:313:22: note: Shadowed declaration mirrormagic-3.3.1/src/libgame/random.c:509:22: note: Shadow variable mirrormagic-3.3.1/src/libgame/sdl.c:1816:37: debug: Function::addArguments found argument 'Surf' with varid 0. [varid0] mirrormagic-3.3.1/src/libgame/sdl.c:328:34: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_TRUE [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/sdl.c:351:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_BLENDMODE_BLEND [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/sdl.c:356:59: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_BLENDMODE_NONE [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/sdl.c:469:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_HINT_RENDER_DRIVER [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/sdl.c:540:34: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_WINDOW_RESIZABLE [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/sdl.c:761:15: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_HINT_RENDER_SCALE_QUALITY [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/sdl.c:943:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_WINDOW_RESIZABLE [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/sdl.c:2198:37: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_WINDOW_RESIZABLE [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/sdl.c:2269:32: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_FALSE [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/sdl.c:2415:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_INIT_AUDIO [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/sdl.c:2450:21: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_INIT_AUDIO [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/sdl.c:2557:33: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_CONTROLLER_AXIS_LEFTX [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/sdl.c:2579:37: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_CONTROLLER_BUTTON_A [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/sdl.c:2728:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_HINT_ACCELEROMETER_AS_JOYSTICK [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/sdl.c:2015:21: warning: If resource allocation fails, then there is a possible null pointer dereference: dst [nullPointerOutOfResources] mirrormagic-3.3.1/src/libgame/sdl.c:2210:36: note: Assuming allocation function fails mirrormagic-3.3.1/src/libgame/sdl.c:2210:36: note: Assignment 'zoom_dst=SDL_CreateRGBSurface(SDL_WINDOW_RESIZABLE,dst_width,dst_height,32,zoom_src->format->Rmask,zoom_src->format->Gmask,zoom_src->format->Bmask,zoom_src->format->Amask)', assigned value is 0 mirrormagic-3.3.1/src/libgame/sdl.c:2230:31: note: Calling function 'zoomSurfaceRGBA', 2nd argument 'zoom_dst' value is 0 mirrormagic-3.3.1/src/libgame/sdl.c:2015:21: note: Null pointer dereference mirrormagic-3.3.1/src/libgame/sdl.c:2235:21: warning:inconclusive: If resource allocation fails, then there is a possible null pointer dereference: zoom_src [nullPointerOutOfResources] mirrormagic-3.3.1/src/libgame/sdl.c:2198:36: note: Assuming allocation function fails mirrormagic-3.3.1/src/libgame/sdl.c:2198:36: note: Assignment 'zoom_src=SDL_CreateRGBSurface(SDL_WINDOW_RESIZABLE,src->w,src->h,32,0x000000ff,0x0000ff00,0x00ff0000,src->format->Amask?0xff000000:0)', assigned value is 0 mirrormagic-3.3.1/src/libgame/sdl.c:2235:21: note: Null pointer dereference mirrormagic-3.3.1/src/libgame/sdl.c:578:23: style: Variable 'video.window_width' is reassigned a value before the old one has been used. [redundantAssignment] mirrormagic-3.3.1/src/libgame/sdl.c:570:23: note: video.window_width is assigned mirrormagic-3.3.1/src/libgame/sdl.c:578:23: note: video.window_width is overwritten mirrormagic-3.3.1/src/libgame/sdl.c:579:23: style: Variable 'video.window_height' is reassigned a value before the old one has been used. [redundantAssignment] mirrormagic-3.3.1/src/libgame/sdl.c:571:23: note: video.window_height is assigned mirrormagic-3.3.1/src/libgame/sdl.c:579:23: note: video.window_height is overwritten mirrormagic-3.3.1/src/libgame/sdl.c:1413:5: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] mirrormagic-3.3.1/src/libgame/sdl.c:1419:5: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] mirrormagic-3.3.1/src/libgame/sdl.c:1437:5: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] mirrormagic-3.3.1/src/libgame/sdl.c:1443:5: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] mirrormagic-3.3.1/src/libgame/sdl.c:302:53: style: Parameter 'format1' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/sdl.c:303:25: style: Parameter 'format2' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/sdl.c:972:26: style: Parameter 'src_bitmap' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/sdl.c:1066:16: style: Variable 'surface_black' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/sdl.c:1424:14: style: Variable 'pix' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/sdl.c:1976:19: style: Variable 'sp01' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/sdl.c:1977:19: style: Variable 'sp10' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/sdl.c:1978:19: style: Variable 'sp11' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/sdl.c:2011:15: style: Variable 'sp' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/sdl.c:2613:33: style: Parameter 'event' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/sdl.c:1963:6: style: Variable 'sp' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/libgame/sdl.c:2035:6: style: Variable 'sp' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/libgame/sdl.c:2113:7: style: Variable 'csx' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/libgame/sdl.c:2117:9: style: Variable 'csx' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/libgame/sdl.c:2121:7: style: Variable 'csy' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/libgame/sdl.c:2125:9: style: Variable 'csy' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/libgame/sdl.c:2130:6: style: Variable 'sp' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/libgame/sdl.c:2744:18: style: Variable 'num_mappings' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/libgame/setup.c:2042:8: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable S_IRUSR [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/setup.c:2087:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable S_IRUSR [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/setup.c:3450:7: style: Condition '!use_artworkinfo_cache' is always false [knownConditionTrueFalse] mirrormagic-3.3.1/src/libgame/setup.c:3541:7: style: Condition 'set_cache_timestamps' is always true [knownConditionTrueFalse] mirrormagic-3.3.1/src/libgame/setup.c:3536:34: note: Assignment 'set_cache_timestamps=1', assigned value is 1 mirrormagic-3.3.1/src/libgame/setup.c:3541:7: note: Condition 'set_cache_timestamps' is always true mirrormagic-3.3.1/src/libgame/setup.c:4582:56: warning: Possible null pointer dereference: tree_node_first [nullPointer] mirrormagic-3.3.1/src/libgame/setup.c:4579:32: note: Assignment 'tree_node_first=(type)==3?&leveldir_first:(type)==0?&artwork.gfx_first:(type)==1?&artwork.snd_first:(type)==2?&artwork.mus_first:NULL', assigned value is 0 mirrormagic-3.3.1/src/libgame/setup.c:4582:56: note: Null pointer dereference mirrormagic-3.3.1/src/libgame/setup.c:5338:17: warning: Either the condition 'value!=NULL' is redundant or there is possible null pointer dereference: value. [nullPointerRedundantCheck] mirrormagic-3.3.1/src/libgame/setup.c:5335:12: note: Assuming that condition 'value!=NULL' is not redundant mirrormagic-3.3.1/src/libgame/setup.c:5338:17: note: Null pointer dereference mirrormagic-3.3.1/src/libgame/setup.c:2041:39: style: The comparison 'permission_class == 0' is always true. [knownConditionTrueFalse] mirrormagic-3.3.1/src/libgame/setup.c:2040:26: note: 'permission_class' is assigned value '0' here. mirrormagic-3.3.1/src/libgame/setup.c:2041:39: note: The comparison 'permission_class == 0' is always true. mirrormagic-3.3.1/src/libgame/setup.c:5280:16: style: Redundant initialization for 'level_subdir'. The initialized value is overwritten before it is read. [redundantInitialization] mirrormagic-3.3.1/src/libgame/setup.c:5262:22: note: level_subdir is initialized mirrormagic-3.3.1/src/libgame/setup.c:5280:16: note: level_subdir is overwritten mirrormagic-3.3.1/src/libgame/setup.c:5308:11: style: Local variable 'level_nr' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/libgame/system.h:1936:14: note: Shadowed declaration mirrormagic-3.3.1/src/libgame/setup.c:5308:11: note: Shadow variable mirrormagic-3.3.1/src/libgame/setup.c:5333:6: style: Local variable 'level_nr' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/libgame/system.h:1936:14: note: Shadowed declaration mirrormagic-3.3.1/src/libgame/setup.c:5333:6: note: Shadow variable mirrormagic-3.3.1/src/libgame/setup.c:91:49: style: Parameter 'ti' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/setup.c:720:34: style: Parameter 'name' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/setup.c:733:34: style: Parameter 'basename_no_ext' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/setup.c:748:39: style: Parameter 'basename_no_ext' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/setup.c:1545:36: style: Parameter 'node' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/setup.c:2083:31: style: Parameter 'filename' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/setup.c:2095:41: style: Parameter 'basename' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/setup.c:2158:49: style: Parameter 'value' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/setup.c:2178:39: style: Parameter 'token' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/setup.c:2178:52: style: Parameter 'value' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/setup.c:2292:9: style: Variable 'str' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/setup.c:2334:59: style: Parameter 'value' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/setup.c:2385:33: style: Parameter 'line_raw' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/setup.c:3424:60: style: Parameter 'timestamp_string' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/setup.c:3776:13: style: Variable 'top_dir' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/setup.c:3778:13: style: Variable 'marker_filename' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/setup.c:4394:12: style: Variable 'topnode_last' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/setup.c:4884:56: style: Parameter 'prefix' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/setup.c:4891:9: style: Variable 'token_text' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/setup.c:5106:21: style: Variable 'leveldir_last' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/setup.c:5286:11: style: Variable 'token_value' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/setup.c:5325:13: style: Variable 'token' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/setup.c:5326:13: style: Variable 'value' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/setup.c:5460:11: style: Variable 'token_value' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/setup.c:2400:14: style: Variable 'line_raw' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/libgame/snapshot.c:98:49: style: Parameter 'node' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/sound.c:303:27: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_MIX_MAXVOLUME [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/sound.c:980:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_MIX_MAXVOLUME [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/sound.c:988:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_MIX_MAXVOLUME [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/sound.c:996:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_MIX_MAXVOLUME [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/sound.c:1004:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_MIX_MAXVOLUME [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/sound.c:1012:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_MIX_MAXVOLUME [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/sound.c:1028:21: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_MIX_MAXVOLUME [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/sound.c:206:7: style: Condition '!Mixer_AllocateChannel(channel)' is always false [knownConditionTrueFalse] mirrormagic-3.3.1/src/libgame/sound.c:206:29: note: Calling function 'Mixer_AllocateChannel' returns 1 mirrormagic-3.3.1/src/libgame/sound.c:206:7: note: Condition '!Mixer_AllocateChannel(channel)' is always false mirrormagic-3.3.1/src/libgame/sound.c:1024:12: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] mirrormagic-3.3.1/src/libgame/sound.c:70:11: style: struct member 'AudioFormatInfo::stereo' is never used. [unusedStructMember] mirrormagic-3.3.1/src/libgame/sound.c:71:7: style: struct member 'AudioFormatInfo::format' is never used. [unusedStructMember] mirrormagic-3.3.1/src/libgame/sound.c:72:7: style: struct member 'AudioFormatInfo::sample_rate' is never used. [unusedStructMember] mirrormagic-3.3.1/src/libgame/sound.c:73:7: style: struct member 'AudioFormatInfo::fragment_size' is never used. [unusedStructMember] mirrormagic-3.3.1/src/libgame/system.c:103:49: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/system.c:173:24: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_INIT_EVENTS [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/system.c:534:21: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_INIT_VIDEO [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/system.c:1712:37: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable KMOD_NONE [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/system.c:1770:28: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDLK_UNKNOWN [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/system.c:1811:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_USEREVENT [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/system.c:1830:33: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDLK_ESCAPE [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/system.c:1548:31: style: Condition 'bit_order_msb' is always true [knownConditionTrueFalse] mirrormagic-3.3.1/src/libgame/system.c:1534:45: note: Assignment 'bit_order_msb=cursor_bit_order==0', assigned value is 1 mirrormagic-3.3.1/src/libgame/system.c:1548:31: note: Condition 'bit_order_msb' is always true mirrormagic-3.3.1/src/libgame/system.c:1534:45: style: The comparison 'cursor_bit_order == 0' is always true. [knownConditionTrueFalse] mirrormagic-3.3.1/src/libgame/system.c:1529:37: note: 'cursor_bit_order' is assigned value '0' here. mirrormagic-3.3.1/src/libgame/system.c:1534:45: note: The comparison 'cursor_bit_order == 0' is always true. mirrormagic-3.3.1/src/libgame/system.c:1275:2: style: Variable 'tmp_bitmap_0' is assigned an expression that holds the same value. [redundantAssignment] mirrormagic-3.3.1/src/libgame/system.c:1261:16: note: tmp_bitmap_0 is assigned 'tmp_bitmap_final' here. mirrormagic-3.3.1/src/libgame/system.c:1275:2: note: Variable 'tmp_bitmap_0' is assigned an expression that holds the same value. mirrormagic-3.3.1/src/libgame/system.c:581:44: style: Parameter 'src_bitmap' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/system.c:1031:43: style: Parameter 'points' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/system.c:1057:31: style: Parameter 'bitmap' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/system.c:1259:12: style: Variable 'height_0' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/libgame/text.c:95:24: style: Parameter 'text' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/text.c:103:26: style: Variable 'font' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/text.c:272:26: style: Variable 'font' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/text.c:277:9: style: Variable 'text_ptr' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/text.c:434:11: style: Variable 'word_ptr' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/text.c:551:50: style: Parameter 'text_buffer' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/text.c:743:42: style: Parameter 'format' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/text.c:703:18: style: Variable 'current_ypos' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/libgame/zip/ioapi.c:104:5: warning: If memory allocation fails, then there is a possible null pointer dereference: ioposix [nullPointerOutOfMemory] mirrormagic-3.3.1/src/libgame/zip/ioapi.c:103:36: note: Assuming allocation function fails mirrormagic-3.3.1/src/libgame/zip/ioapi.c:103:15: note: Assignment 'ioposix=(struct FILE_IOPOSIX*)malloc(sizeof(struct FILE_IOPOSIX))', assigned value is 0 mirrormagic-3.3.1/src/libgame/zip/ioapi.c:104:5: note: Null pointer dereference mirrormagic-3.3.1/src/libgame/zip/ioapi.c:105:5: warning: If memory allocation fails, then there is a possible null pointer dereference: ioposix [nullPointerOutOfMemory] mirrormagic-3.3.1/src/libgame/zip/ioapi.c:103:36: note: Assuming allocation function fails mirrormagic-3.3.1/src/libgame/zip/ioapi.c:103:15: note: Assignment 'ioposix=(struct FILE_IOPOSIX*)malloc(sizeof(struct FILE_IOPOSIX))', assigned value is 0 mirrormagic-3.3.1/src/libgame/zip/ioapi.c:105:5: note: Null pointer dereference mirrormagic-3.3.1/src/libgame/zip/ioapi.c:106:5: warning: If memory allocation fails, then there is a possible null pointer dereference: ioposix [nullPointerOutOfMemory] mirrormagic-3.3.1/src/libgame/zip/ioapi.c:103:36: note: Assuming allocation function fails mirrormagic-3.3.1/src/libgame/zip/ioapi.c:103:15: note: Assignment 'ioposix=(struct FILE_IOPOSIX*)malloc(sizeof(struct FILE_IOPOSIX))', assigned value is 0 mirrormagic-3.3.1/src/libgame/zip/ioapi.c:106:5: note: Null pointer dereference mirrormagic-3.3.1/src/libgame/zip/ioapi.c:106:39: warning: If memory allocation fails, then there is a possible null pointer dereference: ioposix [nullPointerOutOfMemory] mirrormagic-3.3.1/src/libgame/zip/ioapi.c:103:36: note: Assuming allocation function fails mirrormagic-3.3.1/src/libgame/zip/ioapi.c:103:15: note: Assignment 'ioposix=(struct FILE_IOPOSIX*)malloc(sizeof(struct FILE_IOPOSIX))', assigned value is 0 mirrormagic-3.3.1/src/libgame/zip/ioapi.c:106:39: note: Null pointer dereference mirrormagic-3.3.1/src/libgame/zip/ioapi.c:107:20: warning: If memory allocation fails, then there is a possible null pointer dereference: ioposix [nullPointerOutOfMemory] mirrormagic-3.3.1/src/libgame/zip/ioapi.c:103:36: note: Assuming allocation function fails mirrormagic-3.3.1/src/libgame/zip/ioapi.c:103:15: note: Assignment 'ioposix=(struct FILE_IOPOSIX*)malloc(sizeof(struct FILE_IOPOSIX))', assigned value is 0 mirrormagic-3.3.1/src/libgame/zip/ioapi.c:107:20: note: Null pointer dereference mirrormagic-3.3.1/src/libgame/zip/ioapi.c:107:49: warning: If memory allocation fails, then there is a possible null pointer dereference: ioposix [nullPointerOutOfMemory] mirrormagic-3.3.1/src/libgame/zip/ioapi.c:103:36: note: Assuming allocation function fails mirrormagic-3.3.1/src/libgame/zip/ioapi.c:103:15: note: Assignment 'ioposix=(struct FILE_IOPOSIX*)malloc(sizeof(struct FILE_IOPOSIX))', assigned value is 0 mirrormagic-3.3.1/src/libgame/zip/ioapi.c:107:49: note: Null pointer dereference mirrormagic-3.3.1/src/libgame/zip/ioapi.c:141:13: warning: If memory allocation fails, then there is a possible null pointer dereference: diskFilename [nullPointerOutOfMemory] mirrormagic-3.3.1/src/libgame/zip/ioapi.c:140:33: note: Assuming allocation function fails mirrormagic-3.3.1/src/libgame/zip/ioapi.c:140:20: note: Assignment 'diskFilename=(char*)malloc(ioposix->filenameLength*sizeof(char))', assigned value is 0 mirrormagic-3.3.1/src/libgame/zip/ioapi.c:141:13: note: Null pointer dereference mirrormagic-3.3.1/src/libgame/zip/ioapi.c:144:13: warning: If memory allocation fails, then there is a possible null pointer dereference: diskFilename [nullPointerOutOfMemory] mirrormagic-3.3.1/src/libgame/zip/ioapi.c:140:33: note: Assuming allocation function fails mirrormagic-3.3.1/src/libgame/zip/ioapi.c:140:20: note: Assignment 'diskFilename=(char*)malloc(ioposix->filenameLength*sizeof(char))', assigned value is 0 mirrormagic-3.3.1/src/libgame/zip/ioapi.c:144:13: note: Null pointer dereference mirrormagic-3.3.1/src/libgame/zip/ioapi.c:78:47: style: Variable 'p_filefunc64_32->zfile_func64.zerror_file' is reassigned a value before the old one has been used. [redundantAssignment] mirrormagic-3.3.1/src/libgame/zip/ioapi.c:72:47: note: p_filefunc64_32->zfile_func64.zerror_file is assigned mirrormagic-3.3.1/src/libgame/zip/ioapi.c:78:47: note: p_filefunc64_32->zfile_func64.zerror_file is overwritten mirrormagic-3.3.1/src/libgame/zip/ioapi.c:132:19: style: Variable 'ioposix' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/zip/miniunz.c:197:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/zip/miniunz.c:287:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/zip/miniunz.c:298:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/zip/miniunz.c:392:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/zip/miniunz.c:520:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/zip/miniunz.c:545:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/zip/miniunz.c:581:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/zip/miniunz.c:181:5: style: Obsolescent function 'utime' called. It is recommended to use 'utimensat' instead. [prohibitedutimeCalled] mirrormagic-3.3.1/src/libgame/zip/miniunz.c:441:17: warning:inconclusive: Width 1 given in format string (no. 1) is smaller than destination buffer 'answer[128]'. [invalidScanfFormatWidth_smaller] mirrormagic-3.3.1/src/libgame/zip/miniunz.c:541:23: style: Parameter 'filename' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/zip/miniunz.c:577:26: style: Parameter 'filename' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/zip/unzip.c:173:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable Z_ERRNO [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/zip/unzip.c:271:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable Z_ERRNO [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/zip/unzip.c:317:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable Z_ERRNO [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/zip/unzip.c:382:19: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable Z_ERRNO [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/zip/unzip.c:595:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable Z_ERRNO [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/zip/unzip.c:638:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable Z_ERRNO [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/zip/unzip.c:681:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable Z_ERRNO [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/zip/unzip.c:724:15: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable Z_ERRNO [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/zip/unzip.c:972:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable Z_ERRNO [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/zip/unzip.c:1115:61: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable Z_DEFLATED [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/zip/unzip.c:1367:28: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable Z_ERRNO [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/zip/unzip.c:1617:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable Z_ERRNO [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/zip/unzip.c:1667:55: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable Z_DEFLATED [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/zip/unzip.c:1948:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable Z_ERRNO [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/libgame/zip/unzip.c:1331:15: style: Comparing expression of type 'unsigned int' against value 4294967295. Condition is always false. [compareValueOutOfTypeRangeError] mirrormagic-3.3.1/src/libgame/zip/unzip.c:507:70: style:inconclusive: Function 'unzOpen2' argument 2 names different: declaration 'pzlib_filefunc_def' definition 'pzlib_filefunc32_def'. [funcArgNamesDifferent] mirrormagic-3.3.1/src/libgame/zip/unzip.h:137:70: note: Function 'unzOpen2' argument 2 names different: declaration 'pzlib_filefunc_def' definition 'pzlib_filefunc32_def'. mirrormagic-3.3.1/src/libgame/zip/unzip.c:507:70: note: Function 'unzOpen2' argument 2 names different: declaration 'pzlib_filefunc_def' definition 'pzlib_filefunc32_def'. mirrormagic-3.3.1/src/libgame/zip/unzip.c:603:68: style:inconclusive: Function 'unzGetGlobalInfo' argument 2 names different: declaration 'pglobal_info' definition 'pglobal_info32'. [funcArgNamesDifferent] mirrormagic-3.3.1/src/libgame/zip/unzip.h:148:68: note: Function 'unzGetGlobalInfo' argument 2 names different: declaration 'pglobal_info' definition 'pglobal_info32'. mirrormagic-3.3.1/src/libgame/zip/unzip.c:603:68: note: Function 'unzGetGlobalInfo' argument 2 names different: declaration 'pglobal_info' definition 'pglobal_info32'. mirrormagic-3.3.1/src/libgame/zip/unzip.c:507:70: style: Parameter 'pzlib_filefunc32_def' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/zip/unzip.c:518:75: style: Parameter 'pzlib_filefunc_def' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/zip/unzip.c:618:21: style: Variable 's' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/zip/unzip.c:1814:63: style: Parameter 'file_pos' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/libgame/zip/unzip.c:1826:21: style: Variable 's' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/zip/unzip.c:1871:21: style: Variable 's' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/zip/unzip.c:2000:21: style: Variable 's' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/libgame/zip/unzip.c:265:24: style: Variable 'read_size' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/libgame/zip/unzip.c:266:23: style: Variable 'read_pos' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/libgame/zip/unzip.c:267:16: style: Variable 'i' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/libgame/zip/unzip.c:351:30: style: Variable 'number_entry_CD' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/libgame/zip/unzip.c:355:23: style: Variable 'filestream' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/libgame/zip/unzip.c:656:28: style: Variable 'bytes_to_read' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/libgame/zip/unzip.c:708:26: style: Variable 'current_pos' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/libgame/zip/unzip.c:1350:33: style: Variable 'bytes_read' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/netserv.c:859:21: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SIG_IGN [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/netserv.c:677:7: style: Local variable 'level_nr' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/libgame/system.h:1936:14: note: Shadowed declaration mirrormagic-3.3.1/src/netserv.c:677:7: note: Shadow variable mirrormagic-3.3.1/src/netserv.c:54:33: style: Parameter 'ptr' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/netserv.c:66:34: style: Parameter 'ptr' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/netserv.c:80:34: style: Parameter 'ptr' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/netserv.c:103:39: style: Parameter 's' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/netserv.c:404:39: style: Parameter 'except' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/netserv.c:616:9: style: Variable 'player_name' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/netserv.c:738:67: style: Parameter 'player' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/network.c:295:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable INADDR_NONE [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/network.c:981:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/network.c:600:10: style: Local variable 'request' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/main.h:3957:27: note: Shadowed declaration mirrormagic-3.3.1/src/network.c:600:10: note: Shadow variable mirrormagic-3.3.1/src/network.c:180:39: style: Parameter 's' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/network.c:618:9: style: Variable 'player_name' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/network.c:779:24: style: Variable 'client_player' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:4430:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDLK_DELETE [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/screens.c:7790:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDLK_UNKNOWN [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/screens.c:8026:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDLK_UNKNOWN [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/screens.c:8603:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDLK_ESCAPE [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/screens.c:8887:55: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_BLENDMODE_BLEND [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/screens.c:9253:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDLK_ESCAPE [valueFlowBailoutIncompleteVar] mirrormagic-3.3.1/src/screens.c:2724:24: style: Array index 'i' is used before limits check. [arrayIndexThenCheck] mirrormagic-3.3.1/src/screens.c:8205:25: style: Array index 'i' is used before limits check. [arrayIndexThenCheck] mirrormagic-3.3.1/src/screens.c:9945:42: warning: Identical inner 'if' condition is always true. [identicalInnerCondition] mirrormagic-3.3.1/src/screens.c:9872:62: note: 'is_check_button' is assigned value 'menubutton_info[i].check_value!=NULL' here. mirrormagic-3.3.1/src/screens.c:9936:9: note: outer condition: is_check_button mirrormagic-3.3.1/src/screens.c:9945:42: note: identical inner condition: menubutton_info[i].check_value!=NULL mirrormagic-3.3.1/src/screens.c:3397:16: style: The if condition is the same as the previous if condition [duplicateCondition] mirrormagic-3.3.1/src/screens.c:3394:16: note: First condition mirrormagic-3.3.1/src/screens.c:3397:16: note: Second condition mirrormagic-3.3.1/src/screens.c:7844:8: style:inconclusive: Found duplicate branches for 'if' and 'else'. [duplicateBranch] mirrormagic-3.3.1/src/screens.c:7846:3: note: Found duplicate branches for 'if' and 'else'. mirrormagic-3.3.1/src/screens.c:7844:8: note: Found duplicate branches for 'if' and 'else'. mirrormagic-3.3.1/src/screens.c:7910:10: style: Redundant initialization for 'startx'. The initialized value is overwritten before it is read. [redundantInitialization] mirrormagic-3.3.1/src/screens.c:7870:14: note: startx is initialized mirrormagic-3.3.1/src/screens.c:7910:10: note: startx is overwritten mirrormagic-3.3.1/src/screens.c:7911:10: style: Redundant initialization for 'starty'. The initialized value is overwritten before it is read. [redundantInitialization] mirrormagic-3.3.1/src/screens.c:7871:14: note: starty is initialized mirrormagic-3.3.1/src/screens.c:7911:10: note: starty is overwritten mirrormagic-3.3.1/src/screens.c:4226:9: style: Local variable 'xpos' shadows outer argument [shadowArgument] mirrormagic-3.3.1/src/screens.c:4214:73: note: Shadowed declaration mirrormagic-3.3.1/src/screens.c:4226:9: note: Shadow variable mirrormagic-3.3.1/src/screens.c:4495:7: style: Local variable 'align_xoffset' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/screens.c:628:12: note: Shadowed declaration mirrormagic-3.3.1/src/screens.c:4495:7: note: Shadow variable mirrormagic-3.3.1/src/screens.c:4515:7: style: Local variable 'align_yoffset' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/screens.c:629:12: note: Shadowed declaration mirrormagic-3.3.1/src/screens.c:4515:7: note: Shadow variable mirrormagic-3.3.1/src/screens.c:4645:9: style: Local variable 'border' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/main.h:3929:26: note: Shadowed declaration mirrormagic-3.3.1/src/screens.c:4645:9: note: Shadow variable mirrormagic-3.3.1/src/screens.c:4850:9: style: Local variable 'num_entries' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/screens.c:4826:7: note: Shadowed declaration mirrormagic-3.3.1/src/screens.c:4850:9: note: Shadow variable mirrormagic-3.3.1/src/screens.c:7264:9: style: Local variable 'game_speed_text' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/screens.c:5812:14: note: Shadowed declaration mirrormagic-3.3.1/src/screens.c:7264:9: note: Shadow variable mirrormagic-3.3.1/src/screens.c:8728:7: style: Local variable 'font_info' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/main.h:3966:25: note: Shadowed declaration mirrormagic-3.3.1/src/screens.c:8728:7: note: Shadow variable mirrormagic-3.3.1/src/screens.c:9086:17: style: Local variable 'joystick' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/libgame/system.h:1929:28: note: Shadowed declaration mirrormagic-3.3.1/src/screens.c:9086:17: note: Shadow variable mirrormagic-3.3.1/src/screens.c:9238:17: style: Local variable 'user' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/libgame/system.h:1931:25: note: Shadowed declaration mirrormagic-3.3.1/src/screens.c:9238:17: note: Shadow variable mirrormagic-3.3.1/src/screens.c:7834:31: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] mirrormagic-3.3.1/src/screens.c:1023:51: style: Parameter 'tci' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/screens.c:1053:51: style: Parameter 'tci' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/screens.c:1083:71: style: Parameter 'tci' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/screens.c:1153:13: style: Variable 'bitmap' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:1162:30: style: Variable 'tmi' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:1163:11: style: Variable 'filename' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:1190:51: style: Parameter 'pos' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/screens.c:1195:51: style: Parameter 'pos' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/screens.c:1232:11: style: Variable 'text' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:1233:11: style: Variable 'input' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:1353:22: style: Variable 'pos' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:1591:11: style: Variable 'text_format' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:1596:11: style: Variable 'name_full' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:1921:65: style: Parameter 'fi' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/screens.c:2153:29: style: Variable 'mci' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:2502:9: style: Variable 'next_sound' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:2513:9: style: Variable 'next_sound' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:2625:11: style: Variable 'value_ptr' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:4190:36: style: Parameter 'name' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/screens.c:4703:15: style: Variable 'node' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:5476:9: style: Variable 'rank_text_raw' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:5844:13: style: Variable 'value' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:5845:13: style: Variable 'text' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:5906:13: style: Variable 'text' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:5966:13: style: Variable 'text' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:6015:13: style: Variable 'value' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:6016:13: style: Variable 'text' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:6156:13: style: Variable 'text' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:6232:13: style: Variable 'value' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:6233:13: style: Variable 'text' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:6282:13: style: Variable 'value' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:6283:13: style: Variable 'text' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:6333:13: style: Variable 'value' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:6334:13: style: Variable 'text' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:6501:13: style: Variable 'text' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:6569:13: style: Variable 'text' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:6637:13: style: Variable 'text' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:6786:13: style: Variable 'value' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:6787:13: style: Variable 'text' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:6827:13: style: Variable 'text' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:6869:13: style: Variable 'text' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:6911:13: style: Variable 'text' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:6957:10: style: Variable 'text' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:7264:9: style: Variable 'game_speed_text' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:7981:28: style: Variable 'font' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:8745:11: style: Variable 'prev_step' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:9238:17: style: Variable 'user' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:10317:23: style: Variable 'pos_1' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:10318:23: style: Variable 'pos_2' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:10513:29: style: Variable 'mci' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:10536:25: style: Variable 'pos' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/screens.c:2777:9: style: Variable 'y' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/screens.c:2777:17: style: Variable 'y_old' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/screens.c:2989:9: style: Variable 'choice' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/screens.c:3608:14: style: Variable 'ystart' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/screens.c:3639:9: style: Variable 'ystart' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/screens.c:5682:9: style: Variable 'lines' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/screens.c:8722:30: style: Variable 'next' is assigned a value that is never used. [unreadVariable] mirrormagic-3.3.1/src/tape.c:634:19: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] mirrormagic-3.3.1/src/tape.c:185:24: style: Local variable 'gfx' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/libgame/system.h:1925:24: note: Shadowed declaration mirrormagic-3.3.1/src/tape.c:185:24: note: Shadow variable mirrormagic-3.3.1/src/tape.c:2388:25: style: Local variable 'gfx' shadows outer variable [shadowVariable] mirrormagic-3.3.1/src/libgame/system.h:1925:24: note: Shadowed declaration mirrormagic-3.3.1/src/tape.c:2388:25: note: Shadow variable mirrormagic-3.3.1/src/tape.c:308:53: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] mirrormagic-3.3.1/src/tape.c:309:32: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] mirrormagic-3.3.1/src/tape.c:175:13: style: Variable 'pos' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/tape.c:255:16: style: Variable 'month_shortnames' can be declared as const array [constVariable] mirrormagic-3.3.1/src/tape.c:634:14: style: Variable 'lt' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/tape.c:1493:39: style: Parameter 'tape_from' can be declared as pointer to const [constParameterPointer] mirrormagic-3.3.1/src/tape.c:1641:14: style: Variable 'patch_version_first' can be declared as const array [constVariable] mirrormagic-3.3.1/src/tape.c:1649:14: style: Variable 'patch_version_last' can be declared as const array [constVariable] mirrormagic-3.3.1/src/tape.c:2389:16: style: Variable 'pos' can be declared as pointer to const [constVariablePointer] mirrormagic-3.3.1/src/tape.c:2622:50: style: Parameter 'gi' can be declared as pointer to const. However it seems that 'HandleTapeButtons' is a callback function, if 'gi' is declared with const you might also need to cast function pointer(s). [constParameterCallback] mirrormagic-3.3.1/src/tape.c:2410:30: note: You might need to cast the function pointer here mirrormagic-3.3.1/src/tape.c:2622:50: note: Parameter 'gi' can be declared as pointer to const mirrormagic-3.3.1/src/tape.c:2342:7: style: struct member 'Anonymous16::gadget_id' is never used. [unusedStructMember] mirrormagic-3.3.1/src/tools.c:9137:34: error: maximum AST depth exceeded [internalAstError] mirrormagic-3.3.1/src/editor.c:5660:11: warning: Null pointer dereference: gi [ctunullpointer] mirrormagic-3.3.1/src/editor.c:6638:14: note: Assuming that condition 'gi==NULL' is not redundant mirrormagic-3.3.1/src/editor.c:6643:22: note: Calling function getRightGadgetBorder, 1st argument is null mirrormagic-3.3.1/src/editor.c:5660:11: note: Dereferencing argument gi that is null mirrormagic-3.3.1/src/libgame/sdl.c:2015:21: warning: If resource allocation fails, then there is a possible null pointer dereference: dst [ctunullpointerOutOfResources] mirrormagic-3.3.1/src/libgame/sdl.c:2210:36: note: Assuming allocation function fails mirrormagic-3.3.1/src/libgame/sdl.c:2210:36: note: Assignment 'zoom_dst=SDL_CreateRGBSurface(SDL_WINDOW_RESIZABLE,dst_width,dst_height,32,zoom_src->format->Rmask,zoom_src->format->Gmask,zoom_src->format->Bmask,zoom_src->format->Amask)', assigned value is 0 mirrormagic-3.3.1/src/libgame/sdl.c:2230:20: note: Calling function zoomSurfaceRGBA, 2nd argument is null mirrormagic-3.3.1/src/libgame/sdl.c:2015:21: note: Dereferencing argument dst that is null diff: head mirrormagic-3.3.1/src/editor.c:5660:19: warning: Either the condition 'gi==NULL' is redundant or there is possible null pointer dereference: gi. [nullPointerRedundantCheck] mirrormagic-3.3.1/src/editor.c:7321:12: note: Assuming that condition 'gi==NULL' is not redundant mirrormagic-3.3.1/src/editor.c:7326:28: note: Calling function 'getRightGadgetBorder', 1st argument 'gi' value is 0 mirrormagic-3.3.1/src/editor.c:5660:19: note: Null pointer dereference head mirrormagic-3.3.1/src/game.c:12827:59: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] head mirrormagic-3.3.1/src/game.c:12828:59: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] head mirrormagic-3.3.1/src/game.c:12843:59: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] head mirrormagic-3.3.1/src/game.c:12844:59: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] head mirrormagic-3.3.1/src/game.c:5424:67: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] head mirrormagic-3.3.1/src/game.c:5425:67: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] head mirrormagic-3.3.1/src/game.c:5434:67: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] head mirrormagic-3.3.1/src/game.c:5435:67: style: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] head mirrormagic-3.3.1/src/libgame/sdl.c:2015:21: warning: If resource allocation fails, then there is a possible null pointer dereference: dst [ctunullpointerOutOfResources] mirrormagic-3.3.1/src/libgame/sdl.c:2210:36: note: Assuming allocation function fails mirrormagic-3.3.1/src/libgame/sdl.c:2210:36: note: Assignment 'zoom_dst=SDL_CreateRGBSurface(SDL_WINDOW_RESIZABLE,dst_width,dst_height,32,zoom_src->format->Rmask,zoom_src->format->Gmask,zoom_src->format->Bmask,zoom_src->format->Amask)', assigned value is 0 mirrormagic-3.3.1/src/libgame/sdl.c:2230:20: note: Calling function zoomSurfaceRGBA, 2nd argument is null mirrormagic-3.3.1/src/libgame/sdl.c:2015:21: note: Dereferencing argument dst that is null head mirrormagic-3.3.1/src/libgame/zip/ioapi.c:106:39: warning: If memory allocation fails, then there is a possible null pointer dereference: ioposix [nullPointerOutOfMemory] mirrormagic-3.3.1/src/libgame/zip/ioapi.c:103:36: note: Assuming allocation function fails mirrormagic-3.3.1/src/libgame/zip/ioapi.c:103:15: note: Assignment 'ioposix=(struct FILE_IOPOSIX*)malloc(sizeof(struct FILE_IOPOSIX))', assigned value is 0 mirrormagic-3.3.1/src/libgame/zip/ioapi.c:106:39: note: Null pointer dereference head mirrormagic-3.3.1/src/libgame/zip/ioapi.c:107:49: warning: If memory allocation fails, then there is a possible null pointer dereference: ioposix [nullPointerOutOfMemory] mirrormagic-3.3.1/src/libgame/zip/ioapi.c:103:36: note: Assuming allocation function fails mirrormagic-3.3.1/src/libgame/zip/ioapi.c:103:15: note: Assignment 'ioposix=(struct FILE_IOPOSIX*)malloc(sizeof(struct FILE_IOPOSIX))', assigned value is 0 mirrormagic-3.3.1/src/libgame/zip/ioapi.c:107:49: note: Null pointer dereference DONE