Prazek marked 3 inline comments as done.

================
Comment at: lib/CodeGen/CGClass.cpp:1862
@@ +1861,3 @@
+  for (const VPtr &Vptr : getVTablePointers(ClassDecl))
+    if (CGM.getCXXABI().requiresVPtrInitialization(Vptr))
+      EmitVTableAssumptionLoad(Vptr, This);
----------------
rjmccall wrote:
> No, it only checks whether VTableClass has novtable.  VTableClass is the 
> derived class for which we're initializing subobject v-tables, and it's 
> invariant during getVTablePointers; that's why it's passed separately from 
> BaseSubobject.
> 
> And if you think about how novtable works as a language feature, you'll see 
> that it has to be that way.  The purpose of "novtable" is to avoid emitting 
> v-tables just for the short-term purposes of construction and destruction.  
> It's not supposed to apply when initializing derived classes: eventually, the 
> complete object does need all the v-tables to be initialized, or else you'll 
> never be able to call virtual methods on it, meaning that it might as well 
> not have any.
You are right. I changed things like You said - I only named it 
doStructorsInitilizeVPtrs


http://reviews.llvm.org/D11859



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to