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

From: Rasmus Villemoes
Date: Mon Aug 23 2021 - 02:43:28 EST


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.

Rasmus