compilerplugins/clang/checkconfigmacros.cxx | 42 +++++----------------------- compilerplugins/clang/compat.hxx | 6 ++++ compilerplugins/clang/oslendian.cxx | 22 ++++++-------- 3 files changed, 23 insertions(+), 47 deletions(-)
New commits: commit bf53daa49aee46c1e0a5c4117841bc5b9b992f6d Author: Stephan Bergmann <[email protected]> Date: Fri Nov 25 11:22:14 2016 +0100 Clean up PPCallbacks compatiblity fix Change-Id: I91f1db18b7876c4ecc30f7f97283e0ef0369eba5 diff --git a/compilerplugins/clang/checkconfigmacros.cxx b/compilerplugins/clang/checkconfigmacros.cxx index 1a92765..3d6dc98 100644 --- a/compilerplugins/clang/checkconfigmacros.cxx +++ b/compilerplugins/clang/checkconfigmacros.cxx @@ -35,20 +35,10 @@ class CheckConfigMacros explicit CheckConfigMacros( const InstantiationData& data ); virtual void run() override; virtual void MacroDefined( const Token& macroToken, const MacroDirective* info ) override; -#if CLANG_VERSION < 30700 - virtual void MacroUndefined( const Token& macroToken, const MacroDirective* info ) override; - virtual void Ifdef( SourceLocation location, const Token& macroToken, const MacroDirective* info ) override; - virtual void Ifndef( SourceLocation location, const Token& macroToken, const MacroDirective* info ) override; -#else - virtual void MacroUndefined( const Token& macroToken, const MacroDefinition& info ) override; - virtual void Ifdef( SourceLocation location, const Token& macroToken, const MacroDefinition& info ) override; - virtual void Ifndef( SourceLocation location, const Token& macroToken, const MacroDefinition& info ) override; -#endif -#if CLANG_VERSION < 30700 - virtual void Defined( const Token& macroToken, const MacroDirective* info, SourceRange Range ) override; -#else - virtual void Defined( const Token& macroToken, const MacroDefinition& info, SourceRange Range ) override; -#endif + virtual void MacroUndefined( const Token& macroToken, compat::MacroDefinitionParam ) override; + virtual void Ifdef( SourceLocation location, const Token& macroToken, compat::MacroDefinitionParam ) override; + virtual void Ifndef( SourceLocation location, const Token& macroToken, compat::MacroDefinitionParam ) override; + virtual void Defined( const Token& macroToken, compat::MacroDefinitionParam, SourceRange Range ) override; enum { isPPCallback = true }; private: void checkMacro( const Token& macroToken, SourceLocation location ); @@ -79,38 +69,22 @@ void CheckConfigMacros::MacroDefined( const Token& macroToken, const MacroDirect } } -#if CLANG_VERSION < 30700 -void CheckConfigMacros::MacroUndefined( const Token& macroToken, const MacroDirective* ) -#else -void CheckConfigMacros::MacroUndefined( const Token& macroToken, const MacroDefinition& ) -#endif +void CheckConfigMacros::MacroUndefined( const Token& macroToken, compat::MacroDefinitionParam ) { configMacros.erase( macroToken.getIdentifierInfo()->getName()); } -#if CLANG_VERSION < 30700 -void CheckConfigMacros::Ifdef( SourceLocation location, const Token& macroToken, const MacroDirective* ) -#else -void CheckConfigMacros::Ifdef( SourceLocation location, const Token& macroToken, const MacroDefinition& ) -#endif +void CheckConfigMacros::Ifdef( SourceLocation location, const Token& macroToken, compat::MacroDefinitionParam ) { checkMacro( macroToken, location ); } -#if CLANG_VERSION < 30700 -void CheckConfigMacros::Ifndef( SourceLocation location, const Token& macroToken, const MacroDirective* ) -#else -void CheckConfigMacros::Ifndef( SourceLocation location, const Token& macroToken, const MacroDefinition& ) -#endif +void CheckConfigMacros::Ifndef( SourceLocation location, const Token& macroToken, compat::MacroDefinitionParam ) { checkMacro( macroToken, location ); } -#if CLANG_VERSION < 30700 -void CheckConfigMacros::Defined( const Token& macroToken, const MacroDirective* , SourceRange ) -#else -void CheckConfigMacros::Defined( const Token& macroToken, const MacroDefinition& , SourceRange ) -#endif +void CheckConfigMacros::Defined( const Token& macroToken, compat::MacroDefinitionParam , SourceRange ) { checkMacro( macroToken, macroToken.getLocation()); } diff --git a/compilerplugins/clang/compat.hxx b/compilerplugins/clang/compat.hxx index 063d0ce..28dbeec 100644 --- a/compilerplugins/clang/compat.hxx +++ b/compilerplugins/clang/compat.hxx @@ -179,6 +179,12 @@ inline std::unique_ptr<llvm::raw_fd_ostream> create_raw_fd_ostream( #endif } +#if CLANG_VERSION >= 30700 +using MacroDefinitionParam = clang::MacroDefinition const &; +#else +using MacroDefinitionParam = clang::MacroDirective const *; +#endif + inline void addPPCallbacks( clang::Preprocessor & preprocessor, clang::PPCallbacks * C) { diff --git a/compilerplugins/clang/oslendian.cxx b/compilerplugins/clang/oslendian.cxx index 2bac848..705a7bc 100644 --- a/compilerplugins/clang/oslendian.cxx +++ b/compilerplugins/clang/oslendian.cxx @@ -14,12 +14,6 @@ namespace { -#if CLANG_VERSION < 30700 -using MacroDefinitionParam = MacroDirective const *; -#else -using MacroDefinitionParam = MacroDefinition const &; -#endif - class OslEndian: public loplugin::Plugin, public PPCallbacks { public: explicit OslEndian(InstantiationData const & data): Plugin(data) { @@ -64,8 +58,8 @@ private: } } - void MacroUndefined(Token const & MacroNameTok, MacroDefinitionParam) - override + void MacroUndefined( + Token const & MacroNameTok, compat::MacroDefinitionParam) override { auto id = MacroNameTok.getIdentifierInfo()->getName(); if (id == "OSL_BIGENDIAN" || id == "OSL_LITENDIAN") { @@ -76,21 +70,23 @@ private: } } - void Defined(Token const & MacroNameTok, MacroDefinitionParam, SourceRange) + void Defined( + Token const & MacroNameTok, compat::MacroDefinitionParam, SourceRange) override { check(MacroNameTok); } - void Ifdef(SourceLocation, Token const & MacroNameTok, MacroDefinitionParam) - override + void Ifdef( + SourceLocation, Token const & MacroNameTok, + compat::MacroDefinitionParam) override { check(MacroNameTok); } void Ifndef( - SourceLocation, Token const & MacroNameTok, MacroDefinitionParam) - override + SourceLocation, Token const & MacroNameTok, + compat::MacroDefinitionParam) override { check(MacroNameTok); } _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
