summaryrefslogtreecommitdiffstats
path: root/module/zfs
diff options
context:
space:
mode:
authorMatthew Macy <[email protected]>2019-10-10 09:45:38 -0700
committerBrian Behlendorf <[email protected]>2019-10-10 09:45:37 -0700
commitc5858ff9462719be60b2ffb0065dd01508a63162 (patch)
treeea8dfb5c8f7298f5102c5422cfc3e6bb608d9373 /module/zfs
parent381d91de7de42222419ea8fbe2a956f9aebe3f7a (diff)
Make clang happy with vdev_raidz_ code
The macros are used to generate code for conditions without a corresponding branch. This is not a problem in practice, but clang has no way of knowing that. Add a default branch with a VERIFY(0) to indicate that it "can't happen" ``` In file included from \ /usr/home/mmacy/devel/ZoF/module/zfs/vdev_raidz_math_sse2.c:607: /usr/home/mmacy/devel/ZoF/module/zfs/vdev_raidz_math_impl.h:281:3: \ error: no case matching constant switch condition '3' [-Werror] ``` Reviewed-by: George Melikov <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Matt Macy <[email protected]> Closes #9434
Diffstat (limited to 'module/zfs')
-rw-r--r--module/zfs/vdev_raidz_math_avx512f.c6
-rw-r--r--module/zfs/vdev_raidz_math_sse2.c7
2 files changed, 13 insertions, 0 deletions
diff --git a/module/zfs/vdev_raidz_math_avx512f.c b/module/zfs/vdev_raidz_math_avx512f.c
index adbe9b0ef..b89e18c0c 100644
--- a/module/zfs/vdev_raidz_math_avx512f.c
+++ b/module/zfs/vdev_raidz_math_avx512f.c
@@ -29,6 +29,7 @@
#include <sys/types.h>
#include <sys/simd.h>
+#include <sys/debug.h>
#define __asm __asm__ __volatile__
@@ -194,6 +195,8 @@ typedef struct v {
"vpternlogd $0x6c,%zmm29, %zmm26, %" VR0(r) "\n" \
"vpternlogd $0x6c,%zmm29, %zmm25, %" VR1(r)); \
break; \
+ default: \
+ VERIFY(0); \
} \
}
@@ -370,6 +373,9 @@ gf_x2_mul_fns[256] = {
COPY(R_23(r), _mul_x2_in); \
gf_x2_mul_fns[c](); \
COPY(_mul_x2_acc, R_23(r)); \
+ break; \
+ default: \
+ VERIFY(0); \
} \
}
diff --git a/module/zfs/vdev_raidz_math_sse2.c b/module/zfs/vdev_raidz_math_sse2.c
index 70a21c10c..12d7bda01 100644
--- a/module/zfs/vdev_raidz_math_sse2.c
+++ b/module/zfs/vdev_raidz_math_sse2.c
@@ -28,6 +28,7 @@
#include <sys/types.h>
#include <sys/simd.h>
+#include <sys/debug.h>
#define __asm __asm__ __volatile__
@@ -125,6 +126,8 @@ typedef struct v {
__asm( \
"movdqa %" VR0(r) ", %" VR1(r)); \
break; \
+ default: \
+ VERIFY(0); \
} \
}
@@ -175,6 +178,8 @@ typedef struct v {
"movdqa %%" VR0(r)", 0x00(%[DST])\n" \
: : [DST] "r" (dst)); \
break; \
+ default: \
+ VERIFY(0); \
} \
}
@@ -508,6 +513,8 @@ gf_x2_mul_fns[256] = {
gf_x1_mul_fns[c](); \
COPY(_mul_x1_acc, r); \
break; \
+ default: \
+ VERIFY(0); \
} \
}