How to properly rewrite ASSERT code to pass /analyze in msvc?
Posted
by Sorin Sbarnea
on Stack Overflow
See other posts from Stack Overflow
or by Sorin Sbarnea
Published on 2010-04-09T07:13:03Z
Indexed on
2010/04/09
13:33 UTC
Read the original article
Hit count: 394
Visual Studio added code analysis (/analyze
) for C/C++ in order to help identify bad code. This is quite a nice feature but when you deal with and old project you may be overwhelmed by the number of warnings.
Most of the problems are generating because the old code is doing some ASSERT at the beginning of the method or function.
I think this is the ASSERT definition used in the code (from afx.h
)
#define ASSERT(f) DEBUG_ONLY((void) ((f) || !::AfxAssertFailedLine(THIS_FILE, __LINE__) || (AfxDebugBreak(), 0)))
Example code:
ASSERT(pBytes != NULL);
*pBytes = 0; // <- warning C6011: Dereferencing NULL pointer 'pBytes'
I'm looking for an easy and safe solution to solve these warnings that does not imply disabling these warnings. Did I mention that there are lots of occurrences in current codebase?
© Stack Overflow or respective owner