On Tue, 20 Jan 2026 10:12:34 -0800 Bill Wendling <[email protected]> wrote:
> On Sat, Jan 17, 2026 at 11:07 AM Kees Cook <[email protected]> wrote: > > > > On Fri, Jan 16, 2026 at 09:53:18AM +0000, David Laight wrote: > > > On Fri, 16 Jan 2026 00:57:57 +0000 > > > Bill Wendling <[email protected]> wrote: > > > > > > > Introduce __counted_by_ptr(), which works like __counted_by(), but for > > > > pointer struct members. > > > > > > > > struct foo { > > > > int a, b, c; > > > > char *buffer __counted_by_ptr(bytes); > > > > short nr_bars; > > > > struct bar *bars __counted_by_ptr(nr_bars); > > > > size_t bytes; > > > > }; > > > > > > > > Because "counted_by" can only be applied to pointer members in very > > > > recent compiler versions, its application ends up needing to be distinct > > > > from flexibe array "counted_by" annotations, hence a separate macro. > > > ... > > > > diff --git a/Makefile b/Makefile > > > > index 9d38125263fb..6b029f694bc2 100644 > > > > --- a/Makefile > > > > +++ b/Makefile > > > > @@ -952,6 +952,12 @@ KBUILD_CFLAGS += $(CC_AUTO_VAR_INIT_ZERO_ENABLER) > > > > endif > > > > endif > > > > > > > > +ifdef CONFIG_CC_IS_CLANG > > > > +ifdef CONFIG_CC_HAS_COUNTED_BY_PTR > > > > +KBUILD_CFLAGS += -fexperimental-late-parse-attributes > > > > +endif > > > > +endif > > > > > > Will that still be needed for clang 22? > > > > AFAIK, yes. AIUI, this flag will remain while -fbounds-safety continues > > to be upstreamed into LLVM. > > > > > Looks a bit like a temporary flag to avoid regressions. > > > Probably ought to at least have a comment that it won't be needed > > > by some future clang version so that it gets tidied up. > > > > Once it's no longer needed, yes, I will want it removed from the > > Makefile. > > > Would it be good to 'fixup' a comment in the Makefile for that? Wrap with: # Update version when no longer required ifneq ($(call clang-min-version, 999999),y) Although you might one day need the -f option for something entirely different. So perhaps the logic that enables CC_HAS_COUNTER_BY_PTR need to do the extra version check and set something so that -fexperimental-late-parse-attributes is added here (so it only added once if needed by multiple things). David
