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));
}