Make the CXXDefaultArgExpr constructor protected and add a static Create function.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79013 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/SemaDeclCXX.cpp b/lib/Sema/SemaDeclCXX.cpp
index c452c05..a8afa4f 100644
--- a/lib/Sema/SemaDeclCXX.cpp
+++ b/lib/Sema/SemaDeclCXX.cpp
@@ -2394,7 +2394,7 @@
       for (unsigned I = 0, N = E->getNumTemporaries(); I != N; ++I)
         ExprTemporaries.push_back(E->getTemporary(I));
     }
-    Expr *Arg = new (C) CXXDefaultArgExpr(FDecl->getParamDecl(j));
+    Expr *Arg = CXXDefaultArgExpr::Create(C, FDecl->getParamDecl(j));
     Temp->setArg(j, Arg);
   }
   return Temp;