From c5858ff9462719be60b2ffb0065dd01508a63162 Mon Sep 17 00:00:00 2001 From: Matthew Macy Date: Thu, 10 Oct 2019 09:45:38 -0700 Subject: [PATCH] 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 Reviewed-by: Brian Behlendorf Signed-off-by: Matt Macy Closes #9434 --- module/zfs/vdev_raidz_math_avx512f.c | 6 ++++++ module/zfs/vdev_raidz_math_sse2.c | 7 +++++++ 2 files changed, 13 insertions(+) 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 #include +#include #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 #include +#include #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); \ } \ }