svn commit: r358392 - head/share/man/man9

Konstantin Belousov kostikbel at gmail.com
Fri Feb 28 11:06:30 UTC 2020


On Thu, Feb 27, 2020 at 10:54:21PM -0700, Warner Losh wrote:
> On Thu, Feb 27, 2020, 9:55 AM John Baldwin <jhb at freebsd.org> wrote:
> 
> > On 2/27/20 7:30 AM, Warner Losh wrote:
> > > Author: imp
> > > Date: Thu Feb 27 15:30:13 2020
> > > New Revision: 358392
> > > URL: https://svnweb.freebsd.org/changeset/base/358392
> > >
> > > Log:
> > >   _Static_assert is to be preferred to CTASSERT.
> > >
> > >   Document the existing prefernce that _Static_assert be used in
> > preference to the
> > >   old CTASSERT we used to use for compile time assertions.
> >
> > Actually, I think what we want to use is static_assert().  The intention in
> > userland C is that _Static_assert() is an internal keyword and <assert.h>
> > adds static_assert() as an alias, similar to <stdalign.h> defining alignas,
> > etc.  I think what we should do for the kernel is have <sys/systm.h> define
> > map static_assert to _Static_assert and replace existing _Static_assert
> > usage with the proper spelling.
> >
> 
> I originally did just that when people pointed out that there were hundreds
> of instances in the tree of _Static_assert and less than 10 of
> static_assert.
> 
> We could do a sweep and change, but I wanted to document it. Even more so
> because I was originally mistaken.

It could be declared to be a fault of the C standard, but I believe that
_Static_assert() use is actually better over static_assert().  The standard
defines _Static_assert() as the language feature, while static_assert()
comes from the assert.h header that is not required by a freestanding
environment.

Note that this situation is not similar to _Bool/bool, because stdbool.h
is required for conforming freestanding env.


More information about the svn-src-head mailing list