Module Name:    src
Committed By:   kamil
Date:           Wed Feb 13 17:17:02 UTC 2019

Modified Files:
        src/common/lib/libc/misc: ubsan.c

Log Message:
Fix kUBSan build with GCC7

Add missing __unreachable() and FALLTHROUGH keywords.

Reported by <Akul Pillai>


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/common/lib/libc/misc/ubsan.c

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

Modified files:

Index: src/common/lib/libc/misc/ubsan.c
diff -u src/common/lib/libc/misc/ubsan.c:1.4 src/common/lib/libc/misc/ubsan.c:1.5
--- src/common/lib/libc/misc/ubsan.c:1.4	Mon Feb  4 22:07:41 2019
+++ src/common/lib/libc/misc/ubsan.c	Wed Feb 13 17:17:02 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: ubsan.c,v 1.4 2019/02/04 22:07:41 mrg Exp $	*/
+/*	$NetBSD: ubsan.c,v 1.5 2019/02/13 17:17:02 kamil Exp $	*/
 
 /*-
  * Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -38,9 +38,9 @@
 
 #include <sys/cdefs.h>
 #if defined(_KERNEL)
-__KERNEL_RCSID(0, "$NetBSD: ubsan.c,v 1.4 2019/02/04 22:07:41 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ubsan.c,v 1.5 2019/02/13 17:17:02 kamil Exp $");
 #else
-__RCSID("$NetBSD: ubsan.c,v 1.4 2019/02/04 22:07:41 mrg Exp $");
+__RCSID("$NetBSD: ubsan.c,v 1.5 2019/02/13 17:17:02 kamil Exp $");
 #endif
 
 #if defined(_KERNEL)
@@ -110,7 +110,7 @@ __RCSID("$NetBSD: ubsan.c,v 1.4 2019/02/
 
 #define NUMBER_SIGNED_BIT	1U
 
-#if __SIZEOF_INT128__
+#ifdef __SIZEOF_INT128__
 typedef __int128 longest;
 typedef unsigned __int128 ulongest;
 #else
@@ -1192,6 +1192,7 @@ Report(bool isFatal, const char *pFormat
 	}
 	if (isFatal || ISSET(ubsan_flags, UBSAN_ABORT)) {
 		abort();
+		__unreachable();
 		/* NOTREACHED */
 	}
 #endif
@@ -1291,6 +1292,7 @@ DeserializeNumberSigned(char *pBuffer, s
 	switch (zDeserializeTypeWidth(pType)) {
 	default:
 		ASSERT(0 && "Invalid codepath");
+		__unreachable();
 		/* NOTREACHED */
 #ifdef __SIZEOF_INT128__
 	case WIDTH_128:
@@ -1298,8 +1300,11 @@ DeserializeNumberSigned(char *pBuffer, s
 		break;
 #endif
 	case WIDTH_64:
+		/* FALLTHROUGH */
 	case WIDTH_32:
+		/* FALLTHROUGH */
 	case WIDTH_16:
+		/* FALLTHROUGH */
 	case WIDTH_8:
 		snprintf(pBuffer, zBUfferLength, "%" PRId64, STATIC_CAST(int64_t, L));
 		break;
@@ -1318,6 +1323,7 @@ DeserializeNumberUnsigned(char *pBuffer,
 	switch (zDeserializeTypeWidth(pType)) {
 	default:
 		ASSERT(0 && "Invalid codepath");
+		__unreachable();
 		/* NOTREACHED */
 #ifdef __SIZEOF_INT128__
 	case WIDTH_128:
@@ -1325,8 +1331,11 @@ DeserializeNumberUnsigned(char *pBuffer,
 		break;
 #endif
 	case WIDTH_64:
+		/* FALLTHROUGH */
 	case WIDTH_32:
+		/* FALLTHROUGH */
 	case WIDTH_16:
+		/* FALLTHROUGH */
 	case WIDTH_8:
 		snprintf(pBuffer, zBUfferLength, "%" PRIu64, STATIC_CAST(uint64_t, L));
 		break;
@@ -1358,7 +1367,9 @@ DeserializeFloatOverPointer(char *pBuffe
 	switch (zDeserializeTypeWidth(pType)) {
 #ifdef __HAVE_LONG_DOUBLE
 	case WIDTH_128:
+		/* FALLTHROUGH */
 	case WIDTH_96:
+		/* FALLTHROUGH */
 	case WIDTH_80:
 		memcpy(&LD, pNumber, sizeof(long double));
 		snprintf(pBuffer, zBUfferLength, "%Lg", LD);
@@ -1512,7 +1523,9 @@ DeserializeNumberFloat(char *szLocation,
 		/* NOTREACHED */
 #ifdef __HAVE_LONG_DOUBLE
 	case WIDTH_128:
+		/* FALLTHROUGH */
 	case WIDTH_96:
+		/* FALLTHROUGH */
 	case WIDTH_80:
 		DeserializeFloatOverPointer(pBuffer, zBUfferLength, pType, REINTERPRET_CAST(unsigned long *, ulNumber));
 		break;
@@ -1524,6 +1537,7 @@ DeserializeNumberFloat(char *szLocation,
 		}
 		/* FALLTHROUGH */
 	case WIDTH_32:
+		/* FALLTHROUGH */
 	case WIDTH_16:
 		DeserializeFloatInlined(pBuffer, zBUfferLength, pType, ulNumber);
 		break;

Reply via email to