Separate YC_DEBUG_CODE and YC_DEBUG_PRINT

Originally, both were under YC_DEBUG_CODE. That's kind of how it is on
my bc.

However, in Yc, a lot of validity checks are used, and that's not how
BC_DEBUG_CODE is used in bc. Instead, BC_DEBUG_CODE is used mostly for
printing during debugging.

I like my validity checks, though; they have proven most useful, and I'm
going to add more. So I decided that printing during debugging should be
exclusively under YC_DEBUG_PRINT.

So I split them.

This commit also changes a YC_DEBUG guard in lists to YC_DEBUG_CODE
because those validity checks should be able to be turned off.

I should add YC_DEBUG_CODE to my testing regimen specifically because
they will find *so* many bugs. And I should add *so* many more.

Signed-off-by: Gavin Howard <gavin@yzena.com>
master
Gavin D. Howard 2 months ago
parent 4242e8dbb3
commit a56c47d223
Signed by: gavin
GPG Key ID: F890265DD80E4E90

@ -177,6 +177,7 @@ endif()
if("${CMAKE_BUILD_TYPE}" MATCHES "Debug" OR "${CMAKE_BUILD_TYPE}" MATCHES "RelWithDebInfo")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DYC_DEBUG=1")
option(YC_DEBUG_CODE "Add extra debug code" OFF)
# If we are using Clang...
if ("${CMAKE_C_COMPILER_ID}" MATCHES "Clang")
@ -202,19 +203,26 @@ if("${CMAKE_BUILD_TYPE}" MATCHES "Debug" OR "${CMAKE_BUILD_TYPE}" MATCHES "RelWi
else()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DYC_DEBUG=0")
set(YC_DEBUG_CODE FALSE)
endif()
if("${YC_DEBUG_CODE}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DYC_DEBUG_CODE=1")
else()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DYC_DEBUG_CODE=0")
endif()
if("${CMAKE_BUILD_TYPE}" MATCHES "Debug")
option(YC_DEBUG_CODE "Add extra debug code" OFF)
option(YC_DEBUG_PRINT "Add extra debug printing" OFF)
else()
set(YC_DEBUG_CODE FALSE)
set(YC_DEBUG_PRINT FALSE)
endif()
if("${YC_DEBUG_CODE}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DYC_DEBUG_CODE=1")
if("${YC_DEBUG_PRINT}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DYC_DEBUG_PRINT=1")
else()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DYC_DEBUG_CODE=0")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DYC_DEBUG_PRINT=0")
endif()
# If we are using sanitizers...

