[cfe-dev] sizeof (RopeRefCountString)

Ted Kremenek kremenek at apple.com
Mon Sep 15 21:22:04 PDT 2008


On Sep 15, 2008, at 6:35 PM, Zhongxing Xu wrote:

>
>
> 2008/9/16 Ted Kremenek <kremenek at apple.com>
>
> On Sep 7, 2008, at 1:32 AM, Zhongxing Xu wrote:
>
> Hi,
>
> In RewriteRope.cpp, RewriteRope::MakeRopeString(const char *Start,  
> const char *End),
> we calculate the AllocSize by:
>
> unsigned AllocSize = sizeof(RopeRefCountString) - 1 + AllocChunkSize;
>
> I guess here the intention is: sizeof(RopeRefCountString) is 5. But  
> gcc says sizeof(RopeRefCountString) is 8. So the actual AllocSize is  
> 4087. Should we minus 4 instead of 1 to make the AllocSize 4084?
>
> The "-1" I believe is to accommodate for the field Data[1], which  
> occupies a single byte:
>
> In practice it occupies 4 bytes because of tail padding.

Right.  Isn't there a pointer arithmetic trick we can do here to get  
the right number?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20080915/b17b9c25/attachment.html>


More information about the cfe-dev mailing list