aboutsummaryrefslogtreecommitdiff
path: root/lib/Analysis/MemRegion.cpp
diff options
context:
space:
mode:
authorZhongxing Xu <xuzhongxing@gmail.com>2009-06-16 09:55:50 +0000
committerZhongxing Xu <xuzhongxing@gmail.com>2009-06-16 09:55:50 +0000
commit143b2fc6fd3945c250b333383749010c2c8e3a4c (patch)
treed372e866796eaa2261b7bd0af44fc416f1d5f68f /lib/Analysis/MemRegion.cpp
parent78d5b5e738c81b596f20205437120d5f3d7c5d9e (diff)
Use canonical type for building ElementRegion. Otherwise ElementRegions cannot
be unique. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73482 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/MemRegion.cpp')
-rw-r--r--lib/Analysis/MemRegion.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/Analysis/MemRegion.cpp b/lib/Analysis/MemRegion.cpp
index 9f066f4469..9e11a26353 100644
--- a/lib/Analysis/MemRegion.cpp
+++ b/lib/Analysis/MemRegion.cpp
@@ -296,10 +296,12 @@ MemRegionManager::getCompoundLiteralRegion(const CompoundLiteralExpr* CL) {
ElementRegion*
MemRegionManager::getElementRegion(QualType elementType, SVal Idx,
- const MemRegion* superRegion){
+ const MemRegion* superRegion, ASTContext& Ctx){
+
+ QualType T = Ctx.getCanonicalType(elementType);
llvm::FoldingSetNodeID ID;
- ElementRegion::ProfileRegion(ID, elementType, Idx, superRegion);
+ ElementRegion::ProfileRegion(ID, T, Idx, superRegion);
void* InsertPos;
MemRegion* data = Regions.FindNodeOrInsertPos(ID, InsertPos);
@@ -307,7 +309,7 @@ MemRegionManager::getElementRegion(QualType elementType, SVal Idx,
if (!R) {
R = (ElementRegion*) A.Allocate<ElementRegion>();
- new (R) ElementRegion(elementType, Idx, superRegion);
+ new (R) ElementRegion(T, Idx, superRegion);
Regions.InsertNode(R, InsertPos);
}