| Group |
Location |
Level |
Code |
Message |
| General Analysis |
tile_colour.cc:280 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'row_pointers'. Check lines: 280, 278. |
|
:1 |
High |
Renew |
Your license will expire in 8 days. Click 'Renew' to learn more or contact us at<EMAIL_ADDRESS>|
| General Analysis |
tile.h:42 |
Medium |
V690 |
The 'tile' class implements a copy constructor, but lacks the copy assignment operator. It is dangerous to use such a class. |
| General Analysis |
tile.cc:13 |
Medium |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: m_variations. |
| General Analysis |
tile_page.cc:67 |
Medium |
V1048 |
The 'xmax' variable was assigned the same value. |
| General Analysis |
tile_list_processor.cc:76 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
tile_list_processor.cc:125 |
High |
V663 |
Infinite loop is possible. The 'cin.eof()' condition is insufficient to break from the loop. Consider adding the 'cin.fail()' function call to the conditional expression. |
| General Analysis |
tile_list_processor.cc:1129 |
High |
V773 |
The function was exited without releasing the 'part_min' pointer. A memory leak is possible. |
| General Analysis |
tag-version.h:251 |
High |
V1043 |
A global object variable 'bones_minor_tags' is declared in the header. Multiple copies of it will be created in all translation units that include this header file. |
| General Analysis |
bitary.h:15 |
Medium |
V690 |
The 'bit_vector' class implements a copy constructor, but lacks the copy assignment operator. It is dangerous to use such a class. |
| General Analysis |
tags.h:138 |
High |
V702 |
Classes should always be derived from std::exception (and alike) as 'public' (no keyword was specified, so compiler defaults it to 'private'). |
| General Analysis |
externs.h:92 |
High |
V1043 |
A global object variable 'INVALID_COORD' is declared in the header. Multiple copies of it will be created in all translation units that include this header file. |
| General Analysis |
externs.h:93 |
High |
V1043 |
A global object variable 'NO_CURSOR' is declared in the header. Multiple copies of it will be created in all translation units that include this header file. |
| General Analysis |
externs.h:244 |
High |
V1043 |
A global object variable 'MON_SPELL_TYPE_MASK' is declared in the header. Multiple copies of it will be created in all translation units that include this header file. |
| General Analysis |
externs.h:248 |
High |
V1043 |
A global object variable 'MON_SPELL_INNATE_MASK' is declared in the header. Multiple copies of it will be created in all translation units that include this header file. |
| General Analysis |
externs.h:251 |
High |
V1043 |
A global object variable 'MON_SPELL_ANTIMAGIC_MASK' is declared in the header. Multiple copies of it will be created in all translation units that include this header file. |
| General Analysis |
externs.h:254 |
High |
V1043 |
A global object variable 'MON_SPELL_SILENCE_MASK' is declared in the header. Multiple copies of it will be created in all translation units that include this header file. |
| General Analysis |
item-prop-enum.h:173 |
Medium |
V1016 |
Expression 'NUM_SPECIAL_WEAPONS <= SP_UNKNOWN_BRAND' is always true. |
| General Analysis |
item-prop-enum.h:308 |
High |
V1043 |
A global object variable 'misc_types' is declared in the header. Multiple copies of it will be created in all translation units that include this header file. |
| General Analysis |
show.h:85 |
High |
V1043 |
A global object variable 'LAYERS_ALL' is declared in the header. Multiple copies of it will be created in all translation units that include this header file. |
| General Analysis |
random.h:221 |
High |
V1043 |
A global object variable 'CONVENIENT_NONZERO_DAMAGE' is declared in the header. Multiple copies of it will be created in all translation units that include this header file. |
| General Analysis |
mon-flags.h:280 |
High |
V1043 |
A global object variable 'MF_NAME_MASK' is declared in the header. Multiple copies of it will be created in all translation units that include this header file. |
| General Analysis |
mon-flags.h:281 |
High |
V1043 |
A global object variable 'MF_MELEE_MASK' is declared in the header. Multiple copies of it will be created in all translation units that include this header file. |
| General Analysis |
windowmanager.h:190 |
Medium |
V707 |
Giving short names to global variables is considered to be bad practice. It is suggested to rename 'wm' variable. |
| General Analysis |
cio.h:345 |
High |
V1053 |
Calling the 'read_line' virtual function in the constructor may lead to unexpected result at runtime. |
| General Analysis |
ui.h:949 |
Medium |
V1002 |
The 'VertBuffer' class, containing pointers, constructor and destructor, is copied by the automatically generated copy constructor. |
| General Analysis |
mgen-data.h:173 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
stringutil.h:99 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
viewgeom.h:15 |
Medium |
V690 |
The 'crawl_view_buffer' class implements the copy assignment operator, but lacks a copy constructor. It is dangerous to use such a class. |
| General Analysis |
ability.cc:1378 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
ability.cc:1404 |
Medium |
V768 |
The expression 'you.undead_state()' is of enum type. It is odd that it is used as an expression of a Boolean-type. |
| General Analysis |
ability.cc:2152 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 2152, 2619 |
| General Analysis |
ability.cc:3359 |
Medium |
V506 |
Pointer to local variable 'numbers' is stored outside the scope of this variable. Such a pointer will become invalid. |
| General Analysis |
ability.cc:3396 |
Medium |
V506 |
Pointer to local variable 'numbers' is stored outside the scope of this variable. Such a pointer will become invalid. |
| General Analysis |
ability.cc:3604 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
tags.h:49 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: _pbuf. |
| General Analysis |
geom2d.h:64 |
Medium |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: val. |
| General Analysis |
geom2d.h:78 |
Medium |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: offset, dist. |
| General Analysis |
beam.h:49 |
Medium |
V730 |
Not all members of a class are initialized inside the compiler generated constructor. Consider inspecting: tile_beam. |
| General Analysis |
kills.h:25 |
Medium |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: monnum, modifier. |
| General Analysis |
kills.h:85 |
Medium |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: exp. |
| General Analysis |
mon-info.h:246 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: i_ghost. |
| General Analysis |
cloud.h:19 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: source. |
| General Analysis |
shopping.h:66 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: num. |
| General Analysis |
mon-transit.h:19 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: transit_start_time. |
| General Analysis |
god-companions.h:20 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: timestamp. |
| General Analysis |
tilereg.h:79 |
Medium |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: im, tag_font, tile_x, tile_y. |
| General Analysis |
glwrapper.h:20 |
Medium |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: x, y. |
| General Analysis |
glwrapper.h:41 |
Medium |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: x, y, z. |
| General Analysis |
cio.h:345 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: key. |
| General Analysis |
ui.h:868 |
Medium |
V730 |
Not all members of a class are initialized inside the compiler generated constructor. Consider inspecting: size, offset, sr. |
| General Analysis |
notes.h:68 |
Medium |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: type, first, second. |
| General Analysis |
abyss.cc:462 |
Medium |
V768 |
The variable 'which_feat' is of enum type. It is odd that it is used as a variable of a Boolean-type. |
| General Analysis |
abyss.cc:1264 |
Medium |
V1051 |
Consider checking for misprints. It's possible that the 'cloud_life' should be checked here. |
| General Analysis |
abyss.cc:1363 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
abyss.cc:1844 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'cmark'. |
| General Analysis |
acquire.cc:676 |
Medium |
V1004 |
The 'choice' pointer was used unsafely after it was verified against nullptr. Check lines: 673, 676. |
| General Analysis |
acquire.cc:1295 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
acquire.cc:1439 |
Medium |
V547 |
Expression 'thing_created != 27000' is always true. |
| General Analysis |
acquire.cc:1454 |
Medium |
V560 |
A part of conditional expression is always true: thing_created != 27000. |
| General Analysis |
acquire.cc:1651 |
Medium |
V522 |
There might be dereferencing of a potential null pointer. |
| General Analysis |
actor.cc:390 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
actor.cc:587 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
nearby-danger.h:44 |
Medium |
V690 |
The 'position_node' class implements a copy constructor, but lacks the copy assignment operator. It is dangerous to use such a class. |
| General Analysis |
art-func.h:989 |
High |
V501 |
There are identical sub-expressions 'x_chance_in_y(evoc, 27 * 27)' to the left and to the right of the '||' operator. |
| General Analysis |
artefact.cc:467 |
Medium |
V1051 |
Consider checking for misprints. It's possible that the 'item_props' should be used inside 'item_attack_skill' function. |
| General Analysis |
artefact.cc:896 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
artefact.cc:1438 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 1438, 1490 |
| General Analysis |
artefact.cc:1536 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 1536, 1558 |
| General Analysis |
artefact.cc:1665 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
nearby-danger.h:151 |
Medium |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: test. |
| General Analysis |
attack.cc:197 |
High |
V595 |
The 'weapon' pointer was utilized before it was verified against nullptr. Check lines: 197, 202. |
| General Analysis |
attack.cc:692 |
Medium |
V1048 |
The 'beam.colour' variable was assigned the same value. |
| General Analysis |
attack.cc:869 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
attack.cc:1457 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
attack.cc:51 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: attk_type, attk_flavour, attk_damage. |
| General Analysis |
fineff.h:293 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: damage. |
| General Analysis |
beam.cc:981 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
beam.cc:1240 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
beam.cc:1950 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
beam.cc:1992 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
beam.cc:2346 |
Medium |
V560 |
A part of conditional expression is always true: !is_explosion. |
| General Analysis |
beam.cc:2840 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
beam.cc:2847 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
beam.cc:3870 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
beam.cc:4044 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
beam.cc:4341 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
beam.cc:6003 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
beam.cc:6020 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
butcher.cc:172 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
scroller.h:24 |
High |
V1053 |
Calling the 'add_text' virtual function in the constructor may lead to unexpected result at runtime. |
| General Analysis |
chardump.cc:1170 |
High |
V610 |
Undefined behavior. Check the shift operator '<<'. The left operand is negative ('auxtype' = [-32768..32767]). |
| General Analysis |
cloud.cc:403 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
cloud.cc:805 |
High |
V595 |
The 'mons' pointer was utilized before it was verified against nullptr. Check lines: 805, 819. |
| General Analysis |
cloud.cc:856 |
Medium |
V1016 |
Expression 'ctype >= CLOUD_NONE' is always true. |
| General Analysis |
cloud.cc:1281 |
Medium |
V1051 |
Consider checking for misprints. It's possible that the 'rain_damage' should be checked here. |
| General Analysis |
cloud.cc:1863 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'mark'. |
| General Analysis |
clua.cc:472 |
Medium |
V779 |
Unreachable code detected. It is possible that an error is present. |
| General Analysis |
clua.cc:850 |
Medium |
V1004 |
The 'vm' pointer was used unsafely after it was verified against nullptr. Check lines: 848, 850. |
| General Analysis |
clua.cc:1131 |
Medium |
V547 |
Expression 'lua' is always true. |
| General Analysis |
command.cc:1201 |
High |
V1053 |
Calling the 'process_key' virtual function in the constructor may lead to unexpected result at runtime. |
| General Analysis |
coordit.cc:277 |
Medium |
V768 |
The variable 'los' is of enum type. It is odd that it is used as a variable of a Boolean-type. |
| General Analysis |
coordit.cc:279 |
Medium |
V768 |
The variable 'los' is of enum type. It is odd that it is used as a variable of a Boolean-type. |
| General Analysis |
coordit.cc:284 |
Medium |
V768 |
The variable 'los' is of enum type. It is odd that it is used as a variable of a Boolean-type. |
| General Analysis |
coordit.cc:286 |
Medium |
V768 |
The variable 'los' is of enum type. It is odd that it is used as a variable of a Boolean-type. |
| General Analysis |
jobs.h:30 |
Medium |
V1016 |
Expression '0 <= job' is always true. |
| General Analysis |
dbg-asrt.cc:209 |
Medium |
V560 |
A part of conditional expression is always true: sk >= 0. |
| General Analysis |
dbg-asrt.cc:211 |
Medium |
V560 |
A part of conditional expression is always true: sk >= 0. |
| General Analysis |
dbg-asrt.cc:428 |
Medium |
V1016 |
Expression 'type < MAT_FEATURE' is always false. |
| General Analysis |
dbg-asrt.cc:510 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'lua_marker'. |
| General Analysis |
dbg-scan.cc:129 |
High |
V510 |
The 'mprf' function is not expected to receive class-type variable as fourth actual argument. |
| General Analysis |
dbg-scan.cc:669 |
Medium |
V768 |
The variable 'portal' is of enum type. It is odd that it is used as a variable of a Boolean-type. |
| General Analysis |
dbg-scan.cc:676 |
Medium |
V768 |
The variable 'exit' is of enum type. It is odd that it is used as a variable of a Boolean-type. |
| General Analysis |
decks.cc:534 |
Medium |
V506 |
Pointer to local variable 'numbers' is stored outside the scope of this variable. Such a pointer will become invalid. |
| General Analysis |
decks.cc:730 |
Medium |
V506 |
Pointer to local variable 'numbers' is stored outside the scope of this variable. Such a pointer will become invalid. |
| General Analysis |
decks.cc:1524 |
Medium |
V1048 |
The 'beam.is_tracer' variable was assigned the same value. |
| General Analysis |
decks.cc:1530 |
Medium |
V1048 |
The 'beam.real_flavour' variable was assigned the same value. |
| General Analysis |
decks.cc:1534 |
Medium |
V1048 |
The 'beam.is_explosion' variable was assigned the same value. |
| General Analysis |
decks.cc:1534 |
Medium |
V519 |
The 'beam.is_explosion' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 1525, 1534. |
| General Analysis |
delay.cc:853 |
Medium |
V547 |
Expression 'm' is always true. |
| General Analysis |
describe.cc:658 |
Medium |
V1016 |
Expression 'trap >= 0' is always true. |
| General Analysis |
describe.cc:3236 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
describe-god.cc:289 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
describe-god.cc:1013 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
describe-spells.cc:101 |
Medium |
V786 |
It is odd that value 'type = MON_SPELL_WIZARD' is assigned to the 'is_spell' variable. The value range of 'is_spell' variable: [0, 1]. |
| General Analysis |
dgn-overview.cc:716 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
dgn-overview.cc:892 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
dgn-overview.cc:918 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
dgn-proclayouts.cc:78 |
Medium |
V1029 |
Numeric Truncation Error. Return value of the 'size' function is written to the 8-bit variable. |
| General Analysis |
dgn-proclayouts.cc:119 |
Medium |
V636 |
The 'offset / 3' expression was implicitly cast from 'int' type to 'double' type. Consider utilizing an explicit type cast to avoid the loss of a fractional part. An example: double A = (double)(X) / Y;. |
| General Analysis |
dgn-proclayouts.cc:242 |
High |
V573 |
Uninitialized variable 'ri' was used. The variable was used to initialize itself. |
| General Analysis |
dgn-proclayouts.cc:444 |
Medium |
V547 |
Expression 'enable_forest' is always true. |
| General Analysis |
dgn-shoals.cc:127 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
dgn-shoals.cc:327 |
Medium |
V547 |
Expression 'npoints < size_limit' is always true. |
| General Analysis |
directn.cc:910 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
directn.cc:1333 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
directn.cc:498 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: valid_shadow_step. |
| General Analysis |
domino.h:206 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: colours_. |
| General Analysis |
domino.h:253 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: colours_. |
| General Analysis |
domino.h:298 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: colours_. |
| General Analysis |
dungeon.cc:982 |
Medium |
V768 |
The variable 'fill' is of enum type. It is odd that it is used as a variable of a Boolean-type. |
| General Analysis |
dungeon.cc:2301 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
dungeon.cc:3704 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
dungeon.cc:5996 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
dungeon.cc:6146 |
Medium |
V522 |
There might be dereferencing of a potential null pointer. |
| General Analysis |
dungeon.cc:6294 |
Medium |
V560 |
A part of conditional expression is always false: stair_to_find == DNGN_FLOOR. |
| General Analysis |
dungeon.cc:6752 |
Medium |
V547 |
Expression '!stairs_unique' is always false. |
| General Analysis |
dungeon.cc:2810 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: label. |
| General Analysis |
evoke.cc:709 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
feature.cc:216 |
Medium |
V1016 |
Expression 'feat >= 0' is always true. |
| General Analysis |
fight.cc:808 |
Medium |
V560 |
A part of conditional expression is always true: min_delay < 10. |
| General Analysis |
fight.cc:1040 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. Consider inspecting the 'victims.empty() || penancen &&!penance' expression. |
| General Analysis |
files.cc:739 |
Medium |
V547 |
Expression 'searchpath.empty()' is always false. |
| General Analysis |
files.cc:1148 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
files.cc:1527 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
files.cc:1864 |
Medium |
V560 |
A part of conditional expression is always true: load_mode == LOAD_ENTER_LEVEL. |
| General Analysis |
files.cc:1799 |
Medium |
V581 |
The conditional expressions of the 'if' statements situated alongside each other are identical. Check lines: 1795, 1799. |
| General Analysis |
files.cc:2830 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: allow_unvisited. |
| General Analysis |
fineff.cc:180 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'ssdfe'. |
| General Analysis |
food.cc:300 |
Medium |
V602 |
Consider inspecting the '(you.hunger_state > HS_SATIATED)' expression. '>' possibly should be replaced with '>>'. |
| General Analysis |
food.cc:428 |
Medium |
V768 |
The expression 'you.undead_state()' is of enum type. It is odd that it is used as an expression of a Boolean-type. |
| General Analysis |
format.cc:157 |
High |
V781 |
The value of the 'tag' index is checked after it was used. Perhaps there is a mistake in program logic. |
| General Analysis |
ghost.cc:772 |
Medium |
V1016 |
Expression 'ghost.religion < GOD_NO_GOD' is always false. |
| General Analysis |
god-abil.cc:1907 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
god-abil.cc:2121 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
god-abil.cc:3948 |
High |
V547 |
Expression 'mut == MUT_DOPEY' is always true. |
| General Analysis |
skill-menu.h:71 |
Medium |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: m_sk, m_name, m_level, m_progress, m_aptitude. |
| General Analysis |
god-blessing.cc:808 |
Medium |
V560 |
A part of conditional expression is always true: blessing.empty(). |
| General Analysis |
god-menu.cc:37 |
Medium |
V768 |
The variable 'feat' is of enum type. It is odd that it is used as a variable of a Boolean-type. |
| General Analysis |
god-passive.cc:1510 |
High |
V1051 |
Consider checking for misprints. It's possible that the 'mon->target' should be used inside 'actor_at' function. |
| General Analysis |
hiscores.cc:1197 |
Medium |
V668 |
There is no sense in testing the 'fields' pointer against null, as the memory was allocated using the 'new' operator. The exception will be generated in the case of memory allocation error. |
| General Analysis |
hiscores.cc:2233 |
Medium |
V768 |
The expression 'you.undead_state()' is of enum type. It is odd that it is used as an expression of a Boolean-type. |
| General Analysis |
initfile.cc:587 |
Medium |
V1016 |
Expression 'wpn_type >= 0' is always true. |
| General Analysis |
initfile.cc:3093 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
initfile.cc:3104 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
initfile.cc:1799 |
Medium |
V730 |
It is possible that not all members of a class are initialized inside the constructor. Consider inspecting: macro_meta_entry, evil_colour. |
| General Analysis |
invent.cc:639 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'item'. |
| General Analysis |
invent.cc:940 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'inv'. |
| General Analysis |
invent.cc:1137 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
invent.cc:1395 |
Medium |
V1048 |
The 'need_getch' variable was assigned the same value. |
| General Analysis |
invent.cc:1624 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
invent.cc:2141 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
item-use.cc:247 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
item-use.cc:356 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'ie'. |
| General Analysis |
item-use.cc:583 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
item-use.cc:1598 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
item-name.cc:104 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
item-name.cc:522 |
Medium |
V768 |
The variable 'override_brand' is of enum type. It is odd that it is used as a variable of a Boolean-type. |
| General Analysis |
item-name.cc:835 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
item-name.cc:1254 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
item-name.cc:1388 |
Medium |
V768 |
The variable 'override_brand' is of enum type. It is odd that it is used as a variable of a Boolean-type. |
| General Analysis |
item-name.cc:1450 |
Medium |
V560 |
A part of conditional expression is always true: desc != DESC_DBNAME. |
| General Analysis |
item-name.cc:1608 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
item-name.cc:1715 |
Medium |
V560 |
A part of conditional expression is always false: pqual < 0. |
| General Analysis |
item-name.cc:1718 |
Medium |
V560 |
A part of conditional expression is always false: pcolour < 0. |
| General Analysis |
item-name.cc:1718 |
Medium |
V560 |
A part of conditional expression is always false: pcolour >= PDC_NCOLOURS. |
| General Analysis |
item-name.cc:1957 |
Medium |
V560 |
A part of conditional expression is always true: !basename. |
| General Analysis |
item-name.cc:1999 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
item-name.cc:2336 |
Medium |
V560 |
A part of conditional expression is always false: prev_char == ' '. |
| General Analysis |
item-name.cc:2338 |
Medium |
V728 |
An excessive check can be simplified. The '||' operator is surrounded by opposite expressions 'name.length() <= 2' and 'name.length() > 2'. |
| General Analysis |
item-name.cc:2366 |
Medium |
V560 |
A part of conditional expression is always false: name.empty(). |
| General Analysis |
item-name.cc:2366 |
Medium |
V560 |
A part of conditional expression is always false: prev_char == ' '. |
| General Analysis |
item-name.cc:2370 |
Medium |
V560 |
A part of conditional expression is always true: !name.empty(). |
| General Analysis |
item-name.cc:2372 |
Medium |
V560 |
A part of conditional expression is always true: !beg. |
| General Analysis |
item-name.cc:2785 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
item-name.cc:2874 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
item-name.cc:2877 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
item-name.cc:3011 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
item-name.cc:3009 |
Medium |
V768 |
The expression 'you.undead_state(temp)' is of enum type. It is odd that it is used as an expression of a Boolean-type. |
| General Analysis |
item-name.cc:3041 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
item-name.cc:3039 |
Medium |
V768 |
The expression 'you.undead_state(temp)' is of enum type. It is odd that it is used as an expression of a Boolean-type. |
| General Analysis |
item-name.cc:3052 |
Medium |
V768 |
The expression 'you.undead_state(temp)' is of enum type. It is odd that it is used as an expression of a Boolean-type. |
| General Analysis |
item-prop.cc:1949 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
item-prop.cc:1971 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
item-prop.cc:2017 |
Medium |
V1016 |
Expression 'ammo < 0' is always false. |
| General Analysis |
items.cc:212 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
items.cc:1276 |
Medium |
V560 |
A part of conditional expression is always true: iorig > GOD_NO_GOD. |
| General Analysis |
items.cc:2209 |
Medium |
V1001 |
The 'quant_got' variable is assigned but is not used by the end of the function. |
| General Analysis |
items.cc:2862 |
Medium |
V547 |
Expression '!old_inscription.empty()' is always false. |
| General Analysis |
items.cc:3338 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
items.cc:3403 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
items.cc:4410 |
Medium |
V547 |
Expression 'create_for_real' is always true. |
| General Analysis |
items.cc:4452 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 4452, 4457 |
| General Analysis |
items.cc:4504 |
Medium |
V547 |
Expression '!item.sub_type' is always true. |
| General Analysis |
items.cc:4672 |
High |
V523 |
The 'then' statement is equivalent to the 'else' statement. |
| General Analysis |
items.cc:4675 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 4675, 4680 |
| General Analysis |
items.cc:4591 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 4591, 4598 |
| General Analysis |
job-data.h:24 |
High |
V1043 |
A global object variable 'job_data' is declared in the header. Multiple copies of it will be created in all translation units that include this header file. |
| General Analysis |
json.cc:83 |
Medium |
V701 |
realloc() possible leak: when realloc() fails in allocating memory, original pointer 'sb->start' is lost. Consider assigning realloc() to a temporary pointer. |
| General Analysis |
json.cc:1248 |
Medium |
V779 |
Unreachable code detected. It is possible that an error is present. |
| General Analysis |
kills.cc:49 |
Medium |
V1016 |
Expression 'kc >= KC_YOU' is always true. |
| General Analysis |
known-items.cc:105 |
Medium |
V522 |
Dereferencing of the null pointer 'inv' might take place. The potential null pointer is passed into 'KnownEntry' function. Inspect the first argument. Check lines: 105, 222. |
| General Analysis |
l-crawl.cc:243 |
Medium |
V601 |
The bool type is implicitly cast to the double type. Inspect the second argument. |
| General Analysis |
l-debug.cc:165 |
Medium |
V1048 |
The 'beam.glyph' variable was assigned the same value. |
| General Analysis |
l-dgn.cc:1251 |
High |
V590 |
Consider inspecting the 'kc == KC_NCATEGORIES || kc != KC_OTHER' expression. The expression is excessive or contains a misprint. |
| General Analysis |
l-dgnbld.cc:815 |
Medium |
V764 |
Possible incorrect order of arguments passed to '_calculate_join_the_dots_path' function: 'to' and 'from'. |
| General Analysis |
l-dgngrd.cc:47 |
Medium |
V768 |
The variable 'f' is of enum type. It is odd that it is used as a variable of a Boolean-type. |
| General Analysis |
l-dgngrd.cc:108 |
Medium |
V768 |
The variable 'feat' is of enum type. It is odd that it is used as a variable of a Boolean-type. |
| General Analysis |
l-food.cc:68 |
Medium |
V560 |
A part of conditional expression is always true: item. |
| General Analysis |
l-food.cc:83 |
Medium |
V560 |
A part of conditional expression is always true: item. |
| General Analysis |
l-food.cc:94 |
Medium |
V547 |
Expression 'item' is always true. |
| General Analysis |
l-food.cc:109 |
Medium |
V560 |
A part of conditional expression is always true: item. |
| General Analysis |
l-food.cc:148 |
Medium |
V560 |
A part of conditional expression is always true: item. |
| General Analysis |
l-item.cc:759 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
l-item.cc:812 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
l-item.cc:1413 |
Medium |
V560 |
A part of conditional expression is always true: q != - 1. |
| General Analysis |
l-los.cc:57 |
Medium |
V601 |
The bool type is implicitly cast to the double type. Inspect the second argument. |
| General Analysis |
l-moninf.cc:572 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
l-mons.cc:576 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
l-mons.cc:606 |
Medium |
V1016 |
Expression '0 <= beh' is always true. |
| General Analysis |
loading-screen.cc:17 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: scale. |
| General Analysis |
lookup-help.cc:647 |
Medium |
V768 |
The variable 'feat' is of enum type. It is odd that it is used as a variable of a Boolean-type. |
| General Analysis |
los.cc:393 |
Medium |
V799 |
The 'qi' variable is not used after memory has been allocated for it. Consider checking the use of this variable. |
| General Analysis |
macro.cc:1365 |
Medium |
V547 |
Expression 'cmd == CMD_NO_CMD' is always false. |
| General Analysis |
makeitem.cc:609 |
Medium |
V547 |
Expression 'type == 0' is always false. |
| General Analysis |
makeitem.cc:1941 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
map-knowledge.cc:109 |
Medium |
V1051 |
Consider checking for misprints. It's possible that the 'passive' should be used inside 'have_passive' function. |
| General Analysis |
mapdef.cc:227 |
Medium |
V794 |
The assignment operator should be protected from the case of 'this == &place'. |
| General Analysis |
mapdef.cc:432 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mapdef.cc:1707 |
Medium |
V547 |
Expression '!overlay' is always false. |
| General Analysis |
mapdef.cc:1712 |
Medium |
V547 |
Expression '!key' is always false. |
| General Analysis |
mapdef.cc:1727 |
Medium |
V547 |
Expression '!overlay' is always false. |
| General Analysis |
mapdef.cc:1732 |
Medium |
V547 |
Expression '!key' is always false. |
| General Analysis |
mapdef.cc:4361 |
Medium |
V1048 |
The 'nheads' variable was assigned the same value. |
| General Analysis |
mapdef.cc:5884 |
High |
V629 |
Consider inspecting the '1 << i' expression. Bit shifting of the 32-bit value with a subsequent expansion to the 64-bit type. |
| General Analysis |
mapdef.cc:460 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: next_keyspec_idx. |
| General Analysis |
mapdef.cc:467 |
Medium |
V730 |
It is possible that not all members of a class are initialized inside the constructor. Consider inspecting: next_keyspec_idx. |
| General Analysis |
mapdef.cc:2195 |
Medium |
V730 |
It is possible that not all members of a class are initialized inside the constructor. Consider inspecting: original. |
| General Analysis |
mapmark.cc:1349 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'posm'. |
| General Analysis |
maps.cc:245 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. Consider inspecting the 'must_rot || can_rot && coinflip()' expression. |
| General Analysis |
maps.cc:272 |
Medium |
V560 |
A part of conditional expression is always true: exact_fit. |
| General Analysis |
melee-attack.cc:98 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
melee-attack.cc:1822 |
Medium |
V768 |
The expression 'god_hates_item_handling(* weapon)' is of enum type. It is odd that it is used as an expression of a Boolean-type. |
| General Analysis |
melee-attack.cc:2008 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. Consider inspecting the 'dam <= 0 || dam < 4 && coinflip()' expression. |
| General Analysis |
melee-attack.cc:2328 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
melee-attack.cc:3297 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
melee-attack.cc:3420 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
melee-attack.cc:3444 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
menu.cc:2281 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
menu.cc:4019 |
Medium |
V547 |
Expression '!m_visible' is always false. |
| General Analysis |
menu.cc:4019 |
Medium |
V649 |
There are two 'if' statements with identical conditional expressions. The first 'if' statement contains function return. This means that the second 'if' statement is senseless. Check lines: 4016, 4019. |
| General Analysis |
menu.cc:3422 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: m_visible. |
| General Analysis |
menu.cc:70 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: m_height, m_nat_column_width, m_draw_tiles. |
| General Analysis |
message-stream.cc:110 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'ps'. |
| General Analysis |
message-stream.cc:117 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'ps'. |
| General Analysis |
message-stream.cc:52 |
Medium |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: internal_buf. |
| General Analysis |
message.cc:174 |
Medium |
V560 |
A part of conditional expression is always true: Options.msg_condense_repeats. |
| General Analysis |
message.cc:723 |
Medium |
V618 |
It's dangerous to call the 'cprintf' function in such a manner, as the line being passed could contain format specification. The example of the safe code: printf("%s", str); |
| General Analysis |
message.cc:1088 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 1088, 1114 |
| General Analysis |
message.cc:1204 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'heapbuf'. |
| General Analysis |
message.cc:1666 |
Medium |
V560 |
A part of conditional expression is always true: size > 0. |
| General Analysis |
mon-act.cc:140 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-act.cc:618 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-act.cc:1389 |
Medium |
V678 |
An object is used as an argument to its own method. Consider checking the first actual argument of the 'banish' function. |
| General Analysis |
mon-act.cc:1665 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-act.cc:1834 |
High |
V583 |
The '?:' operator, regardless of its conditional expression, always returns one and the same value. |
| General Analysis |
mon-act.cc:2628 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-act.cc:2835 |
Medium |
V601 |
The result of '+' operator is implicitly cast to the bool type. |
| General Analysis |
mon-act.cc:2842 |
Medium |
V601 |
The result of '+' operator is implicitly cast to the bool type. |
| General Analysis |
mon-behv.cc:71 |
Medium |
V1051 |
Consider checking for misprints. It's possible that the 'foe_mons' should be used inside 'summon_can_attack' function. |
| General Analysis |
mon-behv.cc:374 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-behv.cc:489 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-behv.cc:601 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-behv.cc:943 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-behv.cc:1368 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-cast.cc:703 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-cast.cc:1225 |
Medium |
V1048 |
The 'beam.thrower' variable was assigned the same value. |
| General Analysis |
mon-cast.cc:1226 |
Medium |
V1048 |
The 'beam.pierce' variable was assigned the same value. |
| General Analysis |
mon-cast.cc:1227 |
Medium |
V1048 |
The 'beam.is_explosion' variable was assigned the same value. |
| General Analysis |
mon-cast.cc:1249 |
Medium |
V519 |
The 'beam.glyph' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 1223, 1249. |
| General Analysis |
mon-cast.cc:1250 |
Medium |
V519 |
The 'beam.thrower' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 1225, 1250. |
| General Analysis |
mon-cast.cc:1886 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-cast.cc:2031 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-cast.cc:2112 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-cast.cc:2220 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-cast.cc:3116 |
Medium |
V1048 |
The 'tracer.foe_ratio' variable was assigned the same value. |
| General Analysis |
mon-cast.cc:3700 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-cast.cc:4220 |
Medium |
V602 |
Consider inspecting the '(spell_hd > 15)' expression. '>' possibly should be replaced with '>>'. |
| General Analysis |
mon-cast.cc:4475 |
Medium |
V560 |
A part of conditional expression is always true: !already_mesmerised. |
| General Analysis |
mon-cast.cc:7360 |
Medium |
V602 |
Consider inspecting the '(mon.spell_hd(SPELL_AWAKEN_EARTH) > 15)' expression. '>' possibly should be replaced with '>>'. |
| General Analysis |
mon-cast.cc:7444 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-cast.cc:7557 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-cast.cc:7617 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-cast.cc:7688 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-cast.cc:7699 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-cast.cc:7785 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-cast.cc:7788 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-death.cc:955 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'marker'. |
| General Analysis |
mon-death.cc:2101 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-death.cc:2161 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-death.cc:2225 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-death.cc:2988 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-ench.cc:215 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 215, 219, 304 |
| General Analysis |
mon-ench.cc:2307 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 2307, 2310 |
| General Analysis |
mon-ench.cc:2177 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 2177, 2189 |
| General Analysis |
mon-gear.cc:1273 |
Medium |
V560 |
A part of conditional expression is always false: !floor_tile.empty(). |
| General Analysis |
mon-gear.cc:2070 |
Medium |
V796 |
It is possible that 'break' statement is missing in switch statement. |
| General Analysis |
mon-gear.cc:1842 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 1842, 2119 |
| General Analysis |
mon-gear.cc:2005 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 2005, 2049, 2100 |
| General Analysis |
mon-gear.cc:1744 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 1744, 1913, 2090 |
| General Analysis |
mon-gear.cc:1817 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 1817, 2038 |
| General Analysis |
mon-movetarget.cc:922 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-pathfind.cc:191 |
Medium |
V560 |
A part of conditional expression is always false: (idir = 0). |
| General Analysis |
mon-pathfind.cc:362 |
Medium |
V547 |
Expression 'path.empty()' is always false. |
| General Analysis |
mon-pathfind.cc:66 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: traverse_in_sight. |
| General Analysis |
mon-place.cc:104 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-place.cc:131 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-place.cc:251 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-place.cc:290 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-place.cc:367 |
Medium |
V768 |
The expression 'player_will_anger_monster(mt)' is of enum type. It is odd that it is used as an expression of a Boolean-type. |
| General Analysis |
mon-place.cc:423 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-place.cc:565 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-place.cc:668 |
Medium |
V547 |
Expression 'mg.cls == MONS_PROGRAM_BUG' is always false. |
| General Analysis |
mon-place.cc:2456 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-place.cc:2466 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-place.cc:2476 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-place.cc:2486 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-place.cc:2850 |
Medium |
V768 |
The variable 'why' is of enum type. It is odd that it is used as a variable of a Boolean-type. |
| General Analysis |
mon-place.cc:2916 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-poly.cc:127 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-poly.cc:171 |
Medium |
V560 |
A part of conditional expression is always true: power == PPT_LESS. |
| General Analysis |
mon-poly.cc:174 |
Medium |
V560 |
A part of conditional expression is always true: power == PPT_MORE. |
| General Analysis |
mon-poly.cc:287 |
Medium |
V768 |
The expression 'player_will_anger_monster(real_targetc)' is of enum type. It is odd that it is used as an expression of a Boolean-type. |
| General Analysis |
mon-poly.cc:463 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-poly.cc:573 |
Medium |
V560 |
A part of conditional expression is always true: x >= 3. |
| General Analysis |
mon-poly.cc:575 |
Medium |
V560 |
A part of conditional expression is always true: x >= 5. |
| General Analysis |
mon-project.cc:461 |
Medium |
V1004 |
The 'victim' pointer was used unsafely after it was verified against nullptr. Check lines: 458, 461. |
| General Analysis |
mon-speak.cc:417 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-speak.cc:601 |
Medium |
V560 |
A part of conditional expression is always true: msg.empty(). |
| General Analysis |
mon-tentacle.cc:314 |
Medium |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: target_positions, connection_constraints, base_monster, max_string_distance. |
| General Analysis |
mon-tentacle.cc:426 |
Medium |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: connection_constraints, base_monster. |
| General Analysis |
mon-transit.cc:225 |
Medium |
V730 |
It is possible that not all members of a class are initialized inside the constructor. Consider inspecting: transit_start_time. |
| General Analysis |
mon-util.cc:175 |
Medium |
V547 |
Expression 'valid_mons.empty()' is always false. |
| General Analysis |
mon-util.cc:202 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-util.cc:375 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-util.cc:1115 |
High |
V595 |
The 'item' pointer was utilized before it was verified against nullptr. Check lines: 1115, 1129. |
| General Analysis |
mon-util.cc:1194 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-util.cc:1398 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-util.cc:1492 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-util.cc:3215 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
mon-util.cc:4642 |
Medium |
V560 |
A part of conditional expression is always false: s_type < 0. |
| General Analysis |
mon-util.cc:4839 |
Medium |
V1048 |
The 'mon.max_hit_points' variable was assigned the same value. |
| General Analysis |
monster.cc:271 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
monster.cc:692 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
monster.cc:760 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
monster.cc:1207 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
monster.cc:1430 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
monster.cc:1601 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
monster.cc:1923 |
Medium |
V560 |
A part of conditional expression is always true: !force. |
| General Analysis |
monster.cc:1958 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
monster.cc:2398 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
monster.cc:2995 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
monster.cc:3949 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
monster.cc:4328 |
Medium |
V1051 |
Consider checking for misprints. It's possible that the 'hit_points' should be checked here. |
| General Analysis |
monster.cc:4843 |
Medium |
V644 |
A suspicious function declaration. It is possible that the 'dist' type object was meant to be created. |
| General Analysis |
monster.cc:4923 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
monster.cc:5031 |
Medium |
V1019 |
Compound assignment expression 'amount /= 2' is used inside condition. |
| General Analysis |
monster.cc:6261 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
monster.cc:6597 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
monster.cc:72 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: ench_countdown, summoner, damage_friendly, damage_total. |
| General Analysis |
movement.cc:216 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
movement.cc:749 |
Medium |
V560 |
A part of conditional expression is always true: targ_pass. |
| General Analysis |
mutation.cc:261 |
Medium |
V1016 |
Expression 'mut >= 0' is always true. |
| General Analysis |
mutation.cc:1948 |
Medium |
V768 |
The variable 'mutat' is of enum type. It is odd that it is used as a variable of a Boolean-type. |
| General Analysis |
mutation.cc:2217 |
Medium |
V560 |
A part of conditional expression is always true: result.empty(). |
| General Analysis |
nearby-danger.cc:148 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
nearby-danger.cc:409 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
newgame.cc:269 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. Consider inspecting the 'spfirst ||!jobfirst && coinflip()' expression. |
| General Analysis |
newgame.cc:322 |
Medium |
V768 |
The expression 'job_allowed(ng.species, ng.job)' is of enum type. It is odd that it is used as an expression of a Boolean-type. |
| General Analysis |
newgame.cc:1003 |
Medium |
V768 |
The expression 'job_allowed(ng.species, ng.job)' is of enum type. It is odd that it is used as an expression of a Boolean-type. |
| General Analysis |
newgame.cc:2333 |
High |
V562 |
It's odd to compare a bool type value with a value of 4. |
| General Analysis |
newgame.cc:2333 |
Medium |
V560 |
A part of conditional expression is always false. |
| General Analysis |
notes.cc:75 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
notes.cc:327 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 327, 372 |
| General Analysis |
notes.cc:318 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 318, 324 |
| General Analysis |
notes.cc:394 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
ouch.cc:155 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 155, 234 |
| General Analysis |
ouch.cc:424 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
ouch.cc:450 |
Medium |
V560 |
A part of conditional expression is always true: death_type != KILLED_BY_DISINT. |
| General Analysis |
output.cc:242 |
Medium |
V618 |
It's dangerous to call the 'cprintf' function in such a manner, as the line being passed could contain format specification. The example of the safe code: printf("%s", str); |
| General Analysis |
output.cc:1400 |
Medium |
V560 |
A part of conditional expression is always false: you.wield_change. |
| General Analysis |
package.cc:626 |
Medium |
V779 |
Unreachable code detected. It is possible that an error is present. |
| General Analysis |
package.cc:826 |
Medium |
V730 |
It is possible that not all members of a class are initialized inside the constructor. Consider inspecting: off, z_buffer. |
| General Analysis |
package.cc:834 |
Medium |
V730 |
It is possible that not all members of a class are initialized inside the constructor. Consider inspecting: off, z_buffer. |
| General Analysis |
pattern.cc:73 |
Medium |
V668 |
There is no sense in testing the 're' pointer against null, as the memory was allocated using the 'new' operator. The exception will be generated in the case of memory allocation error. |
| General Analysis |
pattern.cc:143 |
High |
V790 |
It is odd that the assignment operator takes an object by a constant reference and returns this object. |
| General Analysis |
perlin.cc:441 |
Medium |
V636 |
The '1 / divisor' expression was implicitly cast from 'int' type to 'double' type. Consider utilizing an explicit type cast to avoid the loss of a fractional part. An example: double A = (double)(X) / Y;. |
| General Analysis |
playable.cc:57 |
Medium |
V768 |
The expression 'job_allowed(sp, job)' is of enum type. It is odd that it is used as an expression of a Boolean-type. |
| General Analysis |
player-act.cc:317 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
player-act.cc:638 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
player-reacts.cc:589 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
player-reacts.cc:805 |
Medium |
V560 |
A part of conditional expression is always true: !sanguine_armour_is_valid. |
| General Analysis |
player-reacts.cc:890 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
player.cc:571 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
player.cc:819 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
player.cc:1507 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
player.cc:1540 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
player.cc:1824 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
player.cc:3191 |
Medium |
V547 |
Expression '!attrib.empty()' is always true. |
| General Analysis |
player.cc:4196 |
Medium |
V768 |
The expression 'you.undead_state()' is of enum type. It is odd that it is used as an expression of a Boolean-type. |
| General Analysis |
player.cc:4717 |
Medium |
V560 |
A part of conditional expression is always true: !quiet. |
| General Analysis |
player.cc:6141 |
Medium |
V768 |
The expression 'undead_state()' is of enum type. It is odd that it is used as an expression of a Boolean-type. |
| General Analysis |
player.cc:6210 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
player.cc:6229 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
player.cc:6292 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
player.cc:6411 |
Medium |
V547 |
Expression 'found_nonartefact' is always false. |
| General Analysis |
player.cc:7718 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
potion.cc:97 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
prompt.cc:129 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
prompt.cc:240 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| Fail/Info |
prompt.cc:1 |
|
V002 |
Some diagnostic messages may contain incorrect line number in this file. |
| General Analysis |
randbook.cc:487 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. Consider inspecting the 'level <= 3 || level == 4 && coinflip()' expression. |
| General Analysis |
randbook.cc:931 |
Medium |
V560 |
A part of conditional expression is always true: !god_gift. |
| General Analysis |
ranged-attack.cc:313 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
ranged-attack.cc:452 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
religion.cc:1000 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
religion.cc:1163 |
Medium |
V547 |
Expression 'gifts <= 12' is always true. |
| General Analysis |
religion.cc:1264 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
religion.cc:1352 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
religion.cc:1370 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
religion.cc:1502 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
religion.cc:1553 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
religion.cc:2015 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
religion.cc:2343 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
religion.cc:2378 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
religion.cc:4672 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
scroller.cc:110 |
Medium |
V519 |
The 'more' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 109, 110. |
| General Analysis |
shopping.cc:751 |
Medium |
V636 |
The 'spells.size() / 6' expression was implicitly cast from 'size_t' type to 'double' type. Consider utilizing an explicit type cast to avoid the loss of a fractional part. An example: double A = (double)(X) / Y;. |
| General Analysis |
shopping.cc:1043 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'dynamic_cast< ShopEntry * > (item)'. |
| General Analysis |
shopping.cc:1112 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'dynamic_cast< ShopEntry * > (item)'. |
| General Analysis |
shopping.cc:1231 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'dynamic_cast< ShopEntry * > (a)'. |
| General Analysis |
shopping.cc:1232 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'dynamic_cast< ShopEntry * > (b)'. |
| General Analysis |
shopping.cc:1240 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'dynamic_cast< ShopEntry * > (a)'. |
| General Analysis |
shopping.cc:1241 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'dynamic_cast< ShopEntry * > (b)'. |
| General Analysis |
shopping.cc:1248 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'dynamic_cast< ShopEntry * > (a)'. |
| General Analysis |
shopping.cc:1249 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'dynamic_cast< ShopEntry * > (b)'. |
| General Analysis |
shopping.cc:1293 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'dynamic_cast< ShopEntry * > (entry)'. |
| General Analysis |
shopping.cc:1302 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'dynamic_cast< ShopEntry * > (entry)'. |
| General Analysis |
shopping.cc:1321 |
Medium |
V522 |
There might be dereferencing of a potential null pointer. |
| General Analysis |
shopping.cc:1345 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'entry'. |
| General Analysis |
show.cc:176 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
showsymb.cc:314 |
Medium |
V768 |
The variable 'feat' is of enum type. It is odd that it is used as a variable of a Boolean-type. |
| General Analysis |
showsymb.cc:329 |
Medium |
V768 |
The expression 'cell.feat()' is of enum type. It is odd that it is used as an expression of a Boolean-type. |
| General Analysis |
skill-menu.cc:309 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
skill-menu.cc:1191 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
skill-menu.cc:1895 |
Medium |
V796 |
It is possible that 'break' statement is missing in switch statement. |
| General Analysis |
skill-menu.cc:1918 |
Medium |
V547 |
Expression 'sel_id <= SKM_SWITCH_FIRST' is always true. |
| General Analysis |
skill-menu.cc:60 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: m_sk. |
| General Analysis |
skill-menu.cc:551 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: m_state. |
| General Analysis |
skills.cc:300 |
Medium |
V560 |
A part of conditional expression is always true: n > 0. |
| General Analysis |
skills.cc:312 |
Medium |
V560 |
A part of conditional expression is always true: n > 0. |
| General Analysis |
skills.cc:1406 |
Medium |
V1051 |
Consider checking for misprints. It's possible that the 'you_skill' should be used inside 'ash_has_skill_boost' function. |
| General Analysis |
species-data.h:24 |
High |
V1043 |
A global object variable 'species_data' is declared in the header. Multiple copies of it will be created in all translation units that include this header file. |
| General Analysis |
spl-book.cc:754 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
spl-book.cc:799 |
High |
V1053 |
Calling the 'calc_title' virtual function in the constructor may lead to unexpected result at runtime. |
| General Analysis |
spl-cast.cc:226 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
spl-cast.cc:244 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
spl-cast.cc:1511 |
Medium |
V547 |
Expression '!allow_fail' is always false. |
| General Analysis |
spl-damage.cc:178 |
Medium |
V1048 |
The 'beam.pierce' variable was assigned the same value. |
| General Analysis |
spl-damage.cc:179 |
Medium |
V1048 |
The 'beam.is_explosion' variable was assigned the same value. |
| General Analysis |
spl-damage.cc:180 |
Medium |
V1048 |
The 'beam.is_tracer' variable was assigned the same value. |
| General Analysis |
spl-damage.cc:567 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
spl-damage.cc:629 |
High |
V595 |
The 'mons' pointer was utilized before it was verified against nullptr. Check lines: 629, 659. |
| General Analysis |
spl-damage.cc:736 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
spl-damage.cc:1923 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
spl-damage.cc:3098 |
High |
V595 |
The 'foxfire' pointer was utilized before it was verified against nullptr. Check lines: 3098, 3105. |
| General Analysis |
spl-damage.cc:3308 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'tmarker'. |
| General Analysis |
spl-goditem.cc:665 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
spl-goditem.cc:744 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
spl-summoning.cc:290 |
Medium |
V768 |
The expression 'player_will_anger_monster(type)' is of enum type. It is odd that it is used as an expression of a Boolean-type. |
| General Analysis |
spl-summoning.cc:383 |
Medium |
V768 |
The expression 'player_will_anger_monster(mon)' is of enum type. It is odd that it is used as an expression of a Boolean-type. |
| General Analysis |
spl-summoning.cc:875 |
Medium |
V768 |
The variable 'why' is of enum type. It is odd that it is used as a variable of a Boolean-type. |
| General Analysis |
spl-summoning.cc:1175 |
Medium |
V768 |
The expression 'player_will_anger_monster(* mons)' is of enum type. It is odd that it is used as an expression of a Boolean-type. |
| General Analysis |
spl-summoning.cc:1217 |
Medium |
V768 |
The expression 'player_will_anger_monster(* * mi)' is of enum type. It is odd that it is used as an expression of a Boolean-type. |
| General Analysis |
spl-summoning.cc:2877 |
Medium |
V1048 |
The 'beam.pierce' variable was assigned the same value. |
| General Analysis |
spl-tornado.cc:346 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
spl-transloc.cc:544 |
Medium |
V728 |
An excessive check can be simplified. The '(A && !B) || (!A && B)' expression is equivalent to the 'bool(A) != bool(B)' expression. |
| General Analysis |
spl-util.cc:1139 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
spl-util.cc:1189 |
Medium |
V768 |
The expression 'you.undead_state(temp)' is of enum type. It is odd that it is used as an expression of a Boolean-type. |
| General Analysis |
spl-util.cc:1198 |
Medium |
V768 |
The expression 'you.undead_state(temp)' is of enum type. It is odd that it is used as an expression of a Boolean-type. |
| General Analysis |
spl-util.cc:1203 |
Medium |
V768 |
The expression 'you.undead_state(false)' is of enum type. It is odd that it is used as an expression of a Boolean-type. |
| General Analysis |
spl-util.cc:1327 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
spl-util.cc:1501 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
sqldbm.cc:261 |
Medium |
V614 |
The 'result' smart pointer is utilized immediately after being declared or reset. It is suspicious that no value was assigned to it. |
| General Analysis |
sqldbm.cc:329 |
Medium |
V668 |
There is no sense in testing the 'dptr' pointer against null, as the memory was allocated using the 'new' operator. The exception will be generated in the case of memory allocation error. |
| General Analysis |
sqldbm.cc:373 |
Medium |
V668 |
There is no sense in testing the 'dptr' pointer against null, as the memory was allocated using the 'new' operator. The exception will be generated in the case of memory allocation error. |
| General Analysis |
stairs.cc:712 |
High |
V547 |
Expression 'how == DNGN_EXIT_THROUGH_ABYSS' is always true. |
| General Analysis |
stairs.cc:886 |
Medium |
V768 |
The variable 'force_stair' is of enum type. It is odd that it is used as a variable of a Boolean-type. |
| General Analysis |
stairs.cc:889 |
Medium |
V768 |
The variable 'force_stair' is of enum type. It is odd that it is used as a variable of a Boolean-type. |
| General Analysis |
stash.cc:186 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
stash.cc:460 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
stash.cc:800 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
stash.cc:1342 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
state.cc:27 |
Medium |
V730 |
It is possible that not all members of a class are initialized inside the constructor. Consider inspecting: test_list, flash_monsters. |
| General Analysis |
store.cc:358 |
Medium |
V572 |
It is odd that the object which was created using 'new' operator is immediately cast to another type. |
| General Analysis |
store.cc:362 |
Medium |
V572 |
It is odd that the object which was created using 'new' operator is immediately cast to another type. |
| General Analysis |
store.cc:366 |
Medium |
V572 |
It is odd that the object which was created using 'new' operator is immediately cast to another type. |
| General Analysis |
store.cc:370 |
Medium |
V572 |
It is odd that the object which was created using 'new' operator is immediately cast to another type. |
| General Analysis |
store.cc:374 |
Medium |
V572 |
It is odd that the object which was created using 'new' operator is immediately cast to another type. |
| General Analysis |
store.cc:378 |
Medium |
V572 |
It is odd that the object which was created using 'new' operator is immediately cast to another type. |
| General Analysis |
store.cc:382 |
Medium |
V572 |
It is odd that the object which was created using 'new' operator is immediately cast to another type. |
| General Analysis |
store.cc:386 |
Medium |
V572 |
It is odd that the object which was created using 'new' operator is immediately cast to another type. |
| General Analysis |
store.cc:390 |
Medium |
V572 |
It is odd that the object which was created using 'new' operator is immediately cast to another type. |
| General Analysis |
store.cc:298 |
Medium |
V794 |
The assignment operator should be protected from the case of 'this == &other'. |
| General Analysis |
store.cc:586 |
Medium |
V572 |
It is odd that the object which was created using 'new' operator is immediately cast to another type. |
| General Analysis |
store.cc:592 |
Medium |
V572 |
It is odd that the object which was created using 'new' operator is immediately cast to another type. |
| General Analysis |
store.cc:602 |
Medium |
V572 |
It is odd that the object which was created using 'new' operator is immediately cast to another type. |
| General Analysis |
store.cc:611 |
Medium |
V572 |
It is odd that the object which was created using 'new' operator is immediately cast to another type. |
| General Analysis |
store.cc:656 |
Medium |
V572 |
It is odd that the object which was created using 'new' operator is immediately cast to another type. |
| General Analysis |
store.cc:665 |
Medium |
V572 |
It is odd that the object which was created using 'new' operator is immediately cast to another type. |
| General Analysis |
stringutil.cc:265 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'buf2'. A constructor of the string class expects a valid pointer. |
| General Analysis |
tags.cc:1124 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'featm'. |
| General Analysis |
tags.cc:2071 |
Medium |
V1023 |
A pointer without owner is added to the 'env.level_vaults' container by the 'emplace_back' method. A memory leak will occur in case of an exception. |
| General Analysis |
tags.cc:2280 |
Medium |
V1016 |
Expression 'you.religion >= 0' is always true. |
| General Analysis |
tags.cc:2422 |
High |
V547 |
Expression 'count >= 0' is always true. Unsigned type value is always >= 0. |
| General Analysis |
tags.cc:2745 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
tags.cc:3378 |
Medium |
V560 |
A part of conditional expression is always false: j >= OLD_NUM_ABILITIES. |
| General Analysis |
tags.cc:3389 |
High |
V654 |
The condition 'j < OLD_NUM_ABILITIES' of loop is always false. |
| General Analysis |
tags.cc:3389 |
High |
V621 |
Consider inspecting the 'for' operator. It's possible that the loop will be executed incorrectly or won't be executed at all. |
| General Analysis |
tags.cc:5646 |
Medium |
V1051 |
Consider checking for misprints. It's possible that the 'mi.base_type' should be used inside 'mons_genus' function. |
| General Analysis |
tags.cc:5888 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
tags.cc:6485 |
Medium |
V547 |
Expression 'slot.spell == SPELL_CORRUPT_BODY' is always false. |
| General Analysis |
tags.cc:7127 |
Medium |
V1029 |
Numeric Truncation Error. Return value of the 'size' function is written to the 8-bit variable. |
| General Analysis |
target.cc:516 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
target.cc:1359 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
target.cc:1374 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
target.cc:1011 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: no_landing_reason, blocked_landing_reason. |
| General Analysis |
terrain.cc:934 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
terrain.cc:1661 |
Medium |
V768 |
The expression 'you.undead_state()' is of enum type. It is odd that it is used as an expression of a Boolean-type. |
| General Analysis |
terrain.cc:1920 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'tmarker'. |
| General Analysis |
terrain.cc:1998 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'tmarker'. |
| General Analysis |
terrain.cc:2062 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'tmarker'. |
| General Analysis |
terrain.cc:2105 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'tmarker'. |
| General Analysis |
terrain.cc:2109 |
Medium |
V768 |
The variable 'newfeat' is of enum type. It is odd that it is used as a variable of a Boolean-type. |
| General Analysis |
throw.cc:900 |
Medium |
V547 |
Expression '!thrown.quantity' is always false. |
| General Analysis |
throw.cc:992 |
Medium |
V547 |
Expression '!did_return' is always true. |
| General Analysis |
timed-effects.cc:686 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
timed-effects.cc:825 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 825, 848 |
| General Analysis |
timed-effects.cc:1126 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'cmark'. |
| General Analysis |
timed-effects.cc:1164 |
Medium |
V522 |
There might be dereferencing of a potential null pointer 'marker'. |
| General Analysis |
transform.cc:399 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
transform.cc:414 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
transform.cc:1322 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
transform.cc:1533 |
Medium |
V768 |
The expression 'you.undead_state(false)' is of enum type. It is odd that it is used as an expression of a Boolean-type. |
| General Analysis |
traps.cc:1149 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
travel.cc:218 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
travel.cc:298 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
travel.cc:362 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
travel.cc:1026 |
High |
V547 |
Expression 'result != CMD_NO_CMD' is always false. |
| General Analysis |
travel.cc:1686 |
Medium |
V560 |
A part of conditional expression is always true: (dir = 1). |
| General Analysis |
travel.cc:3108 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
travel.cc:3284 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
travel.cc:4730 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
travel.cc:4274 |
Medium |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: notified_mp_full, notified_hp_full, notified_ancestor_hp_full, travel_speed, direction. |
| General Analysis |
travel.cc:1074 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: try_fallback. |
| General Analysis |
ui.cc:1978 |
Medium |
V547 |
Expression 'history' is always false. |
| General Analysis |
ui.cc:3323 |
High |
V1047 |
Lifetime of the lambda is greater than lifetime of the local variable 'done' captured by reference. |
| General Analysis |
ui.cc:3323 |
High |
V1047 |
Lifetime of the lambda is greater than lifetime of the local variable 'key' captured by reference. |
| General Analysis |
ui.cc:3313 |
Medium |
V657 |
It's odd that this function always returns one and the same value. |
| General Analysis |
ui.cc:3542 |
Medium |
V547 |
Expression 'new_focus != w' is always false. |
| General Analysis |
ui.cc:597 |
Medium |
V730 |
It is possible that not all members of a class are initialized inside the constructor. Consider inspecting: hl_line. |
| General Analysis |
ui.cc:58 |
Medium |
V730 |
Not all members of a class are initialized inside the compiler generated constructor. Consider inspecting: needs_paint, m_w, m_h. |
| General Analysis |
view.cc:730 |
Medium |
V768 |
The expression 'knowledge.feat()' is of enum type. It is odd that it is used as an expression of a Boolean-type. |
| General Analysis |
view.cc:1033 |
Medium |
V560 |
A part of conditional expression is always true: !did_exclude. |
| General Analysis |
view.cc:1204 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: current_frame. |
| General Analysis |
view.cc:1224 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: current_frame. |
| General Analysis |
viewchar.cc:145 |
Medium |
V1016 |
Expression 'dchar >= 0' is always true. |
| General Analysis |
viewmap.cc:188 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
wiz-item.cc:485 |
High |
V547 |
Expression 'keyin == 'e'' is always true. |
| General Analysis |
wiz-item.cc:1006 |
Medium |
V547 |
Expression 'type == OBJ_WANDS' is always false. |
| General Analysis |
wiz-item.cc:1008 |
High |
V547 |
Expression 'type == OBJ_FOOD' is always true. |
| General Analysis |
wiz-item.cc:1218 |
Medium |
V557 |
Array overrun is possible. The value of 'i' index could reach 25. |
| General Analysis |
wiz-mon.cc:406 |
High |
V510 |
The 'mprf' function is not expected to receive class-type variable as third actual argument. |
| General Analysis |
wiz-mon.cc:460 |
Medium |
V1016 |
Expression 'hab >= 0' is always true. |
| General Analysis |
wiz-mon.cc:692 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. Consider inspecting the 'type == 'b' || type == 'r' && coinflip()' expression. |
| General Analysis |
wiz-you.cc:768 |
Medium |
V1051 |
Consider checking for misprints. It's possible that the 'you.experience' should be checked here. |
| General Analysis |
xom.cc:384 |
Medium |
V560 |
A part of conditional expression is always true: chance > 0. |
| General Analysis |
xom.cc:750 |
Medium |
V1016 |
Expression 'iorig > GOD_NO_GOD' is always true. |
| General Analysis |
xom.cc:1282 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
xom.cc:1472 |
Medium |
V1048 |
The 'beam.thrower' variable was assigned the same value. |
| General Analysis |
xom.cc:1638 |
Medium |
V547 |
Expression 'effects.empty()' is always true. |
| General Analysis |
xom.cc:1707 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
xom.cc:1729 |
Medium |
V1048 |
The 'beam.thrower' variable was assigned the same value. |
| General Analysis |
xom.cc:2143 |
Medium |
V547 |
Expression 'rc' is always true. |
| General Analysis |
xom.cc:2984 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
tilepick.cc:1843 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
tilepick.cc:1899 |
Medium |
V592 |
The expression was enclosed by parentheses twice: ((expression)). One pair of parentheses is unnecessary or misprint is present. |
| General Analysis |
tilepick.cc:2995 |
Medium |
V547 |
Expression 'colour != - 1' is always true. |
| General Analysis |
tileview.cc:95 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 95, 281 |
| General Analysis |
tileview.cc:105 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 105, 243 |
| General Analysis |
tileview.cc:808 |
High |
V547 |
Expression 'x < 80 - 1' is always true. |
| General Analysis |
tileview.cc:810 |
High |
V547 |
Expression 'y < 70 - 1' is always true. |
| General Analysis |
tileview.cc:1255 |
Medium |
V560 |
A part of conditional expression is always true: !runed. |
| General Analysis |
tiledoll.cc:228 |
Medium |
V557 |
Array overrun is possible. The value of 'p' index could reach 16. |
| General Analysis |
tiledoll.cc:229 |
Medium |
V557 |
Array overrun is possible. The value of 'p' index could reach 16. |
| General Analysis |
tiledoll.cc:228 |
High |
V557 |
Array overrun is possible. The '_get_random_doll_part' function processes value '[0..16]'. Inspect the first argument. Check lines: 228, 235. |
| General Analysis |
tilemcache.cc:494 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 494, 800 |
| General Analysis |
tilemcache.cc:585 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 585, 796 |
| General Analysis |
tilemcache.cc:724 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 724, 772 |
| General Analysis |
tilemcache.cc:661 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 661, 768 |
| General Analysis |
tilemcache.cc:469 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 469, 764 |
| General Analysis |
tilemcache.cc:485 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 485, 760 |
| General Analysis |
tilemcache.cc:555 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 555, 756 |
| General Analysis |
tilemcache.cc:367 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 367, 736 |
| General Analysis |
tilemcache.cc:595 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 595, 728 |
| General Analysis |
tilemcache.cc:691 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 691, 720 |
| General Analysis |
tilemcache.cc:359 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 359, 716 |
| General Analysis |
tilemcache.cc:625 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 625, 712 |
| General Analysis |
tilemcache.cc:545 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 545, 704 |
| General Analysis |
tilemcache.cc:565 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 565, 683 |
| General Analysis |
tilemcache.cc:439 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 439, 645 |
| General Analysis |
tilemcache.cc:453 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 453, 641 |
| General Analysis |
tilemcache.cc:448 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 448, 561 |
| General Analysis |
tilemcache.cc:430 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 430, 530 |
| General Analysis |
tilemcache.cc:1145 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 1145, 1204 |
| General Analysis |
tilemcache.cc:1097 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 1097, 1192 |
| General Analysis |
tilemcache.cc:834 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 834, 1182 |
| General Analysis |
tilemcache.cc:952 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 952, 1150 |
| General Analysis |
tilemcache.cc:840 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 840, 1135 |
| General Analysis |
tilemcache.cc:924 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 924, 1104, 1119 |
| General Analysis |
tilemcache.cc:942 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 942, 1077 |
| General Analysis |
tilemcache.cc:897 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 897, 1062 |
| General Analysis |
tilemcache.cc:1027 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 1027, 1042 |
| General Analysis |
tilemcache.cc:1277 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
tilepick-p.cc:927 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 927, 936 |
| General Analysis |
tilepick-p.cc:1129 |
High |
V781 |
The value of the 'gcount' index is checked after it was used. Perhaps there is a mistake in program logic. |
| General Analysis |
tilecell.cc:420 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
tiledgnbuf.cc:263 |
High |
V616 |
The 'TILE_FLAG_TENTACLE_KRAKEN' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:265 |
High |
V616 |
The 'TILE_FLAG_TENTACLE_ELDRITCH' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:267 |
High |
V616 |
The 'TILE_FLAG_TENTACLE_STARSPAWN' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:269 |
High |
V616 |
The 'TILE_FLAG_TENTACLE_VINE' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:271 |
High |
V616 |
The 'TILE_FLAG_TENTACLE_ZOMBIE_KRAKEN' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:273 |
High |
V616 |
The 'TILE_FLAG_TENTACLE_SIMULACRUM_KRAKEN' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:275 |
High |
V616 |
The 'TILE_FLAG_TENTACLE_SPECTRAL_KRAKEN' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:275 |
Medium |
V547 |
Expression 'bg & TILE_FLAG_TENTACLE_SPECTRAL_KRAKEN' is always false. |
| General Analysis |
tiledgnbuf.cc:273 |
Medium |
V547 |
Expression is always false. |
| General Analysis |
tiledgnbuf.cc:271 |
Medium |
V547 |
Expression 'bg & TILE_FLAG_TENTACLE_ZOMBIE_KRAKEN' is always false. |
| General Analysis |
tiledgnbuf.cc:269 |
Medium |
V547 |
Expression 'bg & TILE_FLAG_TENTACLE_VINE' is always false. |
| General Analysis |
tiledgnbuf.cc:267 |
Medium |
V547 |
Expression 'bg & TILE_FLAG_TENTACLE_STARSPAWN' is always false. |
| General Analysis |
tiledgnbuf.cc:265 |
Medium |
V547 |
Expression 'bg & TILE_FLAG_TENTACLE_ELDRITCH' is always false. |
| General Analysis |
tiledgnbuf.cc:263 |
Medium |
V547 |
Expression 'bg & TILE_FLAG_TENTACLE_KRAKEN' is always false. |
| General Analysis |
tiledgnbuf.cc:280 |
High |
V616 |
The 'TILE_FLAG_TENTACLE_KRAKEN' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:282 |
High |
V616 |
The 'TILE_FLAG_TENTACLE_ELDRITCH' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:284 |
High |
V616 |
The 'TILE_FLAG_TENTACLE_STARSPAWN' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:286 |
High |
V616 |
The 'TILE_FLAG_TENTACLE_VINE' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:288 |
High |
V616 |
The 'TILE_FLAG_TENTACLE_ZOMBIE_KRAKEN' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:290 |
High |
V616 |
The 'TILE_FLAG_TENTACLE_SIMULACRUM_KRAKEN' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:292 |
High |
V616 |
The 'TILE_FLAG_TENTACLE_SPECTRAL_KRAKEN' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:292 |
Medium |
V547 |
Expression 'bg & TILE_FLAG_TENTACLE_SPECTRAL_KRAKEN' is always false. |
| General Analysis |
tiledgnbuf.cc:290 |
Medium |
V547 |
Expression is always false. |
| General Analysis |
tiledgnbuf.cc:288 |
Medium |
V547 |
Expression 'bg & TILE_FLAG_TENTACLE_ZOMBIE_KRAKEN' is always false. |
| General Analysis |
tiledgnbuf.cc:286 |
Medium |
V547 |
Expression 'bg & TILE_FLAG_TENTACLE_VINE' is always false. |
| General Analysis |
tiledgnbuf.cc:284 |
Medium |
V547 |
Expression 'bg & TILE_FLAG_TENTACLE_STARSPAWN' is always false. |
| General Analysis |
tiledgnbuf.cc:282 |
Medium |
V547 |
Expression 'bg & TILE_FLAG_TENTACLE_ELDRITCH' is always false. |
| General Analysis |
tiledgnbuf.cc:280 |
Medium |
V547 |
Expression 'bg & TILE_FLAG_TENTACLE_KRAKEN' is always false. |
| General Analysis |
tiledgnbuf.cc:295 |
High |
V616 |
The 'TILE_FLAG_TENTACLE_SW' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:297 |
High |
V616 |
The 'TILE_FLAG_TENTACLE_KRAKEN' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:299 |
High |
V616 |
The 'TILE_FLAG_TENTACLE_ELDRITCH' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:301 |
High |
V616 |
The 'TILE_FLAG_TENTACLE_STARSPAWN' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:303 |
High |
V616 |
The 'TILE_FLAG_TENTACLE_VINE' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:305 |
High |
V616 |
The 'TILE_FLAG_TENTACLE_ZOMBIE_KRAKEN' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:307 |
High |
V616 |
The 'TILE_FLAG_TENTACLE_SIMULACRUM_KRAKEN' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:309 |
High |
V616 |
The 'TILE_FLAG_TENTACLE_SPECTRAL_KRAKEN' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:314 |
High |
V616 |
The 'TILE_FLAG_TENTACLE_KRAKEN' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:316 |
High |
V616 |
The 'TILE_FLAG_TENTACLE_ELDRITCH' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:318 |
High |
V616 |
The 'TILE_FLAG_TENTACLE_STARSPAWN' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:320 |
High |
V616 |
The 'TILE_FLAG_TENTACLE_VINE' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:322 |
High |
V616 |
The 'TILE_FLAG_TENTACLE_ZOMBIE_KRAKEN' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:324 |
High |
V616 |
The 'TILE_FLAG_TENTACLE_SIMULACRUM_KRAKEN' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:326 |
High |
V616 |
The 'TILE_FLAG_TENTACLE_SPECTRAL_KRAKEN' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:326 |
Medium |
V547 |
Expression 'bg & TILE_FLAG_TENTACLE_SPECTRAL_KRAKEN' is always false. |
| General Analysis |
tiledgnbuf.cc:324 |
Medium |
V547 |
Expression is always false. |
| General Analysis |
tiledgnbuf.cc:322 |
Medium |
V547 |
Expression 'bg & TILE_FLAG_TENTACLE_ZOMBIE_KRAKEN' is always false. |
| General Analysis |
tiledgnbuf.cc:320 |
Medium |
V547 |
Expression 'bg & TILE_FLAG_TENTACLE_VINE' is always false. |
| General Analysis |
tiledgnbuf.cc:318 |
Medium |
V547 |
Expression 'bg & TILE_FLAG_TENTACLE_STARSPAWN' is always false. |
| General Analysis |
tiledgnbuf.cc:316 |
Medium |
V547 |
Expression 'bg & TILE_FLAG_TENTACLE_ELDRITCH' is always false. |
| General Analysis |
tiledgnbuf.cc:314 |
Medium |
V547 |
Expression 'bg & TILE_FLAG_TENTACLE_KRAKEN' is always false. |
| General Analysis |
tiledgnbuf.cc:295 |
Medium |
V547 |
Expression 'bg & TILE_FLAG_TENTACLE_SW' is always false. |
| General Analysis |
tiledgnbuf.cc:365 |
High |
V616 |
The 'TILE_FLAG_THREAT_MASK' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:331 |
Medium |
V581 |
The conditional expressions of the 'if' statements situated alongside each other are identical. Check lines: 258, 331. |
| General Analysis |
tiledgnbuf.cc:394 |
High |
V616 |
The 'TILE_FLAG_LANDING' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:396 |
High |
V616 |
The 'TILE_FLAG_RAY_MULTI' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:396 |
Medium |
V547 |
Expression 'bg & TILE_FLAG_RAY_MULTI' is always false. |
| General Analysis |
tiledgnbuf.cc:394 |
Medium |
V547 |
Expression 'bg & TILE_FLAG_LANDING' is always false. |
| General Analysis |
tiledgnbuf.cc:451 |
High |
V616 |
The 'TILE_FLAG_IDEALISED' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:451 |
Medium |
V547 |
Expression 'fg & TILE_FLAG_IDEALISED' is always false. |
| General Analysis |
tiledgnbuf.cc:488 |
Medium |
V547 |
Expression 'poison_flag == TILE_FLAG_MAX_POISON' is always false. |
| General Analysis |
tiledgnbuf.cc:518 |
High |
V616 |
The 'TILE_FLAG_HASTED' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:518 |
Medium |
V547 |
Expression 'fg & TILE_FLAG_HASTED' is always false. |
| General Analysis |
tiledgnbuf.cc:523 |
High |
V616 |
The 'TILE_FLAG_SLOWED' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:523 |
Medium |
V547 |
Expression 'fg & TILE_FLAG_SLOWED' is always false. |
| General Analysis |
tiledgnbuf.cc:528 |
High |
V616 |
The 'TILE_FLAG_MIGHT' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:528 |
Medium |
V547 |
Expression 'fg & TILE_FLAG_MIGHT' is always false. |
| General Analysis |
tiledgnbuf.cc:533 |
High |
V616 |
The 'TILE_FLAG_DRAIN' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:533 |
Medium |
V547 |
Expression 'fg & TILE_FLAG_DRAIN' is always false. |
| General Analysis |
tiledgnbuf.cc:538 |
High |
V616 |
The 'TILE_FLAG_PAIN_MIRROR' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:538 |
Medium |
V547 |
Expression 'fg & TILE_FLAG_PAIN_MIRROR' is always false. |
| General Analysis |
tiledgnbuf.cc:543 |
High |
V616 |
The 'TILE_FLAG_PETRIFYING' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:543 |
Medium |
V547 |
Expression 'fg & TILE_FLAG_PETRIFYING' is always false. |
| General Analysis |
tiledgnbuf.cc:548 |
High |
V616 |
The 'TILE_FLAG_PETRIFIED' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:548 |
Medium |
V547 |
Expression 'fg & TILE_FLAG_PETRIFIED' is always false. |
| General Analysis |
tiledgnbuf.cc:553 |
High |
V616 |
The 'TILE_FLAG_BLIND' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:553 |
Medium |
V547 |
Expression 'fg & TILE_FLAG_BLIND' is always false. |
| General Analysis |
tiledgnbuf.cc:558 |
High |
V616 |
The 'TILE_FLAG_DEATHS_DOOR' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:558 |
Medium |
V547 |
Expression 'fg & TILE_FLAG_DEATHS_DOOR' is always false. |
| General Analysis |
tiledgnbuf.cc:563 |
High |
V616 |
The 'TILE_FLAG_BOUND_SOUL' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:563 |
Medium |
V547 |
Expression 'fg & TILE_FLAG_BOUND_SOUL' is always false. |
| General Analysis |
tiledgnbuf.cc:568 |
High |
V616 |
The 'TILE_FLAG_INFESTED' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:568 |
Medium |
V547 |
Expression 'fg & TILE_FLAG_INFESTED' is always false. |
| General Analysis |
tiledgnbuf.cc:573 |
High |
V616 |
The 'TILE_FLAG_CORRODED' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:573 |
Medium |
V547 |
Expression 'fg & TILE_FLAG_CORRODED' is always false. |
| General Analysis |
tiledgnbuf.cc:578 |
High |
V616 |
The 'TILE_FLAG_SWIFT' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:578 |
Medium |
V547 |
Expression 'fg & TILE_FLAG_SWIFT' is always false. |
| General Analysis |
tiledgnbuf.cc:583 |
High |
V616 |
The 'TILE_FLAG_RECALL' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:583 |
Medium |
V547 |
Expression 'fg & TILE_FLAG_RECALL' is always false. |
| General Analysis |
tiledgnbuf.cc:588 |
High |
V616 |
The 'TILE_FLAG_VILE_CLUTCH' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:588 |
Medium |
V547 |
Expression 'fg & TILE_FLAG_VILE_CLUTCH' is always false. |
| General Analysis |
tiledgnbuf.cc:593 |
High |
V616 |
The 'TILE_FLAG_POSSESSABLE' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:593 |
Medium |
V547 |
Expression 'fg & TILE_FLAG_POSSESSABLE' is always false. |
| General Analysis |
tiledgnbuf.cc:601 |
High |
V616 |
The 'TILE_FLAG_ANIM_WEP' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:601 |
Medium |
V547 |
Expression 'fg & TILE_FLAG_ANIM_WEP' is always false. |
| General Analysis |
tiledgnbuf.cc:603 |
High |
V616 |
The 'TILE_FLAG_SUMMONED' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:603 |
Medium |
V547 |
Expression 'fg & TILE_FLAG_SUMMONED' is always false. |
| General Analysis |
tiledgnbuf.cc:605 |
High |
V616 |
The 'TILE_FLAG_PERM_SUMMON' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:605 |
Medium |
V547 |
Expression 'fg & TILE_FLAG_PERM_SUMMON' is always false. |
| General Analysis |
tiledgnbuf.cc:666 |
Medium |
V547 |
Expression 'mdam_flag == TILE_FLAG_MDAM_ADEAD' is always false. |
| General Analysis |
tiledgnbuf.cc:670 |
High |
V616 |
The 'TILE_FLAG_DEMON' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:672 |
High |
V616 |
The 'TILE_FLAG_DEMON' named constant with the value of 0 is used in the bitwise operation. |
| General Analysis |
tiledgnbuf.cc:670 |
Medium |
V547 |
Expression 'fg & TILE_FLAG_DEMON' is always false. |
| General Analysis |
tilereg-dgn.cc:65 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: tile_iw, tile_ih. |
| General Analysis |
tilereg-dgn.cc:163 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: type. |
| General Analysis |
tilereg-doll.cc:18 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: m_part_idx, m_mode. |
| General Analysis |
tilereg-inv.cc:775 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
tilesdl.cc:829 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
tilesdl.cc:173 |
Medium |
V773 |
The 'm_image' pointer was not released in destructor. A memory leak is possible. |
| General Analysis |
windowmanager-sdl.cc:39 |
Medium |
V707 |
Giving short names to global variables is considered to be bad practice. It is suggested to rename 'wm' variable. |
| General Analysis |
windowmanager-sdl.cc:287 |
Medium |
V519 |
The 'tile_event.held' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 282, 287. |
| General Analysis |
windowmanager-sdl.cc:426 |
Medium |
V648 |
Priority of the '&&' operation is higher than that of the '||' operation. |
| General Analysis |
windowmanager-sdl.cc:827 |
High |
V696 |
The 'continue' operator will terminate 'do { ... } while (FALSE)' loop because the condition is always false. Check lines: 827, 833. |
| General Analysis |
windowmanager-sdl.cc:332 |
High |
V730 |
Not all members of a class are initialized inside the constructor. Consider inspecting: _desktop_width, _desktop_height. |
| General Analysis |
fontwrapper-ft.cc:294 |
Medium |
V560 |
A part of conditional expression is always true: y < bmp->rows. |
| General Analysis |
tiledef-floor.cc:6161 |
Medium |
V547 |
Expression '!str' is always false. |
| General Analysis |
tiledef-wall.cc:7886 |
Medium |
V547 |
Expression '!str' is always false. |
| General Analysis |
tiledef-feat.cc:3867 |
Medium |
V547 |
Expression '!str' is always false. |
| General Analysis |
tiledef-main.cc:8669 |
Medium |
V547 |
Expression '!str' is always false. |
| General Analysis |
tiledef-player.cc:19624 |
Medium |
V547 |
Expression '!str' is always false. |
| General Analysis |
tiledef-gui.cc:5747 |
Medium |
V547 |
Expression '!str' is always false. |
| General Analysis |
tiledef-icons.cc:790 |
Medium |
V547 |
Expression '!str' is always false. |
| General Analysis |
levcomp.tab.cc:1181 |
Medium |
V560 |
A part of conditional expression is always true: yysize1 <= ((long unsigned int) - 1). |
| General Analysis |
levcomp.tab.cc:1206 |
Medium |
V560 |
A part of conditional expression is always true: yysize1 <= ((long unsigned int) - 1). |
| General Analysis |
levcomp.tab.cc:1215 |
Medium |
V560 |
A part of conditional expression is always true. |
| General Analysis |
levcomp.tab.cc:1384 |
Medium |
V592 |
The expression was enclosed by parentheses twice: ((expression)). One pair of parentheses is unnecessary or misprint is present. |
| General Analysis |
levcomp.tab.cc:1456 |
Medium |
V1048 |
The 'yyn' variable was assigned the same value. |
| General Analysis |
levcomp.tab.cc:2453 |
Medium |
V779 |
Unreachable code detected. It is possible that an error is present. |
| Fail/Info |
levcomp.tab.cc:65 |
|
V011 |
Presence of #line directives may cause some diagnostic messages to have incorrect file name and line number. |
| General Analysis |
levcomp.tab.cc:8 |
High |
V1042 |
This file is marked with copyleft license, which requires you to open the derived source code. |
| General Analysis |
levcomp.lpp:239 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 239, 240 |
| General Analysis |
levcomp.lpp:187 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 187, 204, 218 |
| General Analysis |
levcomp.lpp:198 |
Medium |
V1037 |
Two or more case-branches perform the same actions. Check lines: 198, 215 |
| General Analysis |
levcomp.lex.cc:2919 |
High |
V1028 |
Possible overflow. Consider casting operands of the 'b->yy_buf_size + 2' operator to the 'yy_size_t' type, not the result. |
| General Analysis |
levcomp.lex.cc:3210 |
Medium |
V1004 |
The 'yy_buffer_stack' pointer was used unsafely after it was verified against nullptr. Check lines: 3199, 3210. |
| General Analysis |
levcomp.lex.cc:3248 |
High |
V1028 |
Possible overflow. Consider casting operands of the 'b->yy_buf_size + 2' operator to the 'yy_size_t' type, not the result. |
| General Analysis |
levcomp.lex.cc:3358 |
Medium |
V1004 |
The 'yy_buffer_stack' pointer was used unsafely after it was verified against nullptr. Check lines: 3347, 3358. |
| General Analysis |
levcomp.lex.cc:3495 |
High |
V1028 |
Possible overflow. Consider casting operands of the '_yybytes_len + 2' operator to the 'yy_size_t' type, not the result. |
| Fail/Info |
levcomp.lex.cc:1 |
|
V011 |
Presence of #line directives may cause some diagnostic messages to have incorrect file name and line number. |
| Fail/Info |
levcomp.tab.h:155 |
|
V011 |
Presence of #line directives may cause some diagnostic messages to have incorrect file name and line number. |
| Fail/Info |
levcomp.lex.cc:1 |
|
V002 |
Some diagnostic messages may contain incorrect line number in this file. |