diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2012-03-08 21:00:45 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2012-03-08 21:00:45 +0000 |
commit | 56757e9eaff77fb106662fa88793af866a6267d0 (patch) | |
tree | 50db2cf95f2b725b35697c4b3807fad1e1b55c7d /lib/AST/Decl.cpp | |
parent | 2a6dc143b6da657ca0839acec1ac36e12cd1b295 (diff) |
Untangle getUnderlyingDeclImpl, no functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152339 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST/Decl.cpp')
-rw-r--r-- | lib/AST/Decl.cpp | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/lib/AST/Decl.cpp b/lib/AST/Decl.cpp index f2ac5c14a1..2f42607eab 100644 --- a/lib/AST/Decl.cpp +++ b/lib/AST/Decl.cpp @@ -985,15 +985,13 @@ bool NamedDecl::hasLinkage() const { NamedDecl *NamedDecl::getUnderlyingDeclImpl() { NamedDecl *ND = this; - while (true) { - if (UsingShadowDecl *UD = dyn_cast<UsingShadowDecl>(ND)) - ND = UD->getTargetDecl(); - else if (ObjCCompatibleAliasDecl *AD - = dyn_cast<ObjCCompatibleAliasDecl>(ND)) - return AD->getClassInterface(); - else - return ND; - } + while (UsingShadowDecl *UD = dyn_cast<UsingShadowDecl>(ND)) + ND = UD->getTargetDecl(); + + if (ObjCCompatibleAliasDecl *AD = dyn_cast<ObjCCompatibleAliasDecl>(ND)) + return AD->getClassInterface(); + + return ND; } bool NamedDecl::isCXXInstanceMember() const { |