svn commit: r348847 - head/sys/sys

Tijl Coosemans tijl at FreeBSD.org
Thu Jun 13 08:43:20 UTC 2019


On Wed, 12 Jun 2019 16:51:03 -0600 Warner Losh <imp at bsdimp.com> wrote:
> On Wed, Jun 12, 2019 at 4:49 PM Gleb Smirnoff <glebius at freebsd.org> wrote:
>> On Mon, Jun 10, 2019 at 11:09:09AM +0200, Tijl Coosemans wrote:  
>>>> Date: Mon Jun 10 05:28:03 2019
>>>> New Revision: 348847
>>>> URL: https://svnweb.freebsd.org/changeset/base/348847
>>>>
>>>> Log:
>>>>   Use C11 anonymous unions.
>>>>
>>>>   PR:              215202
>>>>   Reported by:     glebius
>>>>   MFC after:       2 weeks
>>>>
>>>> Modified:
>>>>   head/sys/sys/ucred.h
>>>>
>>>> Modified: head/sys/sys/ucred.h
>>>>  
>>>> ==============================================================================  
>>>> --- head/sys/sys/ucred.h   Mon Jun 10 05:09:34 2019        (r348846)
>>>> +++ head/sys/sys/ucred.h   Mon Jun 10 05:28:03 2019        (r348847)
>>>> @@ -89,12 +89,11 @@ struct xucred {
>>>>    gid_t   cr_groups[XU_NGROUPS];  /* groups */
>>>>    union {
>>>>            void    *_cr_unused1;   /* compatibility with old ucred */
>>>> -          pid_t   _pid;
>>>> -  } _cr;
>>>> +          pid_t   cr_pid;
>>>> +  };
>>>>  };
>>>>  #define   XUCRED_VERSION  0
>>>>
>>>> -#define   cr_pid _cr._pid
>>>>  /* This can be used for both ucred and xucred structures. */
>>>>  #define   cr_gid cr_groups[0]  
>>>
>>> Isn't this a userland header that should work with non-C11 compilers?  
>>
>> It could make sense to keep such low bar for standard headers, but ucred.h
>> is BSD-specific header and struct xucred is FreeBSD specific.
> 
> This is solvable with proper visibility, I'd think..

I think "union {" should be replaced with "__extension__ union {".  That
seems to kill this warning:

/usr/include/sys/ucred.h:90:2: warning: anonymous unions are a C11 extension
      [-Wc11-extensions]
        union {
        ^
1 warning generated.


More information about the svn-src-head mailing list