aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2012-03-08 20:29:02 +0000
committerDaniel Dunbar <daniel@zuster.org>2012-03-08 20:29:02 +0000
commite13edcb296522ab96c384c962c9eb1954962084c (patch)
treeca0c2a20559c93439cdbac01c54d533637098a25
parenta50a5cd9db67f061c94557d188b992be34ccad2f (diff)
[AST] Clean up NamedDecl::getUnderlyingDecl() change a bit.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152332 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/clang/AST/Decl.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/include/clang/AST/Decl.h b/include/clang/AST/Decl.h
index 7c042c1816..27a9d75f92 100644
--- a/include/clang/AST/Decl.h
+++ b/include/clang/AST/Decl.h
@@ -106,6 +106,9 @@ class NamedDecl : public Decl {
/// constructor, Objective-C selector, etc.)
DeclarationName Name;
+private:
+ NamedDecl *getUnderlyingDeclImpl();
+
protected:
NamedDecl(Kind DK, DeclContext *DC, SourceLocation L, DeclarationName N)
: Decl(DK, DC, L), Name(N) { }
@@ -324,12 +327,13 @@ public:
/// \brief Looks through UsingDecls and ObjCCompatibleAliasDecls for
/// the underlying named decl.
NamedDecl *getUnderlyingDecl() {
- if (!(this->getKind() == UsingShadow) &&
- !(this->getKind() == ObjCCompatibleAlias))
+ // Fast-path the common case.
+ if (this->getKind() != UsingShadow &&
+ this->getKind() != ObjCCompatibleAlias)
return this;
+
return getUnderlyingDeclImpl();
}
- NamedDecl *getUnderlyingDeclImpl();
const NamedDecl *getUnderlyingDecl() const {
return const_cast<NamedDecl*>(this)->getUnderlyingDecl();
}