Skip to content
Permalink
Browse files

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]
```

Signed-off-by: Matt Macy <mmacy@FreeBSD.org>
  • Loading branch information...
mattmacy authored and freqlabs committed Oct 9, 2019
1 parent 381d91d commit 890774ab9e30aef81b1e30c883a377337d4cae41
Showing with 13 additions and 0 deletions.
  1. +6 −0 module/zfs/vdev_raidz_math_avx512f.c
  2. +7 −0 module/zfs/vdev_raidz_math_sse2.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); \
} \
}

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

0 comments on commit 890774a

Please sign in to comment.
You can’t perform that action at this time.