[tor-commits] [tor/release-0.4.4] Fix warnings when using two unusual options together.

asn at torproject.org asn at torproject.org
Wed Oct 7 10:43:15 UTC 2020


commit 88d99fc1bd87b17517e49fd7ae82c0de6eaff992
Author: Nick Mathewson <nickm at torproject.org>
Date:   Tue Sep 22 09:59:37 2020 -0400

    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.
---
 changes/bug40129                     | 4 ++++
 src/feature/dircache/dircache_stub.c | 2 ++
 src/feature/relay/router.c           | 5 +++++
 3 files changed, 11 insertions(+)

diff --git a/changes/bug40129 b/changes/bug40129
new file mode 100644
index 0000000000..80de5ef355
--- /dev/null
+++ b/changes/bug40129
@@ -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.
diff --git a/src/feature/dircache/dircache_stub.c b/src/feature/dircache/dircache_stub.c
index 87811597d1..725c44bd4d 100644
--- a/src/feature/dircache/dircache_stub.c
+++ b/src/feature/dircache/dircache_stub.c
@@ -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)
diff --git a/src/feature/relay/router.c b/src/feature/relay/router.c
index 34d8163c36..75a3d2f35c 100644
--- a/src/feature/relay/router.c
+++ b/src/feature/relay/router.c
@@ -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





More information about the tor-commits mailing list