summaryrefslogtreecommitdiff
path: root/compilerplugins
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2014-02-21 23:59:04 +0100
committerStephan Bergmann <sbergman@redhat.com>2014-02-21 23:59:24 +0100
commitd36e60f6854c3226d4297fc3425ba010ed8f1038 (patch)
tree53321e9859f286099e37fc4b1c9a9dd23e3d5eaf /compilerplugins
parent180f593fbfea238df97d006f6847bba3d9b0e317 (diff)
Adapt to Clang <= 3.4
Change-Id: If9c9d63d85ce29629e6453f2d69355bd64ac2fc5
Diffstat (limited to 'compilerplugins')
-rw-r--r--compilerplugins/clang/compat.hxx9
-rw-r--r--compilerplugins/clang/literaltoboolconversion.cxx3
2 files changed, 11 insertions, 1 deletions
diff --git a/compilerplugins/clang/compat.hxx b/compilerplugins/clang/compat.hxx
index 4c8c333d7003..4bc9a6bfbad5 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 1bbdc0550194..bbb0cbf76973 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,