Avoid getNameAsCString when the decl doesn't have a name.
Build of the parm list with the iterator, not end().


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64851 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CGBlocks.cpp b/lib/CodeGen/CGBlocks.cpp
index 783606c..4a94096 100644
--- a/lib/CodeGen/CGBlocks.cpp
+++ b/lib/CodeGen/CGBlocks.cpp
@@ -149,7 +149,8 @@
     // __FuncPtr
     const char *Name = "";
     if (const NamedDecl *ND = dyn_cast<NamedDecl>(CurFuncDecl))
-      Name = ND->getNameAsCString();
+      if (ND->getIdentifier())
+        Name = ND->getNameAsCString();
     BlockInfo Info(0, Name);
     llvm::Function *Fn = CodeGenFunction(*this).GenerateBlockFunction(BE, Info);
     Elts.push_back(Fn);
@@ -371,7 +372,7 @@
 
   for (BlockDecl::param_iterator i = BD->param_begin(),
        e = BD->param_end(); i != e; ++i)
-    Args.push_back(std::make_pair(*e, (*e)->getType()));
+    Args.push_back(std::make_pair(*i, (*i)->getType()));
 
   const CGFunctionInfo &FI =
     CGM.getTypes().getFunctionInfo(FTy->getResultType(), Args);