diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-09-28 02:45:33 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-09-28 02:45:33 +0000 |
commit | c8680f46970a5a53d07e05edd93657e64764da3c (patch) | |
tree | 101b82ab8c2522f4ce799de0d2fd9c82ffc2e7ee /include/clang/AST/DeclBase.h | |
parent | 4f8de278b73f438f1911128ae9c8ce27c2b53546 (diff) |
Introduce Decl::getParentFunctionOrMethod which if the decl is defined inside
a function/method/block it returns the corresponding DeclContext, otherwise it returns null.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140672 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/AST/DeclBase.h')
-rw-r--r-- | include/clang/AST/DeclBase.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/include/clang/AST/DeclBase.h b/include/clang/AST/DeclBase.h index 306a4031d5..2a2f810044 100644 --- a/include/clang/AST/DeclBase.h +++ b/include/clang/AST/DeclBase.h @@ -567,7 +567,13 @@ public: /// scoped decl is defined outside the current function or method. This is /// roughly global variables and functions, but also handles enums (which /// could be defined inside or outside a function etc). - bool isDefinedOutsideFunctionOrMethod() const; + bool isDefinedOutsideFunctionOrMethod() const { + return getParentFunctionOrMethod() == 0; + } + + /// \brief If this decl is defined inside a function/method/block it returns + /// the corresponding DeclContext, otherwise it returns null. + const DeclContext *getParentFunctionOrMethod() const; /// \brief Retrieves the "canonical" declaration of the given declaration. virtual Decl *getCanonicalDecl() { return this; } |