Module Name:    src
Committed By:   christos
Date:           Fri Aug 28 12:43:24 UTC 2020

Modified Files:
        src/sys/sys: systm.h

Log Message:
Fix uninitialized, caught by llvm. Tuck variables in blocks where they are
needed.


To generate a diff of this commit:
cvs rdiff -u -r1.297 -r1.298 src/sys/sys/systm.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/sys/systm.h
diff -u src/sys/sys/systm.h:1.297 src/sys/sys/systm.h:1.298
--- src/sys/sys/systm.h:1.297	Thu Aug 27 10:11:57 2020
+++ src/sys/sys/systm.h	Fri Aug 28 08:43:24 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: systm.h,v 1.297 2020/08/27 14:11:57 riastradh Exp $	*/
+/*	$NetBSD: systm.h,v 1.298 2020/08/28 12:43:24 christos Exp $	*/
 
 /*-
  * Copyright (c) 1982, 1988, 1991, 1993
@@ -201,12 +201,13 @@ enum hashtype {
 
 #define COND_SET_CPTR(dst, src, allow) \
 	do { \
-		void *__v; \
 		if (allow) \
 			dst = src; \
-		else \
+		else { \
+			void *__v; \
 			hash_value(&__v, sizeof(__v), &src, sizeof(src)); \
-		dst = __v; \
+			dst = __v; \
+		} \
 	} while (/*CONSTCOND*/0)
 
 #define COND_SET_PTR(dst, src, allow) \
@@ -219,11 +220,12 @@ enum hashtype {
 
 #define COND_SET_VALUE(dst, src, allow)	\
 	do { \
-		uint64_t __v = src; \
 		if (allow) \
 			dst = src; \
-		else \
+		else { \
+			uint64_t __v = src; \
 			hash_value(&dst, sizeof(dst), &__v, sizeof(__v)); \
+		} \
 	} while (/*CONSTCOND*/0)
 
 void	hash_value(void *, size_t, const void *, size_t);

Reply via email to