2026-08-02 09:14 ftp://ftp.de.debian.org/debian/pool/main/h/hyperrogue/hyperrogue_12.1q.orig.tar.xz cppcheck-options: --library=posix --library=gnu --library=bsd --library=sdl --library=emscripten --library=opengl --library=zlib --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 -j2 platform: Linux-6.12.100+deb13-amd64-x86_64-with-glibc2.41 python: 3.13.5 client-version: 1.4.0 compiler: g++ (GCC) 16.1.0 cppcheck: head 2.21.0 head-info: cb9f2a2 (2026-07-31 11:53:12 +0200) count: 94 89 elapsed-time: 13.2 14.6 head-timing-info: old-timing-info: head results: hyperrogue-12.1q/hyper.h:841:9: error: syntax error [syntaxError] hyperrogue-12.1q/devmods/hatter.cpp:41:19: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable Id [valueFlowBailoutIncompleteVar] hyperrogue-12.1q/devmods/hatter.cpp:57:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable Id [valueFlowBailoutIncompleteVar] hyperrogue-12.1q/devmods/hatter.cpp:230:31: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable Id [valueFlowBailoutIncompleteVar] hyperrogue-12.1q/devmods/hatter.cpp:238:24: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable Id [valueFlowBailoutIncompleteVar] hyperrogue-12.1q/devmods/hatter.cpp:270:29: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable s0 [valueFlowBailoutIncompleteVar] hyperrogue-12.1q/devmods/hatter.cpp:274:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable C0 [valueFlowBailoutIncompleteVar] hyperrogue-12.1q/devmods/hatter.cpp:295:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable Id [valueFlowBailoutIncompleteVar] hyperrogue-12.1q/devmods/hatter.cpp:341:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable hlog [valueFlowBailoutIncompleteVar] hyperrogue-12.1q/devmods/hatter.cpp:351:27: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable mouseh [valueFlowBailoutIncompleteVar] hyperrogue-12.1q/devmods/hatter.cpp:389:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable Id [valueFlowBailoutIncompleteVar] hyperrogue-12.1q/devmods/hatter.cpp:413:45: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable Id [valueFlowBailoutIncompleteVar] hyperrogue-12.1q/devmods/hatter.cpp:448:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cmode [valueFlowBailoutIncompleteVar] hyperrogue-12.1q/devmods/hatter.cpp:509:14: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable snapping [valueFlowBailoutIncompleteVar] hyperrogue-12.1q/devmods/hatter.cpp:0:0: debug: ValueFlow maximum iterations exceeded [valueFlowMaxIterations] hyperrogue-12.1q/devmods/hatter.cpp:200:25: style: Variable 'hatid["R0A016L8.196"]' is reassigned a value before the old one has been used. [redundantAssignment] hyperrogue-12.1q/devmods/hatter.cpp:199:25: note: hatid["R0A016L8.196"] is assigned hyperrogue-12.1q/devmods/hatter.cpp:200:25: note: hatid["R0A016L8.196"] is overwritten hyperrogue-12.1q/devmods/hatter.cpp:235:51: style: Argument 'sh' shadows outer variable [shadowVariable] hyperrogue-12.1q/devmods/hatter.cpp:248:12: note: Shadowed variable hyperrogue-12.1q/devmods/hatter.cpp:235:51: note: Shadow argument hyperrogue-12.1q/devmods/hatter.cpp:179:11: style: Variable 't1' can be declared as reference to const [constVariableReference] hyperrogue-12.1q/devmods/hatter.cpp:375:11: style: Variable 'hc' can be declared as reference to const [constVariableReference] hyperrogue-12.1q/devmods/hatter.cpp:76:33: style: Consider using std::transform algorithm instead of a raw loop. [useStlAlgorithm] hyperrogue-12.1q/devmods/tests.cpp:107:10: error: Unmatched '('. Configuration: '__GNUC__=1'. [syntaxError] hyperrogue-12.1q/generators/bring.cpp:65:23: warning: Uninitialized variable: id [uninitvar] hyperrogue-12.1q/generators/bring.cpp:63:23: note: Assuming condition is false hyperrogue-12.1q/generators/bring.cpp:65:23: note: Uninitialized variable: id hyperrogue-12.1q/generators/bring.cpp:111:40: warning: Uninitialized variable: bycellid [uninitvar] hyperrogue-12.1q/generators/bring.cpp:100:43: note: Assuming condition is false hyperrogue-12.1q/generators/bring.cpp:111:40: note: Uninitialized variable: bycellid hyperrogue-12.1q/generators/bring.cpp:92:9: style: Variable 'sols' is assigned a value that is never used. [unreadVariable] hyperrogue-12.1q/generators/macbeath.cpp:84:23: warning: Uninitialized variable: id [uninitvar] hyperrogue-12.1q/generators/macbeath.cpp:82:27: note: Assuming condition is false hyperrogue-12.1q/generators/macbeath.cpp:84:23: note: Uninitialized variable: id hyperrogue-12.1q/generators/macbeath.cpp:123:44: warning: Uninitialized variable: bycellid [uninitvar] hyperrogue-12.1q/generators/macbeath.cpp:112:43: note: Assuming condition is false hyperrogue-12.1q/generators/macbeath.cpp:123:44: note: Uninitialized variable: bycellid hyperrogue-12.1q/generators/quartic.cpp:18:14: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable moButterfly [valueFlowBailoutIncompleteVar] hyperrogue-12.1q/generators/quartic.cpp:66:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable S7 [valueFlowBailoutIncompleteVar] hyperrogue-12.1q/generators/patterngen.cpp:63:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] hyperrogue-12.1q/generators/patterngen.cpp:131:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable waCamelot [valueFlowBailoutIncompleteVar] hyperrogue-12.1q/generators/patterngen.cpp:336:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable wstep [valueFlowBailoutIncompleteVar] hyperrogue-12.1q/generators/patterngen.cpp:397:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cwt [valueFlowBailoutIncompleteVar] hyperrogue-12.1q/generators/patterngen.cpp:410:67: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable heat [valueFlowBailoutIncompleteVar] hyperrogue-12.1q/generators/patterngen.cpp:420:58: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable heat [valueFlowBailoutIncompleteVar] hyperrogue-12.1q/generators/schmutz.cpp:55:13: style: Local variable 's' shadows outer variable [shadowVariable] hyperrogue-12.1q/generators/schmutz.cpp:28:7: note: Shadowed variable hyperrogue-12.1q/generators/schmutz.cpp:55:13: note: Shadow local variable hyperrogue-12.1q/generators/schmutz.cpp:35:14: style: Variable 'oj' is assigned a value that is never used. [unreadVariable] hyperrogue-12.1q/generators/patterngen.cpp:15:8: warning: Member variable 'state50::polarity1' has no initializer. [uninitMemberVarNoCtor] hyperrogue-12.1q/generators/patterngen.cpp:16:8: warning: Member variable 'state50::polarity2' has no initializer. [uninitMemberVarNoCtor] hyperrogue-12.1q/generators/patterngen.cpp:439:9: style: The scope of the variable 'z' can be reduced. [variableScope] hyperrogue-12.1q/generators/patterngen.cpp:404:21: style: Parameter 'h' can be declared as pointer to const [constParameterPointer] hyperrogue-12.1q/language-cz.cpp:33:1: error: There is an unknown macro here somewhere. Configuration is required. If N is a macro then please configure it. [unknownMacro] hyperrogue-12.1q/language-de.cpp:46:1: error: There is an unknown macro here somewhere. Configuration is required. If N is a macro then please configure it. [unknownMacro] hyperrogue-12.1q/langen.cpp:300:30: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable m [valueFlowBailoutIncompleteVar] hyperrogue-12.1q/langen.cpp:462:37: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable genus [valueFlowBailoutIncompleteVar] hyperrogue-12.1q/language-fr.cpp:35:1: error: There is an unknown macro here somewhere. Configuration is required. If N is a macro then please configure it. [unknownMacro] hyperrogue-12.1q/language-pl.cpp:33:1: error: There is an unknown macro here somewhere. Configuration is required. If N is a macro then please configure it. [unknownMacro] hyperrogue-12.1q/language-ptbr.cpp:36:1: error: There is an unknown macro here somewhere. Configuration is required. If N is a macro then please configure it. [unknownMacro] hyperrogue-12.1q/language-ru.cpp:34:1: error: There is an unknown macro here somewhere. Configuration is required. If N is a macro then please configure it. [unknownMacro] hyperrogue-12.1q/language-tr.cpp:21:1: error: There is an unknown macro here somewhere. Configuration is required. If N is a macro then please configure it. [unknownMacro] hyperrogue-12.1q/makeh.cpp:23:5: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cout [valueFlowBailoutIncompleteVar] hyperrogue-12.1q/makeh.cpp:52:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cout [valueFlowBailoutIncompleteVar] hyperrogue-12.1q/langen.cpp:65:3: warning: Member variable 'noun::genus' is not initialized in the constructor. [uninitMemberVar] hyperrogue-12.1q/langen.cpp:66:3: style: Struct 'noun' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] hyperrogue-12.1q/makeh.cpp:45:24: warning: Either the condition 's!=""' is redundant or expression 's[s.size()-1]' causes access out of bounds. [containerOutOfBounds] hyperrogue-12.1q/makeh.cpp:44:13: note: Assuming that condition 's!=""' is not redundant hyperrogue-12.1q/makeh.cpp:45:24: note: Access out of bounds hyperrogue-12.1q/makeh.cpp:45:47: warning: Either the condition 's!=""' is redundant or expression 's[s.size()-1]' causes access out of bounds. [containerOutOfBounds] hyperrogue-12.1q/makeh.cpp:44:13: note: Assuming that condition 's!=""' is not redundant hyperrogue-12.1q/makeh.cpp:45:47: note: Access out of bounds hyperrogue-12.1q/makeh.cpp:45:72: performance: Ineffective call of function 'substr' because a prefix of the string is assigned to itself. Use resize() or pop_back() instead. [uselessCallsSubstr] hyperrogue-12.1q/langen.cpp:148:48: style: Variable 'ds' can be declared as const array [constVariable] hyperrogue-12.1q/langen.cpp:155:41: style: Variable 'ns' can be declared as const array [constVariable] hyperrogue-12.1q/langen.cpp:169:48: style: Variable 'ds' can be declared as const array [constVariable] hyperrogue-12.1q/langen.cpp:176:41: style: Variable 'ns' can be declared as const array [constVariable] hyperrogue-12.1q/langen.cpp:190:48: style: Variable 'ds' can be declared as const array [constVariable] hyperrogue-12.1q/langen.cpp:197:41: style: Variable 'ns' can be declared as const array [constVariable] hyperrogue-12.1q/langen.cpp:211:48: style: Variable 'ds' can be declared as const array [constVariable] hyperrogue-12.1q/langen.cpp:218:41: style: Variable 'ns' can be declared as const array [constVariable] hyperrogue-12.1q/langen.cpp:232:48: style: Variable 'ds' can be declared as const array [constVariable] hyperrogue-12.1q/mymake.cpp:146:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] hyperrogue-12.1q/mymake.cpp:425:65: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ready [valueFlowBailoutIncompleteVar] hyperrogue-12.1q/langen.cpp:239:41: style: Variable 'ns' can be declared as const array [constVariable] hyperrogue-12.1q/langen.cpp:253:48: style: Variable 'ds' can be declared as const array [constVariable] hyperrogue-12.1q/langen.cpp:260:41: style: Variable 'ns' can be declared as const array [constVariable] hyperrogue-12.1q/langen.cpp:274:48: style: Variable 'ds' can be declared as const array [constVariable] hyperrogue-12.1q/langen.cpp:281:41: style: Variable 'ns' can be declared as const array [constVariable] hyperrogue-12.1q/langen.cpp:115:23: style: Consider using std::accumulate algorithm instead of a raw loop. [useStlAlgorithm] hyperrogue-12.1q/langen.cpp:301:9: style: Consider using std::transform algorithm instead of a raw loop. [useStlAlgorithm] hyperrogue-12.1q/langen.cpp:425:13: style: Consider using std::transform algorithm instead of a raw loop. [useStlAlgorithm] hyperrogue-12.1q/langen.cpp:429:14: style: Consider using std::transform algorithm instead of a raw loop. [useStlAlgorithm] hyperrogue-12.1q/mymake.cpp:434:11: style: The scope of the variable 'mid' can be reduced. [variableScope] hyperrogue-12.1q/mymake.cpp:314:14: style: Local variable 's' shadows outer variable [shadowVariable] hyperrogue-12.1q/mymake.cpp:195:12: note: Shadowed variable hyperrogue-12.1q/mymake.cpp:314:14: note: Shadow local variable hyperrogue-12.1q/mymake.cpp:52:25: performance: Function parameter 'fname' should be passed by const reference. [passedByValue] hyperrogue-12.1q/mymake.cpp:138:20: performance: Function parameter 'o' should be passed by const reference. [passedByValue] hyperrogue-12.1q/mymake.cpp:154:35: performance: Function parameter 's' should be passed by const reference. [passedByValue] hyperrogue-12.1q/mymake.cpp:388:14: performance: Range variable 'm' should be declared as const reference. [iterateByValue] hyperrogue-12.1q/mymake.cpp:159:13: style: Variable 'hd' can be declared as reference to const [constVariableReference] hyperrogue-12.1q/mymake.cpp:169:13: performance: Ineffective call of function 'substr' because a prefix of the string is assigned to itself. Use resize() or pop_back() instead. [uselessCallsSubstr] hyperrogue-12.1q/mymake.cpp:318:15: performance: Ineffective call of function 'substr' because a prefix of the string is assigned to itself. Use resize() or pop_back() instead. [uselessCallsSubstr] hyperrogue-12.1q/mymake.cpp:329:13: performance: Ineffective call of function 'substr' because a prefix of the string is assigned to itself. Use resize() or pop_back() instead. [uselessCallsSubstr] hyperrogue-12.1q/mymake.cpp:369:13: performance: Ineffective call of function 'substr' because a prefix of the string is assigned to itself. Use resize() or pop_back() instead. [uselessCallsSubstr] hyperrogue-12.1q/mymake.cpp:391:37: style: Consider using std::replace_if algorithm instead of a raw loop. [useStlAlgorithm] hyperrogue-12.1q/savepng.cpp:46:31: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable png_byte [valueFlowBailoutIncompleteVar] hyperrogue-12.1q/savepng.cpp:101:61: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PNG_LIBPNG_VER_STRING [valueFlowBailoutIncompleteVar] hyperrogue-12.1q/savepng.cpp:158:3: warning: If memory allocation fails, then there is a possible null pointer dereference: row_pointers [nullPointerOutOfMemory] hyperrogue-12.1q/savepng.cpp:156:36: note: Assuming allocation function fails hyperrogue-12.1q/savepng.cpp:156:17: note: Assignment 'row_pointers=(png_bytep*)malloc(sizeof(png_bytep)*surface->h)', assigned value is 0 hyperrogue-12.1q/savepng.cpp:158:3: note: Null pointer dereference hyperrogue-12.1q/savepng.cpp:45:18: style: C-style pointer casting [cstyleCast] hyperrogue-12.1q/savepng.cpp:156:17: style: C-style pointer casting [cstyleCast] hyperrogue-12.1q/savepng.cpp:158:32: style: C-style pointer casting [cstyleCast] diff: head hyperrogue-12.1q/langen.cpp:301:9: style: Consider using std::transform algorithm instead of a raw loop. [useStlAlgorithm] head hyperrogue-12.1q/langen.cpp:425:13: style: Consider using std::transform algorithm instead of a raw loop. [useStlAlgorithm] head hyperrogue-12.1q/langen.cpp:429:14: style: Consider using std::transform algorithm instead of a raw loop. [useStlAlgorithm] head hyperrogue-12.1q/makeh.cpp:45:24: warning: Either the condition 's!=""' is redundant or expression 's[s.size()-1]' causes access out of bounds. [containerOutOfBounds] hyperrogue-12.1q/makeh.cpp:44:13: note: Assuming that condition 's!=""' is not redundant hyperrogue-12.1q/makeh.cpp:45:24: note: Access out of bounds head hyperrogue-12.1q/makeh.cpp:45:47: warning: Either the condition 's!=""' is redundant or expression 's[s.size()-1]' causes access out of bounds. [containerOutOfBounds] hyperrogue-12.1q/makeh.cpp:44:13: note: Assuming that condition 's!=""' is not redundant hyperrogue-12.1q/makeh.cpp:45:47: note: Access out of bounds DONE