Skip to contentSkip to conversation

selftests: net: reuseport_addr_any: silence clang warning

PATCH Applied Peter Oskolkov 2 participants 2 messages Dec 21, 2018

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH v3 1/1 selftests: net: reuseport_addr_any: silence clang warning

Clang does not recognize that calls to error() terminate execution and complains about uninitialized variable use that happens after calls to error(). This noop patchset fixes this.

---
 tools/testing/selftests/net/reuseport_addr_any.c | 10 ++++++++++
 1 file changed, 10 insertions(+)
tools/testing/selftests/net/reuseport_addr_any.c +10 -0
index 6f54d425dba9..c6233935fed1 100644
@@ -60,6 +60,11 @@ static void build_rcv_fd(int family, int proto, int *rcv_fds, int count,
 		break;
 	default:
 		error(1, 0, "Unsupported family %d", family);
+		/* clang does not recognize error() above as terminating
+		 * the program, so it complains that saddr, sz are
+		 * not initialized when this code path is taken. Silence it.
+		 */
+		return;
 	}
 
 	for (i = 0; i < count; ++i) {
@@ -128,6 +133,11 @@ static int connect_and_send(int family, int proto)
 	break;
 	default:
 		error(1, 0, "Unsupported family %d", family);
+		/* clang does not recognize error() above as terminating
+		 * the program, so it complains that saddr, daddr, sz are
+		 * not initialized when this code path is taken. Silence it.
+		 */
+		return -1;
 	}
 
 	fd = socket(family, proto, 0);
Signature · 1 line
2.20.1.415.g653613c723-goog
maintainer Applied
#1 lore raw

From: Peter Oskolkov <[email protected]>
Date: Thu, 20 Dec 2018 16:41:52 -0800

Quoted 5 lines

Clang does not recognize that calls to error() terminate execution and complains about uninitialized variable use that happens after calls to error(). This noop patchset fixes this.

I wonder why it's not marked with attribute noreturn.

In any event, it isn't, so your patch is of course needed.

Applied, thanks.