diff --git a/include/freerdp/api.h b/include/freerdp/api.h index b7655cf20..07003bc40 100644 --- a/include/freerdp/api.h +++ b/include/freerdp/api.h @@ -90,13 +90,14 @@ WLog_VRB("com.freerdp.api", "IFCALLRET(" #_cb ") == NULL"); \ } while (0) -#if 0 // defined(__GNUC__) +#if defined(__GNUC__) || defined(__clang__) #define IFCALLRESULT(_default_return, _cb, ...) \ - ({ \ - (_cb != NULL) ? _cb(__VA_ARGS__) : ({ \ + __extension__({ \ + if (_cb == NULL) \ + { \ WLog_VRB("com.freerdp.api", "IFCALLRESULT(" #_cb ") == NULL"); \ - (_default_return); \ - }); \ + } \ + ((_cb != NULL) ? _cb(__VA_ARGS__) : (_default_return)); \ }) #else #define IFCALLRESULT(_default_return, _cb, ...) \