@ -182,6 +182,11 @@ options: {
default: false
desc: "Add extra debug code that is usually not needed."
}
debug_print: {
type: #bool
default: false
desc: "Add extra debug printing that is usually not needed."
}
lto: {
type: #bool
default: false

@ -206,10 +206,12 @@ if cc contains "clang"
if config["debug"]
{
defs! = defs +~ option(defopt, "YC_DEBUG_CODE", "debug_code");
defs! = defs +~ option(defopt, "YC_DEBUG_PRINT", "debug_print");
}
else
{
defs! = defs +~ #[ defopt +~ "YC_DEBUG_CODE=0" ];
defs! = defs +~ #[ defopt +~ "YC_DEBUG_PRINT=0" ];
}
cmd_line: []str = #[ cc ] +~ cflags +~ defs +~ ldflags +~ #[ dbg, opt, objout,

@ -149,7 +149,7 @@ y_setpool_checkValidity(y_setpool* p, const char* const func)
}
#endif // YC_DEBUG
#if YC_DEBUG_CODE
#if YC_DEBUG_PRINT
static y_u64
y_setpool_hash(const y_setpoolkey* key) y_allnonnull y_nodiscard;
@ -206,7 +206,7 @@ y_setpool_print(y_setpool* p)
y_return_void_dbg;
}
#endif // YC_DEBUG_CODE
#endif // YC_DEBUG_PRINT
/**
* This is the procedure that actually does the insertion.
@ -300,9 +300,9 @@ y_setpool_grow(y_setpool* p)
p->growing = true;
#if YC_DEBUG_CODE
#if YC_DEBUG_PRINT
y_setpool_print(p);
#endif // YC_DEBUG_CODE
#endif // YC_DEBUG_PRINT
cap = p->cap;
@ -422,9 +422,9 @@ y_setpool_grow(y_setpool* p)
// forward because other items might have been in the way when they were
// moved.
#if YC_DEBUG_CODE
#if YC_DEBUG_PRINT
y_setpool_print(p);
#endif // YC_DEBUG_CODE
#endif // YC_DEBUG_PRINT
keyptr2 = y_SETPOOL_KSWAP3(p);
@ -483,9 +483,9 @@ y_setpool_grow(y_setpool* p)
err:
#if YC_DEBUG_CODE
#if YC_DEBUG_PRINT
y_setpool_print(p);
#endif // YC_DEBUG_CODE
#endif // YC_DEBUG_PRINT
#if YC_DEBUG
y_setpool_checkValidity(p, __func__);
@ -925,9 +925,9 @@ y_setpool_alloc(y_Setpool p, const void* data, y_usize size, y_Destructor dtor)
if (y_setpool_exists_k(p, data, size, &val))
{
#if YC_DEBUG_CODE
#if YC_DEBUG_PRINT
y_setpool_print(p);
#endif // YC_DEBUG_CODE
#endif // YC_DEBUG_PRINT
y_return_dbg(val);
}
@ -961,9 +961,9 @@ y_setpool_alloc(y_Setpool p, const void* data, y_usize size, y_Destructor dtor)
p->len += 1;
#if YC_DEBUG_CODE
#if YC_DEBUG_PRINT
y_setpool_print(p);
#endif // YC_DEBUG_CODE
#endif // YC_DEBUG_PRINT
y_return_dbg(ptr);
}

@ -71,7 +71,7 @@
#include "../concurrency/strucon.h"
#if YC_DEBUG
#if YC_DEBUG_CODE
/**
* A function to compare list indices, a @a y_Comparator.
@ -267,7 +267,8 @@ y_list_checkValidity(y_list* l)
y_return_void_dbg;
}
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
/**
* Grows the list. This grows it by 4 times to reduce contention when moving
@ -303,9 +304,9 @@ y_list_grow(y_list* l)
oldalloc = l->cap;
esize = l->esize;
#if YC_DEBUG
#if YC_DEBUG_CODE
y_list_checkValidity(l);
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
// I want to grow the list 4 times bigger each time.
do
@ -488,9 +489,9 @@ y_list_len(const y_List l)
yc_assert(l, YC_ASSERT_LIST_NULL);
#if YC_DEBUG
#if YC_DEBUG_CODE
y_list_checkValidity(l);
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
ret = l->nused;
@ -506,9 +507,9 @@ y_list_cap(const y_List l)
yc_assert(l, YC_ASSERT_LIST_NULL);
#if YC_DEBUG
#if YC_DEBUG_CODE
y_list_checkValidity(l);
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
ret = l->cap;
@ -524,9 +525,9 @@ y_list_esize(const y_List l)
yc_assert(l, YC_ASSERT_LIST_NULL);
#if YC_DEBUG
#if YC_DEBUG_CODE
y_list_checkValidity(l);
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
ret = l->esize;
@ -546,9 +547,9 @@ y_list_head(const y_List l)
yc_assert((l->head == y_LIST_INVALID_ID) == (l->tail == y_LIST_INVALID_ID),
YC_ASSERT_LIST_MISMATCH);
#if YC_DEBUG
#if YC_DEBUG_CODE
y_list_checkValidity(l);
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
if (l->head == y_LIST_INVALID_ID)
{
@ -575,9 +576,9 @@ y_list_head_id(const y_List l)
yc_assert((l->head == y_LIST_INVALID_ID) == (l->tail == y_LIST_INVALID_ID),
YC_ASSERT_LIST_MISMATCH);
#if YC_DEBUG
#if YC_DEBUG_CODE
y_list_checkValidity(l);
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
ret = l->head;
@ -600,9 +601,9 @@ y_list_tail(const y_List l)
yc_assert((l->head == y_LIST_INVALID_ID) == (l->tail == y_LIST_INVALID_ID),
YC_ASSERT_LIST_MISMATCH);
#if YC_DEBUG
#if YC_DEBUG_CODE
y_list_checkValidity(l);
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
if (l->tail == y_LIST_INVALID_ID)
{
@ -629,9 +630,9 @@ y_list_tail_id(const y_List l)
yc_assert((l->head == y_LIST_INVALID_ID) == (l->tail == y_LIST_INVALID_ID),
YC_ASSERT_LIST_MISMATCH);
#if YC_DEBUG
#if YC_DEBUG_CODE
y_list_checkValidity(l);
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
ret = l->tail;
@ -653,10 +654,10 @@ y_list_item(const y_List l, y_ListID id)
yc_assert(l->head != y_LIST_INVALID_ID, YC_ASSERT_LIST_INVALID_ID);
yc_assert(id != y_LIST_INVALID_ID, YC_ASSERT_LIST_INVALID_ID);
#if YC_DEBUG
#if YC_DEBUG_CODE
y_list_checkId(l, id);
y_list_checkValidity(l);
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
arrayIdx = y_LIST_ARRAY_IDX(id);
itemIdx = y_LIST_ITEM_IDX(arrayIdx, id);
@ -682,10 +683,10 @@ y_list_hasPrev(const y_List l, y_ListID id)
yc_assert(l->head != y_LIST_INVALID_ID, YC_ASSERT_LIST_INVALID_ID);
yc_assert(id != y_LIST_INVALID_ID, YC_ASSERT_LIST_INVALID_ID);
#if YC_DEBUG
#if YC_DEBUG_CODE
y_list_checkId(l, id);
y_list_checkValidity(l);
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
arrayIdx = y_LIST_ARRAY_IDX(id);
itemIdx = y_LIST_ITEM_IDX(arrayIdx, id);
@ -713,10 +714,10 @@ y_list_prev(const y_List l, y_ListID id)
yc_assert(l->head != y_LIST_INVALID_ID, YC_ASSERT_LIST_INVALID_ID);
yc_assert(id != y_LIST_INVALID_ID, YC_ASSERT_LIST_INVALID_ID);
#if YC_DEBUG
#if YC_DEBUG_CODE
y_list_checkId(l, id);
y_list_checkValidity(l);
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
arrayIdx = y_LIST_ARRAY_IDX(id);
itemIdx = y_LIST_ITEM_IDX(arrayIdx, id);
@ -754,10 +755,10 @@ y_list_prev_id(const y_List l, y_ListID id)
yc_assert(l->head != y_LIST_INVALID_ID, YC_ASSERT_LIST_INVALID_ID);
yc_assert(id != y_LIST_INVALID_ID, YC_ASSERT_LIST_INVALID_ID);
#if YC_DEBUG
#if YC_DEBUG_CODE
y_list_checkId(l, id);
y_list_checkValidity(l);
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
arrayIdx = y_LIST_ARRAY_IDX(id);
itemIdx = y_LIST_ITEM_IDX(arrayIdx, id);
@ -784,10 +785,10 @@ y_list_hasNext(const y_List l, y_ListID id)
yc_assert(l->head != y_LIST_INVALID_ID, YC_ASSERT_LIST_INVALID_ID);
yc_assert(id != y_LIST_INVALID_ID, YC_ASSERT_LIST_INVALID_ID);
#if YC_DEBUG
#if YC_DEBUG_CODE
y_list_checkId(l, id);
y_list_checkValidity(l);
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
arrayIdx = y_LIST_ARRAY_IDX(id);
itemIdx = y_LIST_ITEM_IDX(arrayIdx, id);
@ -814,10 +815,10 @@ y_list_next(const y_List l, y_ListID id)
YC_ASSERT_LIST_MISMATCH);
yc_assert(l->head != y_LIST_INVALID_ID, YC_ASSERT_LIST_INVALID_ID);
#if YC_DEBUG
#if YC_DEBUG_CODE
y_list_checkId(l, id);
y_list_checkValidity(l);
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
arrayIdx = y_LIST_ARRAY_IDX(id);
itemIdx = y_LIST_ITEM_IDX(arrayIdx, id);
@ -854,10 +855,10 @@ y_list_next_id(const y_List l, y_ListID id)
yc_assert(l->head != y_LIST_INVALID_ID, YC_ASSERT_LIST_INVALID_ID);
yc_assert(id != y_LIST_INVALID_ID, YC_ASSERT_LIST_INVALID_ID);
#if YC_DEBUG
#if YC_DEBUG_CODE
y_list_checkId(l, id);
y_list_checkValidity(l);
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
arrayIdx = y_LIST_ARRAY_IDX(id);
itemIdx = y_LIST_ITEM_IDX(arrayIdx, id);
@ -890,9 +891,9 @@ y_list_prepend_id(y_List l, const void* data, y_ListID* ret)
y_u32 insertIdx;
y_ListIdxs* idxs;
void* ptr;
#if YC_DEBUG
#if YC_DEBUG_CODE
y_usize insIdx;
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
y_call_dbg();
@ -976,14 +977,14 @@ y_list_prepend_id(y_List l, const void* data, y_ListID* ret)
l->head = insertIdx;
*ret = insertIdx;
#if YC_DEBUG
#if YC_DEBUG_CODE
insIdx = y_vec_bsearch_add(&l->used, &insertIdx, y_list_idxCmp);
s = y_vec_pushAt(&l->used, insIdx, &insertIdx);
y_assert(s == y_STATUS_SUCCESS, "Failed to insert used index");
y_list_checkValidity(l);
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
y_return_dbg(y_STATUS_SUCCESS);
}
@ -1010,9 +1011,9 @@ y_list_append_id(y_List l, const void* data, y_ListID* ret)
y_u32 insertIdx;
y_ListIdxs* idxs;
void* ptr;
#if YC_DEBUG
#if YC_DEBUG_CODE
y_usize insIdx;
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
// XXX: This function can only use the *_dbg() versions of the y_call*() and
// y_return*() macros! This is because it is used as part of the bootstrap
@ -1103,7 +1104,7 @@ y_list_append_id(y_List l, const void* data, y_ListID* ret)
l->tail = insertIdx;
*ret = insertIdx;
#if YC_DEBUG
#if YC_DEBUG_CODE
if (l->emptyHead != y_LIST_INVALID_ID)
{
arrayIdx = y_LIST_ARRAY_IDX(l->emptyHead);
@ -1120,7 +1121,7 @@ y_list_append_id(y_List l, const void* data, y_ListID* ret)
y_assert(s == y_STATUS_SUCCESS, "Failed to insert used index");
y_list_checkValidity(l);
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
y_return_dbg(y_STATUS_SUCCESS);
}
@ -1149,17 +1150,17 @@ y_list_addBeforeHelper(y_List l, y_ListID id, y_ListIdxs* next_idxs,
y_usize arrayIdx;
y_usize itemIdx;
y_ListIdxs* cur_idxs;
#if YC_DEBUG
#if YC_DEBUG_CODE
y_Status s;
y_ListID oldEmptyHead;
y_usize insIdx;
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
y_call_dbg();
#if YC_DEBUG
#if YC_DEBUG_CODE
oldEmptyHead = y_LIST_INVALID_ID;
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
yc_assert(l, YC_ASSERT_LIST_NULL);
yc_assert((l->head == y_LIST_INVALID_ID) == (l->tail == y_LIST_INVALID_ID),
@ -1168,9 +1169,9 @@ y_list_addBeforeHelper(y_List l, y_ListID id, y_ListIdxs* next_idxs,
yc_assert(id != y_LIST_INVALID_ID, YC_ASSERT_LIST_INVALID_ID);
y_assert(l->len < y_LIST_INVALID_ID, "List is too big");
#if YC_DEBUG
#if YC_DEBUG_CODE
y_list_checkId(l, id);
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
if (l->emptyHead != y_LIST_INVALID_ID)
{
@ -1190,9 +1191,9 @@ y_list_addBeforeHelper(y_List l, y_ListID id, y_ListIdxs* next_idxs,
if (l->emptyHead != y_LIST_INVALID_ID)
{
#if YC_DEBUG
#if YC_DEBUG_CODE
oldEmptyHead = l->emptyHead;
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
l->emptyHead = cur_idxs->next;
}
@ -1221,7 +1222,7 @@ y_list_addBeforeHelper(y_List l, y_ListID id, y_ListIdxs* next_idxs,
l->head = newID;
}
#if YC_DEBUG
#if YC_DEBUG_CODE
if (oldEmptyHead != y_LIST_INVALID_ID)
{
arrayIdx = y_LIST_ARRAY_IDX(l->emptyHead);
@ -1236,7 +1237,7 @@ y_list_addBeforeHelper(y_List l, y_ListID id, y_ListIdxs* next_idxs,
y_assert(s == y_STATUS_SUCCESS, "Failed to insert used index");
y_list_checkValidity(l);
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
y_return_dbg(newID);
}
@ -1360,17 +1361,17 @@ y_list_addAfterHelper(y_List l, y_ListID id, y_ListIdxs* prev_idxs,
y_usize arrayIdx;
y_usize itemIdx;
y_ListIdxs* cur_idxs;
#if YC_DEBUG
#if YC_DEBUG_CODE
y_Status s;
y_ListID oldEmptyHead;
y_usize insIdx;
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
y_call_dbg();
#if YC_DEBUG
#if YC_DEBUG_CODE
oldEmptyHead = y_LIST_INVALID_ID;
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
yc_assert(l, YC_ASSERT_LIST_NULL);
yc_assert((l->head == y_LIST_INVALID_ID) == (l->tail == y_LIST_INVALID_ID),
@ -1379,9 +1380,9 @@ y_list_addAfterHelper(y_List l, y_ListID id, y_ListIdxs* prev_idxs,
yc_assert(id != y_LIST_INVALID_ID, YC_ASSERT_LIST_INVALID_ID);
y_assert(l->len < y_LIST_INVALID_ID, "List is too big");
#if YC_DEBUG
#if YC_DEBUG_CODE
y_list_checkId(l, id);
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
if (l->emptyHead != y_LIST_INVALID_ID)
{
@ -1401,9 +1402,9 @@ y_list_addAfterHelper(y_List l, y_ListID id, y_ListIdxs* prev_idxs,
if (l->emptyHead != y_LIST_INVALID_ID)
{
#if YC_DEBUG
#if YC_DEBUG_CODE
oldEmptyHead = l->emptyHead;
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
l->emptyHead = cur_idxs->next;
}
@ -1432,7 +1433,7 @@ y_list_addAfterHelper(y_List l, y_ListID id, y_ListIdxs* prev_idxs,
l->tail = newID;
}
#if YC_DEBUG
#if YC_DEBUG_CODE
if (oldEmptyHead != y_LIST_INVALID_ID)
{
arrayIdx = y_LIST_ARRAY_IDX(l->emptyHead);
@ -1447,7 +1448,7 @@ y_list_addAfterHelper(y_List l, y_ListID id, y_ListIdxs* prev_idxs,
y_assert(s == y_STATUS_SUCCESS, "Failed to insert used index");
y_list_checkValidity(l);
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
y_return_dbg(newID);
}
@ -1579,9 +1580,9 @@ y_list_nmoveBefore(y_List l, y_usize n, y_ListID itemId, y_ListID id)
YC_ASSERT_LIST_MISMATCH);
yc_assert(id != y_LIST_INVALID_ID, YC_ASSERT_LIST_INVALID_ID);
#if YC_DEBUG
#if YC_DEBUG_CODE
y_list_checkId(l, id);
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
idxs = NULL;
tempId = itemId;
@ -1670,9 +1671,9 @@ y_list_nmoveBefore(y_List l, y_usize n, y_ListID itemId, y_ListID id)
l->head = itemId;
}
#if YC_DEBUG
#if YC_DEBUG_CODE
y_list_checkValidity(l);
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
y_return_void_dbg;
}
@ -1709,9 +1710,9 @@ y_list_nmoveAfter(y_List l, y_usize n, y_ListID itemId, y_ListID id)
YC_ASSERT_LIST_MISMATCH);
yc_assert(id != y_LIST_INVALID_ID, YC_ASSERT_LIST_INVALID_ID);
#if YC_DEBUG
#if YC_DEBUG_CODE
y_list_checkId(l, id);
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
idxs = NULL;
tempId = itemId;
@ -1794,9 +1795,9 @@ y_list_nmoveAfter(y_List l, y_usize n, y_ListID itemId, y_ListID id)
l->tail = prevId;
}
#if YC_DEBUG
#if YC_DEBUG_CODE
y_list_checkValidity(l);
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
y_return_void_dbg;
}
@ -1828,9 +1829,9 @@ y_list_nremove(y_list* l, y_usize n, y_ListID id)
y_assert(n > 0, "Must remove more than 0 elements");
yc_assert(id != y_LIST_INVALID_ID, YC_ASSERT_LIST_INVALID_ID);
#if YC_DEBUG
#if YC_DEBUG_CODE
y_list_checkId(l, id);
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
arrayIdx = y_LIST_ARRAY_IDX(id);
itemIdx = y_LIST_ITEM_IDX(arrayIdx, id);
@ -1850,7 +1851,7 @@ y_list_nremove(y_list* l, y_usize n, y_ListID id)
for (i = 0; i < n; ++i)
{
#if YC_DEBUG
#if YC_DEBUG_CODE
y_usize j;
j = y_vec_bsearch(&l->used, &id, y_list_idxCmp);
@ -1858,7 +1859,7 @@ y_list_nremove(y_list* l, y_usize n, y_ListID id)
y_assertv(j != y_VEC_INVALID_IDX, "index is invalid: %zu", j);
y_vec_popAt(&l->used, j);
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
arrayIdx = y_LIST_ARRAY_IDX(id);
itemIdx = y_LIST_ITEM_IDX(arrayIdx, id);
@ -1882,7 +1883,7 @@ y_list_nremove(y_list* l, y_usize n, y_ListID id)
{
for (i = 0; i < n; ++i)
{
#if YC_DEBUG
#if YC_DEBUG_CODE
y_usize j;
j = y_vec_bsearch(&l->used, &id, y_list_idxCmp);
@ -1890,7 +1891,7 @@ y_list_nremove(y_list* l, y_usize n, y_ListID id)
y_assertv(j != y_VEC_INVALID_IDX, "index is invalid: %zu", j);
y_vec_popAt(&l->used, j);
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
arrayIdx = y_LIST_ARRAY_IDX(id);
itemIdx = y_LIST_ITEM_IDX(arrayIdx, id);
@ -1955,9 +1956,9 @@ y_list_nremove(y_list* l, y_usize n, y_ListID id)
l->nused -= 1;
#if YC_DEBUG
#if YC_DEBUG_CODE
y_list_checkValidity(l);
#endif // YC_DEBUG
#endif // YC_DEBUG_CODE
y_return_void_dbg;
}

@ -90,7 +90,7 @@
// TODO: Add a function to generate a location pointer like clang's and have the
// error functions use it.
#if YC_DEBUG_CODE
#if YC_DEBUG_PRINT
// XXX: If you change this, change the enum as well.
static const char* const yao_lex_types[] = {
@ -146,7 +146,7 @@ yao_lex_print(yao_Token* t)
y_return_void_dbg;
}
#endif // YC_DEBUG_CODE
#endif // YC_DEBUG_PRINT
const char* const yao_lex_names[yao_TOKEN_NITEMS] = {
"invalid",

Loading…
Cancel
Save