Re: [PATCH for-next 13/25] compiler_types.h: Remove __compiletime_object_size()

From: Nick Desaulniers
Date: Wed Aug 25 2021 - 15:44:10 EST


On Sun, Aug 22, 2021 at 11:43 PM Rasmus Villemoes
<linux@xxxxxxxxxxxxxxxxxx> wrote:
>
> On 22/08/2021 09.51, Kees Cook wrote:
>
> > - int sz = __compiletime_object_size(addr);
> > + int sz = __builtin_object_size(addr, 0);
>
> Not directly related to this patch, but seeing this I wonder if there
> would be some value in introducing names for those magic 0/1/2/3 that
> are used with __b_o_s. Every time I stumble on code using that I have to
> go to the gcc docs, and even then it takes me a while to grok what
>
> TYPE is an integer constant from 0 to 3. If the least significant
> bit is clear, objects are whole variables, if it is set, a closest
> surrounding subobject is considered the object a pointer points to.
> The second bit determines if maximum or minimum of remaining bytes
> is computed.
>
> means. The names don't need to be too verbose, just having a few
> #defines in-tree with the above quoted above them makes it a lot easier
> to figure out what they mean.

We share a similar experience.
--
Thanks,
~Nick Desaulniers