Avoid redefining "zero" as this will result in error messages like: /opt/local/libexec/llvm-9.0/bin/../include/c++/v1/__mutex_base:397:25: error: too few arguments provided to function-like macro invocation if (__d <= __d.zero()) ┆ ┆ ┆ ┆ ┆ ^ ./myutils.h:359:9: note: macro 'zero' defined here #define zero(a, n) memset((a), 0, (n)*sizeof(a[0])) --- src/countsort.h.orig 2021-11-23 16:01:03.000000000 -0500 +++ src/countsort.h 2021-11-23 16:01:12.000000000 -0500 @@ -20,7 +20,7 @@ CountSortMem() { m_MaxValueCount = 0; - zero(m_Vecs, NVEC); + muscle_zero(m_Vecs, NVEC); } void Free() --- src/myutils.cpp.orig 2021-11-23 16:01:53.000000000 -0500 +++ src/myutils.cpp 2021-11-23 16:02:01.000000000 -0500 @@ -798,7 +798,7 @@ { unsigned NewThreadStrCount = ThreadIndex + 4; char **NewThreadStrs = myalloc(char *, NewThreadStrCount); - zero(NewThreadStrs, NewThreadStrCount); + muscle_zero(NewThreadStrs, NewThreadStrCount); if (g_ThreadStrCount > 0) memcpy(NewThreadStrs, g_ThreadStrs, g_ThreadStrCount*sizeof(char *)); g_ThreadStrs = NewThreadStrs; --- src/myutils.h.orig 2021-11-23 16:02:32.000000000 -0500 +++ src/myutils.h 2021-11-23 16:02:40.000000000 -0500 @@ -356,7 +356,7 @@ #define asserteq(x, y) assert(feq(x, y)) #define assertaeq(x, y) asserta(feq(x, y)) -#define zero(a, n) memset((a), 0, (n)*sizeof(a[0])) +#define muscle_zero(a, n) memset((a), 0, (n)*sizeof(a[0])) #define memset_zero(a, n) memset((a), 0, (n)*sizeof(a[0])) void ResetRand(unsigned Seed); --- src/ensemble.cpp.orig 2021-11-23 16:03:05.000000000 -0500 +++ src/ensemble.cpp 2021-11-23 16:03:14.000000000 -0500 @@ -41,7 +41,7 @@ M.GetLabelToSeqIndex(Labels2, LabelToSeqIndex2); char **szSeqsSorted = myalloc(char *, SeqCount); - zero(szSeqsSorted, SeqCount); + muscle_zero(szSeqsSorted, SeqCount); for (uint SeqIndex = 0; SeqIndex < SeqCount; ++SeqIndex) { const string &Label = Labels2[SeqIndex];