Move the functionality of ASTContext::getCanonicalDecl(), into a virtual method Decl::getCanonicalDecl().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76273 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Index/DeclReferenceMap.cpp b/lib/Index/DeclReferenceMap.cpp
index 3ec8794..2e5e7c3 100644
--- a/lib/Index/DeclReferenceMap.cpp
+++ b/lib/Index/DeclReferenceMap.cpp
@@ -66,12 +66,12 @@
 }
 
 void StmtMapper::VisitDeclRefExpr(DeclRefExpr *Node) {
-  NamedDecl *PrimD = cast<NamedDecl>(Node->getDecl()->getPrimaryDecl());
+  NamedDecl *PrimD = cast<NamedDecl>(Node->getDecl()->getCanonicalDecl());
   Map.insert(std::make_pair(PrimD, ASTLocation(Parent, Node)));
 }
 
 void StmtMapper::VisitMemberExpr(MemberExpr *Node) {
-  NamedDecl *PrimD = cast<NamedDecl>(Node->getMemberDecl()->getPrimaryDecl());
+  NamedDecl *PrimD = cast<NamedDecl>(Node->getMemberDecl()->getCanonicalDecl());
   Map.insert(std::make_pair(PrimD, ASTLocation(Parent, Node)));
 }
 
@@ -122,17 +122,17 @@
 
 DeclReferenceMap::astlocation_iterator
 DeclReferenceMap::refs_begin(NamedDecl *D) const {
-  NamedDecl *Prim = cast<NamedDecl>(D->getPrimaryDecl());
+  NamedDecl *Prim = cast<NamedDecl>(D->getCanonicalDecl());
   return astlocation_iterator(Map.lower_bound(Prim));  
 }
 
 DeclReferenceMap::astlocation_iterator
 DeclReferenceMap::refs_end(NamedDecl *D) const {
-  NamedDecl *Prim = cast<NamedDecl>(D->getPrimaryDecl());
+  NamedDecl *Prim = cast<NamedDecl>(D->getCanonicalDecl());
   return astlocation_iterator(Map.upper_bound(Prim));  
 }
 
 bool DeclReferenceMap::refs_empty(NamedDecl *D) const {
-  NamedDecl *Prim = cast<NamedDecl>(D->getPrimaryDecl());
+  NamedDecl *Prim = cast<NamedDecl>(D->getCanonicalDecl());
   return refs_begin(Prim) == refs_end(Prim);  
 }