From 73b4cc5e4235975b27efe97d56b6ba3c63d93957 Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Wed, 18 Jan 2012 15:06:56 +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. Reported-by: Pieter Custers Signed-off-by: Sven Verdoolaege --- configure.ac | 9 +++++++++ pet.cc | 6 ++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index aba7ca7..9d531e9 100644 --- a/configure.ac +++ b/configure.ac @@ -56,6 +56,15 @@ AC_EGREP_HEADER([ArrayRef], [clang/Driver/Driver.h], 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/pet.cc b/pet.cc index 7e14597..2b21610 100644 --- a/pet.cc +++ b/pet.cc @@ -385,11 +385,11 @@ struct PetASTConsumer : public ASTConsumer { ctx(ctx), PP(PP), ast_context(ast_context), loc(loc), scop(NULL), function(function), autodetect(autodetect) { } - virtual void HandleTopLevelDecl(DeclGroupRef dg) { + virtual HandleTopLevelDeclReturn HandleTopLevelDecl(DeclGroupRef dg) { DeclGroupRef::iterator it; if (scop) - return; + return HandleTopLevelDeclContinue; for (it = dg.begin(); it != dg.end(); ++it) { FunctionDecl *fd = dyn_cast(*it); if (!fd) @@ -418,6 +418,8 @@ struct PetASTConsumer : public ASTConsumer { scop = ps.scan(fd); break; } + + return HandleTopLevelDeclContinue; } }; -- 2.11.4.GIT