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 <mail@gmelikov.ru>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Matt Macy <mmacy@FreeBSD.org>
Closes #9434
This commit is contained in:
Matthew Macy 2019-10-10 09:45:38 -07:00 committed by Brian Behlendorf
parent 381d91de7d
commit c5858ff946
2 changed files with 13 additions and 0 deletions

View File

@ -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); \
} \
}

View File

@ -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); \
} \
}