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