[ scummvm-Bugs-3087918 ] SOUND: Code analysis warnings

SourceForge.net noreply at sourceforge.net
Fri Oct 15 09:02:41 CEST 2010


Bugs item #3087918, was opened at 2010-10-15 03:02
Message generated for change (Tracker Item Submitted) made by littleboy
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=418820&aid=3087918&group_id=37116

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Compiler error
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Julien (littleboy)
Assigned to: Nobody/Anonymous (nobody)
Summary: SOUND: Code analysis warnings 

Initial Comment:
Here are the warnings I get when compiling using Code Analysis in VS2010. I tried to remove all the obvious false positives. Some warnings look suspicious, others are pointing to correct code that still might benefit from better error checking.

d:\sources\scummvm\scummvm\sound\softsynth\cms.cpp(194): warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
d:\sources\scummvm\scummvm\sound\softsynth\cms.cpp(201): warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
d:\sources\scummvm\scummvm\sound\softsynth\ym2612.cpp(128): warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
d:\sources\scummvm\scummvm\sound\softsynth\ym2612.cpp(144): warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
d:\sources\scummvm\scummvm\sound\softsynth\ym2612.cpp(153): warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
d:\sources\scummvm\scummvm\sound\softsynth\ym2612.cpp(164): warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
d:\sources\scummvm\scummvm\sound\mpu401.cpp(39): warning C6282: Incorrect operator: assignment of constant in Boolean context. Consider using '==' instead
d:\sources\scummvm\scummvm\sound\rate.cpp(310): warning C6011: Dereferencing NULL pointer 'ptr++'
d:\sources\scummvm\scummvm\sound\rate.cpp(310): warning C6011: Dereferencing NULL pointer 'ptr++'
d:\sources\scummvm\scummvm\sound\softsynth\fmtowns_pc98\towns_pc98_fmsynth.cpp(973): warning C6011: Dereferencing NULL pointer 'co'
d:\sources\scummvm\scummvm\sound\softsynth\fmtowns_pc98\towns_pc98_fmsynth.cpp(1041): warning C6011: Dereferencing NULL pointer 'o'
d:\sources\scummvm\scummvm\sound\softsynth\fmtowns_pc98\towns_pc98_fmsynth.cpp(1043): warning C6011: Dereferencing NULL pointer 'c'
d:\sources\scummvm\scummvm\sound\softsynth\opl\dbopl.cpp(1286): warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
d:\sources\scummvm\scummvm\sound\softsynth\opl\dbopl.cpp(1293): warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
d:\sources\scummvm\scummvm\sound\softsynth\opl\dbopl.cpp(1295): warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
d:\sources\scummvm\scummvm\sound\softsynth\opl\dbopl.cpp(1485): warning C6011: Dereferencing NULL pointer 'chip'
d:\sources\scummvm\scummvm\sound\softsynth\opl\dbopl.cpp(1500): warning C6011: Dereferencing NULL pointer 'chan'
d:\sources\scummvm\scummvm\sound\softsynth\opl\mame.cpp(280): warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
d:\sources\scummvm\scummvm\sound\softsynth\opl\mame.cpp(649): warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
d:\sources\scummvm\scummvm\sound\softsynth\opl\mame.cpp(650): warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
d:\sources\scummvm\scummvm\sound\softsynth\opl\mame.cpp(734): warning C6011: Dereferencing NULL pointer 'ENV_CURVE'
d:\sources\scummvm\scummvm\sound\decoders\adpcm.cpp(534): warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
d:\sources\scummvm\scummvm\sound\decoders\adpcm.cpp(541): warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
d:\sources\scummvm\scummvm\sound\decoders\voc.cpp(124): warning C6308: 'realloc' might return null pointer: assigning null pointer to 'ret_sound', which is passed as an argument to 'realloc', will cause the original memory block to be leaked

Warning information:
C6297: http://msdn.microsoft.com/en-us/library/9t02bbsx.aspx

Note:
If you want to try it yourself, you will need:
 - the create_project patch set, along with the WIP code analysis patch (http://bitbucket.org/Littleboy/scummvm-jt/src)
 - the following patch to silence some false positives ( http://bitbucket.org/Littleboy/scummvm-jt/src/tip/COMMON%20-%20Add%20annotations%20for%20analysis%20build%20configuration.patch )
 - Visual Studio 2010 Ultimate or Team System (create_project support for analysis with VS2005/2008 isn't complete yet)


----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=418820&aid=3087918&group_id=37116




More information about the Scummvm-tracker mailing list