[PATCH] [ms-cxxabi] Correctly compute the size of member pointers

Reid Kleckner rnk at google.com
Tue Mar 26 15:28:33 PDT 2013


On Tue, Mar 26, 2013 at 3:02 PM, John McCall <rjmccall at apple.com> wrote:

> On Mar 26, 2013, at 2:46 PM, Reid Kleckner <rnk at google.com> wrote:
>
> +    RequireCompleteType(Loc, Class, 0);
>>
>> This would be an excellent opportunity to implicitly add your
>> UnspecifiedInheritanceAttr to all the existing declarations. :)
>>
>
> Is it OK if I just implicitly add the right attribute if there isn't one
> present already?  I suppose the unspecified model is the only one that I
> need to add for correctness.
>
>
> It's actually important to lock this in at some point so we don't have
> different sizes at different TU points.  In MSVC, if you declare a member
> pointer variable before the class definition, it uses the unspecified
> model.  If you wait until after the definition, it will pick a more
> restrictive model.
>
>
> Yeah, I saw your comment to this effect earlier.  I think adding
> UnspecifiedInheritanceAttr when you make a member pointer for a
> forward-declared class that lacks an explicit inheritance attribute makes
> sense.  I wouldn't go down the road of adding, say, SingleInheritanceAttr
> to every class with single inheritance.
>
> For sanity's sake, please add the attribute to all the existing
> declarations, though.
>

I'm not 100% clear on what you mean.  I added a SingleInheritanceAttr to
every class that uses member pointers, but you're right this is kind of
spammy and uses extra memory when we can easily check the class hierarchy
later.

Should I remove those attrs, and only ever add the Unspecified attr?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130326/0cde0283/attachment.html>


More information about the cfe-commits mailing list