Building with 'ALL_BUGS_ARE_FATAL' fails because of formatted assertion changes.
Building with ALL_BUGS_ARE_FATAL should AFAICS normally be reserved for Coverty and/or analysers. But just for kicks, I've added -DALL_BUGS_ARE_FATAL to my CFLAGS.
This causes errors like these (from clang using a git-checkout from today):
buf/buffers.c(531,7): error: too few arguments to function call, expected at least 5, have 4
if (BUG(buf->datalen >= INT_MAX))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
..\lib/log/util_bug.h(151,70): note: expanded from macro 'BUG'
(tor_assertion_failed_(SHORT_FILE__,__LINE__,__func__,"!("#cond")"), \
~~~~~~~~~~~~~~~~~~~~~ ^
..\lib/log/util_bug.h(242,1): note: 'tor_assertion_failed_' declared here
void tor_assertion_failed_(const char *fname, unsigned int line,
^
buf/buffers.c(533,7): error: too few arguments to function call, expected at least 5, have 4
if (BUG(buf->datalen >= INT_MAX - string_len))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...
I've used this patch to fix it:
--- a/src/lib/log/util_bug.h 2019-04-14 03:56:41
+++ b/src/lib/log/util_bug.h 2019-04-14 11:31:23
@@ -148,7 +148,7 @@
#define tor_assert_nonfatal_once(cond) tor_assert((cond))
#define BUG(cond) \
(ASSERT_PREDICT_UNLIKELY_(cond) ? \
- (tor_assertion_failed_(SHORT_FILE__,__LINE__,__func__,"!("#cond")"), \
+ (tor_assertion_failed_(SHORT_FILE__,__LINE__,__func__,"!("#cond")", NULL), \
abort(), 1) \
: 0)
#elif defined(TOR_UNIT_TESTS) && defined(DISABLE_ASSERTS_IN_UNIT_TESTS)
W/o knowing what the correct fix would be.
Trac:
Username: gvanem