Index: sys/ddb/db_expr.c =================================================================== --- sys/ddb/db_expr.c +++ sys/ddb/db_expr.c @@ -34,6 +34,7 @@ __FBSDID("$FreeBSD$"); #include +#include #include #include Index: sys/dev/nvdimm/nvdimm.c =================================================================== --- sys/dev/nvdimm/nvdimm.c +++ sys/dev/nvdimm/nvdimm.c @@ -35,6 +35,7 @@ #include "opt_ddb.h" #include +#include #include #include #include Index: sys/sys/cdefs.h =================================================================== --- sys/sys/cdefs.h +++ sys/sys/cdefs.h @@ -383,9 +383,13 @@ #endif #if __GNUC_PREREQ__(4, 6) || __has_builtin(__builtin_unreachable) -#define __unreachable() __builtin_unreachable() +#define __ct_unreachable() __builtin_unreachable() #else -#define __unreachable() ((void)0) +#define __ct_unreachable() ((void)0) +#endif +/* _KERNEL version must be obtained from sys/systm.h. */ +#ifndef _KERNEL +#define __unreachable() __ct_unreachable() #endif /* XXX: should use `#if __STDC_VERSION__ < 199901'. */ Index: sys/sys/systm.h =================================================================== --- sys/sys/systm.h +++ sys/sys/systm.h @@ -117,6 +117,7 @@ VNASSERT(exp, vp, ("condition %s not met at %s:%d (%s)", \ _exp, __FILE__, __LINE__, __func__)); \ } while (0) +#define __unreachable() panic("Unreachable segment reached\n") #else #define KASSERT(exp,msg) do { \ } while (0) @@ -125,6 +126,7 @@ } while (0) #define VNPASS(exp, vp) do { \ } while (0) +#define __unreachable() __ct_unreachable() #endif #ifndef CTASSERT /* Allow lint to override */