Use ASTContext::getCanonicalType() to get TypedRegion's type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58247 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/clang/Analysis/PathSensitive/MemRegion.h b/include/clang/Analysis/PathSensitive/MemRegion.h
index 5142427..4465796 100644
--- a/include/clang/Analysis/PathSensitive/MemRegion.h
+++ b/include/clang/Analysis/PathSensitive/MemRegion.h
@@ -154,8 +154,8 @@
                             const MemRegion* superRegion);
 
 public:
-  QualType getType(ASTContext&) const {
-    return Str->getType();
+  QualType getType(ASTContext& C) const {
+    return C.getCanonicalType(Str->getType());
   }
 
   void Profile(llvm::FoldingSetNodeID& ID) const {
@@ -182,7 +182,7 @@
                             const MemRegion* superRegion);
 
 public:
-  QualType getType(ASTContext&) const { return T; }
+  QualType getType(ASTContext& C) const { return C.getCanonicalType(T); }
   
 
   void Profile(llvm::FoldingSetNodeID& ID) const;
@@ -247,7 +247,9 @@
   
 public:  
   const VarDecl* getDecl() const { return cast<VarDecl>(D); }
-  QualType getType(ASTContext&) const { return getDecl()->getType(); }
+  QualType getType(ASTContext& C) const { 
+    return C.getCanonicalType(getDecl()->getType());
+  }
   
   void print(llvm::raw_ostream& os) const;
   
@@ -267,7 +269,9 @@
   void print(llvm::raw_ostream& os) const;
   
   const FieldDecl* getDecl() const { return cast<FieldDecl>(D); }
-  QualType getType(ASTContext&) const { return getDecl()->getType(); }
+  QualType getType(ASTContext& C) const {
+    return C.getCanonicalType(getDecl()->getType());
+  }
 
   static void ProfileRegion(llvm::FoldingSetNodeID& ID, FieldDecl* FD,
                       const MemRegion* superRegion) {
diff --git a/lib/Analysis/RegionStore.cpp b/lib/Analysis/RegionStore.cpp
index ae0383d..6a65919 100644
--- a/lib/Analysis/RegionStore.cpp
+++ b/lib/Analysis/RegionStore.cpp
@@ -379,7 +379,7 @@
 
 Store RegionStoreManager::InitializeStructToUndefined(Store store, QualType T,
                                                       MemRegion* BaseR) {
-  QualType CT = T->getCanonicalTypeInternal();
+  QualType CT = StateMgr.getContext().getCanonicalType(T);
   const RecordType* RT = cast<RecordType>(CT.getTypePtr());
   RecordDecl* RD = RT->getDecl();
   assert(RD->isDefinition());