From: <man...@us...> - 2015-05-28 09:23:29
|
Revision: 5199 http://sourceforge.net/p/modplug/code/5199 Author: manxorist Date: 2015-05-28 09:23:24 +0000 (Thu, 28 May 2015) Log Message: ----------- [Ref] Revert parts of r5178 and enable back all warnings in assertions. Use the less intrusive Util::TypeCanHoldValue in the one offending assertion instead. Revision Links: -------------- http://sourceforge.net/p/modplug/code/5178 Modified Paths: -------------- trunk/OpenMPT/common/typedefs.h trunk/OpenMPT/soundlib/Load_it.cpp Modified: trunk/OpenMPT/common/typedefs.h =================================================================== --- trunk/OpenMPT/common/typedefs.h 2015-05-28 08:27:19 UTC (rev 5198) +++ trunk/OpenMPT/common/typedefs.h 2015-05-28 09:23:24 UTC (rev 5199) @@ -229,8 +229,8 @@ #elif MPT_GCC_AT_LEAST(4,4,0) // GCC 4.4 does not like _Pragma inside functions. // As GCC 4.4 is one of our major compilers, we do not want a noisy build. -// Thus, just disable this warning globally. -#pragma GCC diagnostic ignored "-Wtype-limits" +// Thus, just disable this warning globally. (not required for now) +//#pragma GCC diagnostic ignored "-Wtype-limits" #endif #endif @@ -249,7 +249,7 @@ #endif #if !defined(MPT_MAYBE_CONSTANT_IF) -// MPT_MAYBE_CONSTANT_IF disables compiler warnings for conditions that may in some case be either always false or always true (useful in ASSERTions in some cases). +// MPT_MAYBE_CONSTANT_IF disables compiler warnings for conditions that may in some case be either always false or always true (this may turn out to be useful in ASSERTions in some cases). #define MPT_MAYBE_CONSTANT_IF(x) if(x) #endif @@ -314,8 +314,8 @@ #define MPT_ASSERT_ALWAYS(expr) ASSERT((expr)) #define MPT_ASSERT_ALWAYS_MSG(expr, msg) ASSERT((expr) && (msg)) #else -#define MPT_ASSERT_ALWAYS(expr) do { MPT_MAYBE_CONSTANT_IF(!(expr)) { AssertHandler(__FILE__, __LINE__, __FUNCTION__, #expr); } MPT_CHECKER_ASSUME(expr); } while(0) -#define MPT_ASSERT_ALWAYS_MSG(expr, msg) do { MPT_MAYBE_CONSTANT_IF(!(expr)) { AssertHandler(__FILE__, __LINE__, __FUNCTION__, #expr, msg); } MPT_CHECKER_ASSUME(expr); } while(0) +#define MPT_ASSERT_ALWAYS(expr) do { if(!(expr)) { AssertHandler(__FILE__, __LINE__, __FUNCTION__, #expr); } MPT_CHECKER_ASSUME(expr); } while(0) +#define MPT_ASSERT_ALWAYS_MSG(expr, msg) do { if(!(expr)) { AssertHandler(__FILE__, __LINE__, __FUNCTION__, #expr, msg); } MPT_CHECKER_ASSUME(expr); } while(0) #ifndef MPT_ASSERT_HANDLER_NEEDED #define MPT_ASSERT_HANDLER_NEEDED #endif @@ -325,18 +325,18 @@ #define MPT_ASSERT(expr) MPT_CHECKER_ASSUME(expr) #define MPT_ASSERT_MSG(expr, msg) MPT_CHECKER_ASSUME(expr) -#define MPT_ASSERT_ALWAYS(expr) do { MPT_MAYBE_CONSTANT_IF(!(expr)) { AssertHandler(__FILE__, __LINE__, __FUNCTION__, #expr); } MPT_CHECKER_ASSUME(expr); } while(0) -#define MPT_ASSERT_ALWAYS_MSG(expr, msg) do { MPT_MAYBE_CONSTANT_IF(!(expr)) { AssertHandler(__FILE__, __LINE__, __FUNCTION__, #expr, msg); } MPT_CHECKER_ASSUME(expr); } while(0) +#define MPT_ASSERT_ALWAYS(expr) do { if(!(expr)) { AssertHandler(__FILE__, __LINE__, __FUNCTION__, #expr); } MPT_CHECKER_ASSUME(expr); } while(0) +#define MPT_ASSERT_ALWAYS_MSG(expr, msg) do { if(!(expr)) { AssertHandler(__FILE__, __LINE__, __FUNCTION__, #expr, msg); } MPT_CHECKER_ASSUME(expr); } while(0) #ifndef MPT_ASSERT_HANDLER_NEEDED #define MPT_ASSERT_HANDLER_NEEDED #endif #else // !NO_ASSERTS -#define MPT_ASSERT(expr) do { MPT_MAYBE_CONSTANT_IF(!(expr)) { AssertHandler(__FILE__, __LINE__, __FUNCTION__, #expr); } MPT_CHECKER_ASSUME(expr); } while(0) -#define MPT_ASSERT_MSG(expr, msg) do { MPT_MAYBE_CONSTANT_IF(!(expr)) { AssertHandler(__FILE__, __LINE__, __FUNCTION__, #expr, msg); } MPT_CHECKER_ASSUME(expr); } while(0) -#define MPT_ASSERT_ALWAYS(expr) do { MPT_MAYBE_CONSTANT_IF(!(expr)) { AssertHandler(__FILE__, __LINE__, __FUNCTION__, #expr); } MPT_CHECKER_ASSUME(expr); } while(0) -#define MPT_ASSERT_ALWAYS_MSG(expr, msg) do { MPT_MAYBE_CONSTANT_IF(!(expr)) { AssertHandler(__FILE__, __LINE__, __FUNCTION__, #expr, msg); } MPT_CHECKER_ASSUME(expr); } while(0) +#define MPT_ASSERT(expr) do { if(!(expr)) { AssertHandler(__FILE__, __LINE__, __FUNCTION__, #expr); } MPT_CHECKER_ASSUME(expr); } while(0) +#define MPT_ASSERT_MSG(expr, msg) do { if(!(expr)) { AssertHandler(__FILE__, __LINE__, __FUNCTION__, #expr, msg); } MPT_CHECKER_ASSUME(expr); } while(0) +#define MPT_ASSERT_ALWAYS(expr) do { if(!(expr)) { AssertHandler(__FILE__, __LINE__, __FUNCTION__, #expr); } MPT_CHECKER_ASSUME(expr); } while(0) +#define MPT_ASSERT_ALWAYS_MSG(expr, msg) do { if(!(expr)) { AssertHandler(__FILE__, __LINE__, __FUNCTION__, #expr, msg); } MPT_CHECKER_ASSUME(expr); } while(0) #ifndef MPT_ASSERT_HANDLER_NEEDED #define MPT_ASSERT_HANDLER_NEEDED #endif Modified: trunk/OpenMPT/soundlib/Load_it.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_it.cpp 2015-05-28 08:27:19 UTC (rev 5198) +++ trunk/OpenMPT/soundlib/Load_it.cpp 2015-05-28 09:23:24 UTC (rev 5199) @@ -2014,7 +2014,7 @@ #define WRITEMODULARHEADER(code, fsize) \ { \ mpt::IO::WriteIntLE<uint32>(f, code); \ - MPT_ASSERT(fsize <= uint16_max); \ + MPT_ASSERT(Util::TypeCanHoldValue<uint16>(fsize)); \ const uint16 _size = fsize; \ mpt::IO::WriteIntLE<uint16>(f, _size); \ } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |