Return CodeTextRegions for BlockPointerTypes in addition to FunctionPointerTypes.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76287 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/ValueManager.cpp b/lib/Analysis/ValueManager.cpp
index 62d8b00..658dfa1 100644
--- a/lib/Analysis/ValueManager.cpp
+++ b/lib/Analysis/ValueManager.cpp
@@ -73,9 +73,9 @@
     if (T.isNull())
       T = TR->getValueType(SymMgr.getContext());
 
-    // If T is of function pointer type, create a CodeTextRegion wrapping a
-    // symbol.
-    if (T->isFunctionPointerType()) {
+    // If T is of function pointer type or a block pointer type, create a
+    // CodeTextRegion wrapping that symbol.
+    if (T->isFunctionPointerType() || T->isBlockPointerType()) {
       return loc::MemRegionVal(MemMgr.getCodeTextRegion(sym, T));
     }
     
@@ -94,9 +94,9 @@
   QualType T = E->getType();
   SymbolRef sym = SymMgr.getConjuredSymbol(E, Count);
 
-  // If T is of function pointer type, create a CodeTextRegion wrapping a
-  // symbol.
-  if (T->isFunctionPointerType()) {
+  // If T is of function pointer type or a block pointer type, create a
+  // CodeTextRegion wrapping a symbol.
+  if (T->isFunctionPointerType() || T->isBlockPointerType()) {
     return loc::MemRegionVal(MemMgr.getCodeTextRegion(sym, T));
   }
 
@@ -114,9 +114,9 @@
 
   SymbolRef sym = SymMgr.getConjuredSymbol(E, T, Count);
 
-  // If T is of function pointer type, create a CodeTextRegion wrapping a
-  // symbol.
-  if (T->isFunctionPointerType()) {
+  // If T is of function pointer type or a block pointer type, create a
+  // CodeTextRegion wrapping a symbol.
+  if (T->isFunctionPointerType() || T->isBlockPointerType()) {
     return loc::MemRegionVal(MemMgr.getCodeTextRegion(sym, T));
   }