[Libreoffice-commits] core.git: compilerplugins/clang

Stephan Bergmann sbergman at redhat.com
Fri Feb 21 14:59:56 PST 2014


 compilerplugins/clang/compat.hxx                  |    9 +++++++++
 compilerplugins/clang/literaltoboolconversion.cxx |    3 ++-
 2 files changed, 11 insertions(+), 1 deletion(-)

New commits:
commit d36e60f6854c3226d4297fc3425ba010ed8f1038
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Fri Feb 21 23:59:04 2014 +0100

    Adapt to Clang <= 3.4
    
    Change-Id: If9c9d63d85ce29629e6453f2d69355bd64ac2fc5

diff --git a/compilerplugins/clang/compat.hxx b/compilerplugins/clang/compat.hxx
index 4c8c333..4bc9a6b 100644
--- a/compilerplugins/clang/compat.hxx
+++ b/compilerplugins/clang/compat.hxx
@@ -11,6 +11,7 @@
 #define INCLUDED_COMPILERPLUGINS_CLANG_COMPAT_HXX
 
 #include "clang/AST/Decl.h"
+#include "clang/AST/Expr.h"
 #include "clang/AST/Type.h"
 #include "clang/Basic/Diagnostic.h"
 #include "clang/Basic/DiagnosticIDs.h"
@@ -45,6 +46,14 @@ inline clang::QualType getParamType(
 #endif
 }
 
+inline unsigned getBuiltinCallee(clang::CallExpr const & expr) {
+#if (__clang_major__ == 3 && __clang_minor__ >= 5) || __clang_major__ > 3
+    return expr.getBuiltinCallee();
+#else
+    return expr.isBuiltinCall();
+#endif
+}
+
 inline unsigned getCustomDiagID(
     clang::DiagnosticsEngine & engine, clang::DiagnosticsEngine::Level L,
     llvm::StringRef FormatString)
diff --git a/compilerplugins/clang/literaltoboolconversion.cxx b/compilerplugins/clang/literaltoboolconversion.cxx
index 1bbdc05..bbb0cbf 100644
--- a/compilerplugins/clang/literaltoboolconversion.cxx
+++ b/compilerplugins/clang/literaltoboolconversion.cxx
@@ -10,6 +10,7 @@
 
 #include "clang/Lex/Lexer.h"
 
+#include "compat.hxx"
 #include "plugin.hxx"
 
 namespace {
@@ -138,7 +139,7 @@ bool LiteralToBoolConversion::VisitImplicitCastExpr(
     } else if (sub->isIntegerConstantExpr(compiler.getASTContext())) {
         CallExpr const * ce = dyn_cast<CallExpr>(sub);
         if (ce == nullptr
-            || ce->getBuiltinCallee() != Builtin::BI__builtin_expect)
+            || compat::getBuiltinCallee(*ce) != Builtin::BI__builtin_expect)
         {
             report(
                 DiagnosticsEngine::Warning,


More information about the Libreoffice-commits mailing list