diff --git a/projects/clr/hipamd/src/hip_internal.hpp b/projects/clr/hipamd/src/hip_internal.hpp index 437a0c9d05..eccb87e0ce 100644 --- a/projects/clr/hipamd/src/hip_internal.hpp +++ b/projects/clr/hipamd/src/hip_internal.hpp @@ -97,16 +97,22 @@ typedef struct ihipIpcEventHandle_st { HIP_INIT() \ HIP_CB_SPAWNER_OBJECT(cid); -#define HIP_RETURN_DURATION(ret, ...) \ - hip::g_lastError = ret; \ +#define HIP_RETURN_DURATION(ret, ...) \ + hipError_t _lastError = (ret); \ + if (_lastError != hipSuccess) { \ + hip::g_lastError = _lastError; \ + } \ HIPPrintDuration(amd::LOG_INFO, amd::LOG_API, &startTimeUs, "%s: Returned %s : %s", \ - __func__, hipGetErrorName(hip::g_lastError), ToString( __VA_ARGS__ ).c_str()); \ - return hip::g_lastError; + __func__, hipGetErrorName(_lastError), ToString( __VA_ARGS__ ).c_str()); \ + return _lastError; #define HIP_RETURN(ret, ...) \ - hip::g_lastError = ret; \ - HIP_ERROR_PRINT(hip::g_lastError, __VA_ARGS__) \ - return hip::g_lastError; + hipError_t _lastError = (ret); \ + if (_lastError != hipSuccess) { \ + hip::g_lastError = _lastError; \ + } \ + HIP_ERROR_PRINT(_lastError, __VA_ARGS__) \ + return _lastError; #define HIP_RETURN_ONFAIL(func) \ do { \