Evaluate arguments in BH_VERIFY_STR_EQ once

This commit is contained in:
2025-11-09 10:58:17 +03:00
parent 6d02598e20
commit 0fc57128fb

View File

@@ -40,10 +40,13 @@ typedef int (*BH_UnitCallback)(void);
#define BH_VERIFY_STR_EQ(actual, expected) \ #define BH_VERIFY_STR_EQ(actual, expected) \
do { \ do { \
BH_VERIFY((actual) != NULL && (expected) != NULL); \ const char *a, *b; \
if (strcmp((actual), (expected)) != 0) { \ a = (actual); \
b = (expected); \
BH_VERIFY(a != NULL && b != NULL); \
if (strcmp(a, b) != 0) { \
printf("%s:%d\tExpected '%s', got '%s'\n", \ printf("%s:%d\tExpected '%s', got '%s'\n", \
__FILE__, __LINE__, (expected), (actual)); \ __FILE__, __LINE__, a, b); \
return -1; \ return -1; \
} \ } \
} while(0) } while(0)