================
Comment at: lib/CodeGen/CodeGenModule.cpp:1823
@@ +1822,3 @@
+      const CXXConstructorDecl *CD = E->getConstructor();
+      IsTrivialDefaultCtor = (CD->isTrivial() && CD->isDefaultConstructor());
+    }
----------------
Richard Smith wrote:
> This should never happen -- NeedsGlobalCtor should be false if the 
> initialization is trivial. If not, we should fix EmitConstantInit to handle 
> this case.
Ok. EmitConstantInit() had an explicit check that the destructor should be 
trivial. I looked at callers of this function, and it doesn't seem to be needed 
at first glance. Deleting it.

================
Comment at: lib/CodeGen/CodeGenModule.cpp:1816
@@ -1819,3 +1815,3 @@
   // If we are compiling with ASan, add metadata indicating dynamically
-  // initialized globals.
+  // initialized globals. Do this before we emit initializer function.
   if (SanOpts.Address && NeedsGlobalCtor) {
----------------
Richard Smith wrote:
> Why does this need to be before we emit the initializer?
InitDecl->getInit() doesn't cast to CXXConstructExpr after we called 
EmitCXXGlobalVarDeclInitFunc. Reverting all changes in this file anyway.


http://llvm-reviews.chandlerc.com/D608
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to