bhyve: fix bhyve warning CTASSERT
John-Mark Gurney
jmg at funkthat.com
Thu Aug 13 16:35:07 UTC 2015
Conrad Meyer wrote this message on Thu, Aug 13, 2015 at 08:12 -0700:
> Better to just replace CTASSERT() with _Static_assert() while you're here.
And make sure that sys/cdefs.h is included for compatibility w/ pre-C11
compilers...
> On Thu, Aug 13, 2015 at 5:05 AM, Stefano Garzarella
> <stefanogarzarella at gmail.com> wrote:
> > Hi all,
> > when I compile bhyve, I have the following errors from clang:
> > pci_emul.c:750:2: error: unused typedef '__assert750'
> > [-Werror,-Wunused-local-typedef]
> > CTASSERT(sizeof(struct msicap) == 14);
> > pci_emul.c:776:2: error: unused typedef '__assert776'
> > [-Werror,-Wunused-local-typedef]
> > CTASSERT(sizeof(struct msixcap) == 12);
> > pci_emul.c:928:2: error: unused typedef '__assert928'
> > [-Werror,-Wunused-local-typedef]
> > CTASSERT(sizeof(struct pciecap) == 60);
> >
> > I fixed them in this simple way:
> >
> > diff --git a/bhyverun.h b/bhyverun.h
> > index 87824ef..7ac3aa9 100644
> > --- a/bhyverun.h
> > +++ b/bhyverun.h
> > @@ -32,7 +32,8 @@
> > #ifndef CTASSERT /* Allow lint to override */
> > #define CTASSERT(x) _CTASSERT(x, __LINE__)
> > #define _CTASSERT(x, y) __CTASSERT(x, y)
> > -#define __CTASSERT(x, y) typedef char __assert ## y[(x) ? 1
> > : -1]
> > +#define __CTASSERT(x, y) typedef char __assert ## y[(x) ? 1
> > : -1] \
> > + __unused
> > #endif
--
John-Mark Gurney Voice: +1 415 225 5579
"All that I will do, has been done, All that I have, has not."
More information about the freebsd-current
mailing list