__auto_type const _ASSERT_RETURN_VAL_val1_ = (val1);\
if (!(_ASSERT_RETURN_VAL_val0_ relop _ASSERT_RETURN_VAL_val1_)) { \
/* must assemble format string in runtime because _Generic does not play well with string constant concatenation */\
- char _ASSERT_REL_fmt_[sizeof("[tid %u] Assertion '(")+3+sizeof("=%s) %s (")+3+sizeof("=%s)' failed in %s(), %s:%d\n")];\
- strcpy(_ASSERT_REL_fmt_, "[tid %u] Assertion '(");\
- strcat(_ASSERT_REL_fmt_, PRINTF_FMT(_ASSERT_RETURN_VAL_val0_));\
- strcat(_ASSERT_REL_fmt_, "=%s) %s (");\
- strcat(_ASSERT_REL_fmt_, PRINTF_FMT(_ASSERT_RETURN_VAL_val1_));\
- strcat(_ASSERT_REL_fmt_, "=%s)' failed in %s(), %s:%d\n");\
+ char _ASSERT_REL_fmt_[sizeof("[tid %u] Assertion '(")+4+sizeof("=%s) %s (")+4+sizeof("=%s)' failed in %s(), %s:%d\n")];\
+ strncpy(_ASSERT_REL_fmt_, "[tid %u] Assertion '(", 22);\
+ strncat(_ASSERT_REL_fmt_, PRINTF_FMT(_ASSERT_RETURN_VAL_val0_), 4);\
+ strncat(_ASSERT_REL_fmt_, "=%s) %s (", 9);\
+ strncat(_ASSERT_REL_fmt_, PRINTF_FMT(_ASSERT_RETURN_VAL_val1_), 4);\
+ strncat(_ASSERT_REL_fmt_, "=%s)' failed in %s(), %s:%d\n", 29);\
print(_ASSERT_REL_fmt_, syscall(SYS_gettid), PRINTF_ARG(_ASSERT_RETURN_VAL_val0_), val0s, #relop, PRINTF_ARG(_ASSERT_RETURN_VAL_val1_), val1s, __func__, __FILE__, __LINE__);\
onfailure;\
}\