update for change in clang's HandleTopLevelDecl return type
authorSven Verdoolaege <skimo@kotnet.org>
Wed, 18 Jan 2012 13:18:26 +0000 (14:18 +0100)
committerSven Verdoolaege <skimo@kotnet.org>
Wed, 18 Jan 2012 18:15:03 +0000 (19:15 +0100)
In recent versions of clang, HandleTopLevelDecl should return a boolean
indicating whether parsing should continue.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
configure.ac
interface/extract_interface.cc

index e45ceb8..1cd44b9 100644 (file)
@@ -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"
        ;;
index b2126a3..1e631dc 100644 (file)
@@ -110,14 +110,14 @@ struct MyASTConsumer : public ASTConsumer {
        set<RecordDecl *> types;
        set<FunctionDecl *> 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<RecordDecl>(decl));
@@ -128,6 +128,7 @@ struct MyASTConsumer : public ASTConsumer {
                default:
                        break;
                }
+               return HandleTopLevelDeclContinue;
        }
 };