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