Closed MoshiKoi closed 1 month ago
Thanks for opening this, should be a quick fix! I can take more of a look at this tomorrow or Friday. Might be an unintended consequence of #93.
Fixed in e55076cd03255d389c866212ecd3d937bb41946e
2.1.2 is released with a fix for this
For compatibility reasons, the Windows version of Clang defines
_MSC_VER
, meaning libassert detects the compiler as MSVChttps://github.com/jeremy-rifkin/libassert/blob/b90077a6a9e2ea178c50f5df5729873dfc3fd5fb/include/libassert/platform.hpp#L52-L58
This causes some issues. For example,
ASSERT_VAL
eventually calls theLIBASSERT_INVOKE_VAL_PRETTY_FUNCTION_ARG
macro which in this scenario relies on a built-in that Clang doesn't support:https://github.com/jeremy-rifkin/libassert/blob/b90077a6a9e2ea178c50f5df5729873dfc3fd5fb/include/libassert/assert.hpp#L687-L689
I think this can be fixed by just replacing the
#ifdef _MSC_VER
with#if defined(_MSC_VER) && !defined(__clang__)
. It fixes theASSERT_VAL
issue, but I'm not sure what else might change (though it should be fine since presumably it'll just switch to the clang version of libassert everywhere else as well).