Fix warnings when using two unusual options together.

The option `--enable-all-bugs-are-fatal` when used with
`--disable-module-relay` caused GCC to warn about functions that
it thought should be labeled noreturn.

I've tried a couple of approaches, but disabling the warning on
these functions seems to be the best approach.

Fixed #40129; bugfix on 0.4.4.1-alpha.
This commit is contained in:
Nick Mathewson 2020-09-22 09:59:37 -04:00
parent 1cce0588e1
commit 88d99fc1bd
3 changed files with 11 additions and 0 deletions

4
changes/bug40129 Normal file
View file

@ -0,0 +1,4 @@
o Minor bugfixes (compilation):
- Fix compiler warnings that would occur when building with
"--enable-all-bugs-are-fatal" and "--disable-module-relay"
at the same time. Fixes bug 40129; bugfix on 0.4.4.1-alpha.

View file

@ -14,6 +14,7 @@
#include "feature/dircache/dirserv.h"
#include "feature/dircommon/dir_connection_st.h"
DISABLE_GCC_WARNING("-Wmissing-noreturn")
int
directory_handle_command(dir_connection_t *conn)
{
@ -29,6 +30,7 @@ connection_dirserv_flushed_some(dir_connection_t *conn)
tor_assert_nonfatal_unreached_once();
return -1;
}
ENABLE_GCC_WARNING("-Wmissing-noreturn")
void
dir_conn_clear_spool(dir_connection_t *conn)

View file

@ -2488,6 +2488,10 @@ check_descriptor_bandwidth_changed(time_t now)
}
}
// This function can be "noreturn" if relay mode is disabled and
// ALL_BUGS_ARE_FATAL is set.
DISABLE_GCC_WARNING("-Wmissing-noreturn")
/** Note at log level severity that our best guess of address has changed from
* <b>prev</b> to <b>cur</b>. */
void
@ -2517,6 +2521,7 @@ log_addr_has_changed(int severity,
"Guessed our IP address as %s (source: %s).",
addrbuf_cur, source);
}
ENABLE_GCC_WARNING("-Wmissing-noreturn")
/** Check whether our own address as defined by the Address configuration
* has changed. This is for routers that get their address from a service