Block pointer types are not aggregate types.

llvm-svn: 61973
diff --git a/clang/lib/CodeGen/CodeGenFunction.cpp b/clang/lib/CodeGen/CodeGenFunction.cpp
index 2ef4bcf..c1a3438 100644
--- a/clang/lib/CodeGen/CodeGenFunction.cpp
+++ b/clang/lib/CodeGen/CodeGenFunction.cpp
@@ -63,8 +63,11 @@
 }
 
 bool CodeGenFunction::hasAggregateLLVMType(QualType T) {
+  // FIXME: Use positive checks instead of negative ones to be more
+  // robust in the face of extension.
   return !isObjCPointerType(T) &&!T->isRealType() && !T->isPointerLikeType() &&
-    !T->isVoidType() && !T->isVectorType() && !T->isFunctionType();
+    !T->isVoidType() && !T->isVectorType() && !T->isFunctionType() && 
+    !T->isBlockPointerType();
 }
 
 void CodeGenFunction::FinishFunction(SourceLocation EndLoc) {