From 91ff94d6d9befda562a1384f43ecde6e43b9db99 Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Sat, 18 Jul 2009 00:34:35 +0000 Subject: [PATCH] Remove getFirstDeclaration/getLatestDeclaration from FunctionDecl and VarDecl. Their usefulness is questionable since redecl_iterator was introduced. llvm-svn: 76275 --- clang/include/clang/AST/Decl.h | 30 ------------------------------ clang/lib/AST/Decl.cpp | 22 ++++------------------ 2 files changed, 4 insertions(+), 48 deletions(-) diff --git a/clang/include/clang/AST/Decl.h b/clang/include/clang/AST/Decl.h index a35638f3157d..e95f9bb11b10 100644 --- a/clang/include/clang/AST/Decl.h +++ b/clang/include/clang/AST/Decl.h @@ -422,21 +422,6 @@ public: void setPreviousDeclaration(VarDecl *PrevDecl); - /// \brief For multiple redeclarations returns the first one, otherwise - /// returns itself. - VarDecl *getFirstDeclaration(); - const VarDecl *getFirstDeclaration() const { - return const_cast(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 @@ public: return const_cast(this)->getPreviousDeclaration(); } - /// \brief For multiple redeclarations returns the first one, otherwise - /// returns itself. - FunctionDecl *getFirstDeclaration(); - const FunctionDecl *getFirstDeclaration() const { - return const_cast(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/clang/lib/AST/Decl.cpp b/clang/lib/AST/Decl.cpp index 0a6f28d3fb7a..23782d622366 100644 --- a/clang/lib/AST/Decl.cpp +++ b/clang/lib/AST/Decl.cpp @@ -369,7 +369,8 @@ void VarDecl::setPreviousDeclaration(VarDecl *PrevDecl) { 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 @@ void VarDecl::setPreviousDeclaration(VarDecl *PrevDecl) { } } -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 @@ FunctionDecl::setPreviousDeclaration(FunctionDecl *PrevDecl) { 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::setPreviousDeclaration(FunctionDecl *PrevDecl) { } } -FunctionDecl *FunctionDecl::getFirstDeclaration() { - FunctionDecl *First = this; - while (First->getPreviousDeclaration()) - First = First->getPreviousDeclaration(); - - return First; -} - FunctionDecl *FunctionDecl::getCanonicalDecl() { FunctionDecl *FD = this; while (FD->getPreviousDeclaration())