[Libreoffice-commits] core.git: compilerplugins/clang
Stephan Bergmann
sbergman at redhat.com
Fri Nov 25 10:22:54 UTC 2016
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 <sbergman at redhat.com>
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);
}
More information about the Libreoffice-commits
mailing list