summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/MemRegion.cpp
diff options
context:
space:
mode:
authorZhongxing Xu <xuzhongxing@gmail.com>2008-10-27 13:17:02 +0000
committerZhongxing Xu <xuzhongxing@gmail.com>2008-10-27 13:17:02 +0000
commit7b700575dde6c4973a2fbb98b02ffebcd8a42e45 (patch)
tree7a6ef5e4399b1fa74a4121a509e5668350eb87be /clang/lib/Analysis/MemRegion.cpp
parent89ebcb9d8d4372c4cd06016cada925bf39b35efd (diff)
downloadbcm5719-llvm-7b700575dde6c4973a2fbb98b02ffebcd8a42e45.tar.gz
bcm5719-llvm-7b700575dde6c4973a2fbb98b02ffebcd8a42e45.zip
An ElementRegion is really a typed region. Its super region's type has to be ArrayType.
llvm-svn: 58245
Diffstat (limited to 'clang/lib/Analysis/MemRegion.cpp')
-rw-r--r--clang/lib/Analysis/MemRegion.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/lib/Analysis/MemRegion.cpp b/clang/lib/Analysis/MemRegion.cpp
index f14e0cba447..1db330cf096 100644
--- a/clang/lib/Analysis/MemRegion.cpp
+++ b/clang/lib/Analysis/MemRegion.cpp
@@ -83,6 +83,13 @@ void ElementRegion::ProfileRegion(llvm::FoldingSetNodeID& ID, SVal Idx,
void ElementRegion::Profile(llvm::FoldingSetNodeID& ID) const {
ElementRegion::ProfileRegion(ID, Index, superRegion);
}
+
+QualType ElementRegion::getType(ASTContext& C) const {
+ QualType T = cast<TypedRegion>(superRegion)->getType(C);
+ ArrayType* AT = cast<ArrayType>(T.getTypePtr());
+ return AT->getElementType();
+}
+
//===----------------------------------------------------------------------===//
// Region pretty-printing.
//===----------------------------------------------------------------------===//
OpenPOWER on IntegriCloud