21dfa4300d
``` grep -Irl assert_ test/ | xargs sed -i \ 's/witness_assert/witness_do_not_replace/g'; grep -Irl assert_ test/ | xargs sed -i \ 's/malloc_mutex_assert_owner/malloc_mutex_do_not_replace_owner/g'; grep -Ir assert_ test/ | grep -o "[_a-zA-Z]*assert_[_a-zA-Z]*" | \ grep -v "^assert_"; # confirm no output grep -Irl assert_ test/ | xargs sed -i 's/assert_/expect_/g'; grep -Irl witness_do_not_replace test/ | xargs sed -i \ 's/witness_do_not_replace/witness_assert/g'; grep -Irl malloc_mutex_do_not_replace_owner test/ | xargs sed -i \ 's/malloc_mutex_do_not_replace_owner/malloc_mutex_assert_owner/g'; ```
31 lines
814 B
C
31 lines
814 B
C
/* btalloc() provides a mechanism for allocating via permuted backtraces. */
|
|
void *btalloc(size_t size, unsigned bits);
|
|
|
|
#define btalloc_n_proto(n) \
|
|
void *btalloc_##n(size_t size, unsigned bits);
|
|
btalloc_n_proto(0)
|
|
btalloc_n_proto(1)
|
|
|
|
#define btalloc_n_gen(n) \
|
|
void * \
|
|
btalloc_##n(size_t size, unsigned bits) { \
|
|
void *p; \
|
|
\
|
|
if (bits == 0) { \
|
|
p = mallocx(size, 0); \
|
|
} else { \
|
|
switch (bits & 0x1U) { \
|
|
case 0: \
|
|
p = (btalloc_0(size, bits >> 1)); \
|
|
break; \
|
|
case 1: \
|
|
p = (btalloc_1(size, bits >> 1)); \
|
|
break; \
|
|
default: not_reached(); \
|
|
} \
|
|
} \
|
|
/* Intentionally sabotage tail call optimization. */ \
|
|
expect_ptr_not_null(p, "Unexpected mallocx() failure"); \
|
|
return p; \
|
|
}
|