rsmith added inline comments.

================
Comment at: lib/CodeGen/CGClass.cpp:1832
@@ +1831,3 @@
+  // Generate vtable assumptions if we are calling dynamic class ctor
+  // and we are not in another ctor.
+  if (CGM.getCodeGenOpts().OptimizationLevel > 0 &&
----------------
Prazek wrote:
> hfinkel wrote:
> > I think this comment should be a little more verbose. How about this:
> > 
> >   // Generate vtable assumptions if we are calling dynamic-class's ctor, 
> > except when doing so as part of a derived class's ctor's base-class 
> > initialization. Doing so in this latter case would be useless, because the 
> > vtable is about to be overwritten by the derived class's vtable.
> > 
> The main point of not calling this function, is because it is useless to have 
> assumption loads inside constructor, when they are generated also outside of 
> ctor. I guess You could have case when You are not overriding base vptr, and 
> You are calling base ctor from dynamic class
It might also be worth including in the comment that it is not correct to call 
`EmitVTableAssumptionLoads` here, because it assumes the object's vptr points 
to the complete object vtable; during a constructor call it will probably have 
a construction vtable instead.


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