On Thu, Aug 03, 2023 at 09:31:24PM +0000, Qing Zhao wrote: > So, the basic question is: > > Given the following: > > struct fix { > int others; > int array[10]; > } > > extern struct fix * alloc_buf (); > > int main () > { > struct fix *p = alloc_buf (); > __builtin_object_size(p->array,0) == ? > } > > Given p->array, can the compiler determine that p points to an object that > has TYPE struct fix? > > If the answer is YES, then the current__builtin_object_size algorithm can be > improved to determine __builtin_object_size(p->array, 0) with the TYPE of > the struct fix.
I think it is fine to leave __bos(..., 0) as-is. From the Linux kernel's use of __bos, we are almost exclusively only interesting the mode 1, not node 0. :) -- Kees Cook