Re: [PATCH 01/11] Compiler Attributes: Add __require_explicit_initialization macro
From: Nick Desaulniers
Date: Wed Oct 14 2026 - 12:47:44 EST
On Wed, Oct 14, 2026 at 9:37 AM Kees Cook <kees@xxxxxxxxxx> wrote:
>
> On Wed, Oct 14, 2026 at 01:28:55PM +0200, Miguel Ojeda wrote:
> > On Wed, Oct 14, 2026 at 12:40 AM Ian Rogers <irogers@xxxxxxxxxx> wrote:
> > >
> > > +/*
> > > + * Optional: not supported by gcc
> > > + *
> > > + * clang: https://clang.llvm.org/docs/AttributeReference.html#require-explicit-initialization
> > > + */
> > > +#if __has_attribute(__require_explicit_initialization__)
> > > +# define __require_explicit_initialization __attribute__((__require_explicit_initialization__))
> > > +#else
> > > +# define __require_explicit_initialization
> > > +#endif
> >
> > The LPC slides mention Clang 14+, but from a quick test in Compiler
> > Explorer and a `git log --grep` on the LLVM repository to confirm, it
> > seems the attribute was introduced in Clang 20+, no?
> >
> > If that is correct, then it is not available in all LLVM versions we
> > support (LLVM 17+), so we should add:
> >
> > * Optional: only supported since clang >= 20.0
> >
> > With that:
> >
> > Acked-by: Miguel Ojeda <ojeda@xxxxxxxxxx>
>
> Yup, I can confirm, I only see it with 20+ too.
Fix up the comment and have a coin, witcher.
Reviewed-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>
>
> --
> Kees Cook
--
Thanks,
~Nick Desaulniers