On 8/26/26 12:23, Gleb Smirnoff wrote:
   John,

On Wed, Aug 26, 2026 at 01:15:27PM -0400, John Baldwin wrote:
J> > J> Note that C++ doesn't allow this at the language level.  When I 
converted ctld to
J> > J> C++ I had to adjust some enums to be simple #define's instead in the 
ctl headers.
J> >
J> > Noted.  I can't make a judgement if it is a smart restriction by C++ or 
not.
J> > In our case using enums as flags is common and handy and 
Werror=assign-enum in
J> > combination with __attribute__((flag_enum)) will make this use fortified
J> > against mistakes.
J>
J> Mostly my point is that over time we may be forced to convert away from 
enums to
J> plain constants if more of the base system starts using C++ anyway.  At 
least for
J> enums exposed to userspace.

But if C++ doesn't allow flag enums in principle, then they just can't go into
userspace headers, no matter how we compile the kernel.  Basically we already
are there, and enabling Werror=assign-enum for kernel won't change anything,
will it?

I don't really have comments on the rest of this, but at least one of our 
downstreams does
use C++ in the kernel and it'd be nice if we didn't have anything too critical 
require too
heavy of patching to work in that environment.

Thanks,

Kyle Evans

Reply via email to