[PATCH] D17746: Fix PR26741 -- __builtin_object_size is not consistently conservative with C++ inheritance

Joerg Sonnenberger via cfe-commits cfe-commits at lists.llvm.org
Sun Mar 20 06:25:20 PDT 2016


On Fri, Mar 18, 2016 at 05:11:19PM +0000, Richard Smith via cfe-commits wrote:
> rsmith added a comment.
> 
> Can you explain a bit more about the problem? It seems to me that if I have:
> 
>   struct Base {
>     char k[1];
>   };
>   struct Derived : Base {};
> 
> ... then the 'k' subobject of a `Derived` object is known to be exactly 1 byte long -- it doesn't seem obviously appropriate for our flexible-sized trailing array support to cover this case.

I don't think we special case C++ for the "[1] means flexible trailing
array" check?

Joerg


More information about the cfe-commits mailing list