Go back to asking CodeGenTypes whether a type is zero-initializable.
Make CGT defer to the ABI on all member pointer types.
This requires giving CGT a handle to the ABI.
It's way easier to make that work if we avoid lazily creating the ABI.
Make it so.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111786 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CGExprCXX.cpp b/lib/CodeGen/CGExprCXX.cpp
index e8bc9b4..feaf467 100644
--- a/lib/CodeGen/CGExprCXX.cpp
+++ b/lib/CodeGen/CGExprCXX.cpp
@@ -547,8 +547,7 @@
         if (!E->hasInitializer() || Ctor->getParent()->isEmpty())
           return;
       
-        if (!CGF.CGM.getCXXABI().RequiresNonZeroInitializer(
-                                                       E->getAllocatedType())) {
+        if (CGF.CGM.getTypes().isZeroInitializable(E->getAllocatedType())) {
           // Optimization: since zero initialization will just set the memory
           // to all zeroes, generate a single memset to do it in one shot.
           EmitZeroMemSet(CGF, E->getAllocatedType(), NewPtr,