Remove getFirstDeclaration/getLatestDeclaration from FunctionDecl and VarDecl.

Their usefulness is questionable since redecl_iterator was introduced.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76275 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/clang/AST/Decl.h b/include/clang/AST/Decl.h
index a35638f..e95f9bb 100644
--- a/include/clang/AST/Decl.h
+++ b/include/clang/AST/Decl.h
@@ -422,21 +422,6 @@
 
   void setPreviousDeclaration(VarDecl *PrevDecl);
 
-  /// \brief For multiple redeclarations returns the first one, otherwise
-  /// returns itself.
-  VarDecl *getFirstDeclaration();
-  const VarDecl *getFirstDeclaration() const {
-    return const_cast<VarDecl *>(this)->getFirstDeclaration();
-  }
-
-  /// \brief For multiple redeclarations returns the latest, otherwise
-  /// returns itself.
-  const VarDecl *getLatestDeclaration() const {
-    const VarDecl *First = getFirstDeclaration();
-    assert(First->PreviousDeclaration.getInt() == 1 && "Expected first");
-    return First->PreviousDeclaration.getPointer();
-  }
-
   virtual VarDecl *getCanonicalDecl();
 
   /// \brief Iterates through all the redeclarations of the same var decl.
@@ -891,21 +876,6 @@
     return const_cast<FunctionDecl *>(this)->getPreviousDeclaration();
   }
 
-  /// \brief For multiple redeclarations returns the first one, otherwise
-  /// returns itself.
-  FunctionDecl *getFirstDeclaration();
-  const FunctionDecl *getFirstDeclaration() const {
-    return const_cast<FunctionDecl *>(this)->getFirstDeclaration();
-  }
-
-  /// \brief For multiple redeclarations returns the latest, otherwise
-  /// returns itself.
-  const FunctionDecl *getLatestDeclaration() const {
-    const FunctionDecl *First = getFirstDeclaration();
-    assert(First->PreviousDeclaration.getInt() == 1 && "Expected first");
-    return First->PreviousDeclaration.getPointer();
-  }
-
   void setPreviousDeclaration(FunctionDecl * PrevDecl);
 
   virtual FunctionDecl *getCanonicalDecl();
diff --git a/lib/AST/Decl.cpp b/lib/AST/Decl.cpp
index 0a6f28d..23782d6 100644
--- a/lib/AST/Decl.cpp
+++ b/lib/AST/Decl.cpp
@@ -369,7 +369,8 @@
     PreviousDeclaration.setInt(0);
     
     // First one will point to this one as latest.
-    VarDecl *First = PrevDecl->getFirstDeclaration();
+    // getCanonicalDecl returns the first one.
+    VarDecl *First = PrevDecl->getCanonicalDecl();
     assert(First->PreviousDeclaration.getInt() == 1 && "Expected first");
     First->PreviousDeclaration.setPointer(this);
   } else {
@@ -379,14 +380,6 @@
   }
 }
 
-VarDecl *VarDecl::getFirstDeclaration() {
-  VarDecl *First = this;
-  while (First->getPreviousDeclaration())
-    First = First->getPreviousDeclaration();
-
-  return First;
-}
-
 VarDecl *VarDecl::getCanonicalDecl() {
   VarDecl *Var = this;
   while (Var->getPreviousDeclaration())
@@ -599,7 +592,8 @@
     PreviousDeclaration.setInt(0);
     
     // First one will point to this one as latest.
-    FunctionDecl *First = PrevDecl->getFirstDeclaration();
+    // getCanonicalDecl returns the first one.
+    FunctionDecl *First = PrevDecl->getCanonicalDecl();
     assert(First->PreviousDeclaration.getInt() == 1 && "Expected first");
     First->PreviousDeclaration.setPointer(this);
   } else {
@@ -616,14 +610,6 @@
   }
 }
 
-FunctionDecl *FunctionDecl::getFirstDeclaration() {
-  FunctionDecl *First = this;
-  while (First->getPreviousDeclaration())
-    First = First->getPreviousDeclaration();
-
-  return First;
-}
-
 FunctionDecl *FunctionDecl::getCanonicalDecl() {
   FunctionDecl *FD = this;
   while (FD->getPreviousDeclaration())