From f542c7232e8aa90322b3151f85277a3d5e71de5b Mon Sep 17 00:00:00 2001 From: Sacha Date: Fri, 15 Aug 2014 14:43:52 +1000 Subject: [PATCH] Use __builtin_unreachable where possible for non-msvc --- common/include/Pcsx2Defs.h | 4 ++-- common/include/Utilities/Assertions.h | 12 ++++++------ plugins/GSdx/stdafx.h | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/common/include/Pcsx2Defs.h b/common/include/Pcsx2Defs.h index 6e23feb18e..b077ea8a29 100644 --- a/common/include/Pcsx2Defs.h +++ b/common/include/Pcsx2Defs.h @@ -54,14 +54,14 @@ extern "C" unsigned __int64 __xgetbv(int); # ifdef _MSC_VER # define jASSUME(exp) (__assume(exp)) # else -# define jASSUME(exp) ((void) sizeof(exp)) +# define jASSUME(exp) do { if(!(exp)) __builtin_unreachable(); } while(0) # endif # else # define jBREAKPOINT() __debugbreak(); # ifdef wxASSERT # define jASSUME(exp) wxASSERT(exp) # else -# define jASSUME(exp) do { if(exp) ; else jBREAKPOINT(); } while(0); +# define jASSUME(exp) do { if(!(exp)) jBREAKPOINT(); } while(0) # endif # endif #endif diff --git a/common/include/Utilities/Assertions.h b/common/include/Utilities/Assertions.h index e0a4e7f5cc..0f268d028e 100644 --- a/common/include/Utilities/Assertions.h +++ b/common/include/Utilities/Assertions.h @@ -117,8 +117,8 @@ extern pxDoAssertFnType* pxDoAssert; # define pxAssumeMsg(cond, msg) pxAssumeRel(cond, msg) # define pxAssumeDev(cond, msg) pxAssumeRel(cond, msg) -# define pxFail(msg) pxAssertMsg(false, msg) -# define pxFailDev(msg) pxAssertDev(false, msg) +# define pxFail(msg) pxAssertMsg(false, msg) +# define pxFailDev(msg) pxAssertDev(false, msg) #elif defined(PCSX2_DEVBUILD) @@ -141,8 +141,8 @@ extern pxDoAssertFnType* pxDoAssert; # define pxAssumeMsg(cond, msg) pxAssumeRel(cond, msg) //(__assume(cond)) # define pxAssumeDev(cond, msg) pxAssumeRel(cond, msg) -# define pxFail(msg) pxAssertDev(false, msg) -# define pxFailDev(msg) pxAssertDev(false, msg) +# define pxFail(msg) pxAssertDev(false, msg) +# define pxFailDev(msg) pxAssertDev(false, msg) #else @@ -155,8 +155,8 @@ extern pxDoAssertFnType* pxDoAssert; # define pxAssumeMsg(cond, msg) (__assume(cond)) # define pxAssumeDev(cond, msg) (__assume(cond)) -# define pxFail(msg) do{} while(0) -# define pxFailDev(msg) do{} while(0) +# define pxFail(msg) do{} while(0) +# define pxFailDev(msg) do{} while(0) #endif diff --git a/plugins/GSdx/stdafx.h b/plugins/GSdx/stdafx.h index 4f5b370125..bec5ec3e00 100644 --- a/plugins/GSdx/stdafx.h +++ b/plugins/GSdx/stdafx.h @@ -204,7 +204,7 @@ using namespace std; #include "assert.h" #define __forceinline __inline__ __attribute__((always_inline,unused)) // #define __forceinline __inline__ __attribute__((__always_inline__,__gnu_inline__)) - #define __assume(c) if (!(c)) __builtin_unreachable() + #define __assume(c) do { if (!(c)) __builtin_unreachable(); } while(0) #endif