From c7dc96220f337df2adad12f078e24160a4ca85f7 Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Wed, 18 Jan 2012 14:18:26 +0100 Subject: [PATCH] update for change in clang's HandleTopLevelDecl return type In recent versions of clang, HandleTopLevelDecl should return a boolean indicating whether parsing should continue. Signed-off-by: Sven Verdoolaege --- configure.ac | 9 +++++++++ interface/extract_interface.cc | 7 ++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index e45ceb8..1cd44b9 100644 --- a/configure.ac +++ b/configure.ac @@ -142,6 +142,15 @@ system) AC_EGREP_HEADER([CXXIsProduction], [clang/Driver/Driver.h], [AC_DEFINE([HAVE_CXXISPRODUCTION], [], [Define if Driver constructor takes CXXIsProduction argument])]) + AC_EGREP_HEADER([void HandleTopLevelDecl\(], [clang/AST/ASTConsumer.h], + [AC_DEFINE([HandleTopLevelDeclReturn], [void], + [Return type of HandleTopLevelDeclReturn]), + AC_DEFINE([HandleTopLevelDeclContinue], [], + [Return type of HandleTopLevelDeclReturn])], + [AC_DEFINE([HandleTopLevelDeclReturn], [bool], + [Return type of HandleTopLevelDeclReturn]), + AC_DEFINE([HandleTopLevelDeclContinue], [true], + [Return type of HandleTopLevelDeclReturn])]) AC_LANG_POP CPPFLAGS="$SAVE_CPPFLAGS" ;; diff --git a/interface/extract_interface.cc b/interface/extract_interface.cc index b2126a3..1e631dc 100644 --- a/interface/extract_interface.cc +++ b/interface/extract_interface.cc @@ -110,14 +110,14 @@ struct MyASTConsumer : public ASTConsumer { set types; set functions; - virtual void HandleTopLevelDecl(DeclGroupRef D) { + virtual HandleTopLevelDeclReturn HandleTopLevelDecl(DeclGroupRef D) { Decl *decl; if (!D.isSingleDecl()) - return; + return HandleTopLevelDeclContinue; decl = D.getSingleDecl(); if (!is_exported(decl)) - return; + return HandleTopLevelDeclContinue; switch (decl->getKind()) { case Decl::Record: types.insert(cast(decl)); @@ -128,6 +128,7 @@ struct MyASTConsumer : public ASTConsumer { default: break; } + return HandleTopLevelDeclContinue; } }; -- 2.7.4