From 2c8a159b7d4ded1f124c9002f03f310cdb011ebd Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Sat, 18 Jul 2009 06:27:01 +0000 Subject: [PATCH] Return CodeTextRegions for BlockPointerTypes in addition to FunctionPointerTypes. llvm-svn: 76287 --- clang/lib/Analysis/ValueManager.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/clang/lib/Analysis/ValueManager.cpp b/clang/lib/Analysis/ValueManager.cpp index 62d8b0093b26..658dfa1186cf 100644 --- a/clang/lib/Analysis/ValueManager.cpp +++ b/clang/lib/Analysis/ValueManager.cpp @@ -73,9 +73,9 @@ SVal ValueManager::getRegionValueSymbolVal(const MemRegion* R, QualType T) { 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 @@ SVal ValueManager::getConjuredSymbolVal(const Expr* E, unsigned Count) { 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 @@ SVal ValueManager::getConjuredSymbolVal(const Expr* E, QualType T, 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)); }