diff options
author | Noel Grandin <noel@peralex.com> | 2016-06-28 15:28:18 +0200 |
---|---|---|
committer | Noel Grandin <noel@peralex.com> | 2016-06-28 15:29:07 +0200 |
commit | 1aafc64b4d3ca2a01057209f047b136297c7842b (patch) | |
tree | b6ca7d0e4500108b6026fdc38d9f4289fb3c2d32 /compilerplugins/clang/compat.hxx | |
parent | f948dce856d51704e1962553198015dbebb6e527 (diff) |
loplugin compat with clang 3.4
Change-Id: I264fe688519b8b2173d5cccd8a453847a7fb89d9
Diffstat (limited to 'compilerplugins/clang/compat.hxx')
-rw-r--r-- | compilerplugins/clang/compat.hxx | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/compilerplugins/clang/compat.hxx b/compilerplugins/clang/compat.hxx index 7a87944a3157..e1b4d8e4eba4 100644 --- a/compilerplugins/clang/compat.hxx +++ b/compilerplugins/clang/compat.hxx @@ -128,20 +128,35 @@ inline clang::QualType getReturnType(clang::FunctionDecl const & decl) { #endif } + #if CLANG_VERSION >= 30900 inline clang::ArrayRef<clang::ParmVarDecl *> parameters( clang::FunctionDecl const & decl) { return decl.parameters(); } -#else +#elif CLANG_VERSION >= 30500 inline clang::FunctionDecl::param_const_range parameters( clang::FunctionDecl const & decl) { return decl.params(); } +#else +struct FunctionDeclParamsWrapper +{ + clang::FunctionDecl const & decl; + FunctionDeclParamsWrapper(clang::FunctionDecl const & _decl) : decl(_decl) {} + clang::FunctionDecl::param_const_iterator begin() const { return decl.param_begin(); } + clang::FunctionDecl::param_const_iterator end() const { return decl.param_end(); } +}; +inline FunctionDeclParamsWrapper parameters( + clang::FunctionDecl const & decl) +{ + return FunctionDeclParamsWrapper(decl); +} #endif + inline clang::QualType getReturnType(clang::FunctionProtoType const & type) { #if CLANG_VERSION >= 30500 return type.getReturnType(); |