Avoid using "do { ... } while ( wxFalse )" pseudo-loop.
This loop can't be optimized away by the compiler because wxFalse is an extern variable which can't be known to be always false. Additionally, this creates many false positives from Coverity as it assumes that the loop can be executed more than once. Define wxSTATEMENT_MACRO_BEGIN/END macros abstracting the exact solution used and replace wxFalse with "(void)0, 0" for now as this seems to placate MSVC (which warns about using a bare "0" as a condition) while still allowing the loop to be completely optimized away. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73101 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -309,14 +309,13 @@ struct wxFormatStringArgumentFinder<wxWCharBuffer>
|
||||
// the correct type (one of wxFormatString::Arg_XXX or-combination in
|
||||
// 'expected_mask').
|
||||
#define wxASSERT_ARG_TYPE(fmt, index, expected_mask) \
|
||||
do \
|
||||
{ \
|
||||
wxSTATEMENT_MACRO_BEGIN \
|
||||
if ( !fmt ) \
|
||||
break; \
|
||||
const int argtype = fmt->GetArgumentType(index); \
|
||||
wxASSERT_MSG( (argtype & (expected_mask)) == argtype, \
|
||||
"format specifier doesn't match argument type" ); \
|
||||
} while ( wxFalse )
|
||||
wxSTATEMENT_MACRO_END
|
||||
#else
|
||||
// Just define it to suppress "unused parameter" warnings for the
|
||||
// parameters which we don't use otherwise
|
||||
|
Reference in New Issue
Block a user