[cfe-commits] r90327 - in /cfe/trunk: include/clang/AST/DeclCXX.h lib/AST/DeclCXX.cpp lib/AST/RecordLayoutBuilder.cpp lib/Sema/Sema.h lib/Sema/SemaDecl.cpp lib/Sema/SemaDeclCXX.cpp lib/Sema/SemaExprCXX.cpp test/SemaCXX/implicit-virtual-member-functions.cpp

Fariborz Jahanian fjahanian at apple.com
Wed Dec 2 10:47:54 PST 2009


On Dec 2, 2009, at 10:46 AM, Anders Carlsson wrote:

>
> On Dec 2, 2009, at 9:39 AM, Fariborz Jahanian wrote:
>
>>
>> On Dec 2, 2009, at 9:15 AM, Anders Carlsson wrote:
>>
>>> Author: andersca
>>> Date: Wed Dec  2 11:15:43 2009
>>> New Revision: 90327
>>>
>>> URL: http://llvm.org/viewvc/llvm-project?rev=90327&view=rev
>>> Log:
>>> In Sema, whenever we think that a function is going to cause a  
>>> vtable to be generated, we mark any virtual implicit member  
>>> functions as referenced.
>>>
>>> Added:
>>>
>>> +void Sema::MaybeMarkVirtualImplicitMembersReferenced 
>>> (SourceLocation Loc,
>>> +                                                      
>>> CXXMethodDecl *MD) {
>>> +  // Ignore dependent types.
>>> +  if (MD->isDependentContext())
>>> +    return;
>>> +
>>> +  CXXRecordDecl *RD = MD->getParent();
>>> +  const ASTRecordLayout &Layout = Context.getASTRecordLayout(RD);
>>
>> This, I believe, is the first use of getASTRecordLayout in Sema. Is  
>> there any other way to get the
>> key function without resorting to this overhead?
>
> We do use getASTRecordLayout for sizeof, alignof and  
> __builtin_offsetof already.
Yes, but this is when user asks for it; not for internal code gen  
purposes.

- fariborz

>
> We could put the key functions in a separate map, but I don't think  
> it's worth it.
>
> Anders
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20091202/48aa188a/attachment.html>


More information about the cfe-commits mailing list