diff --git a/src/tools/cplusplus/generate-ast.cpp b/src/tools/cplusplus/generate-ast.cpp
index 52d8b933c551ccdcfd704c358f627cc4755acacb..7051db24cee3bc04d4f28060d69ddbe37ccab4c3 100644
--- a/src/tools/cplusplus/generate-ast.cpp
+++ b/src/tools/cplusplus/generate-ast.cpp
@@ -1060,8 +1060,13 @@ int main(int argc, char *argv[])
     }
 
     QDir cplusplusDir(files.first());
-    Snapshot snapshot;
+    if (!QFileInfo(cplusplusDir, QLatin1String("AST.h")).exists()) {
+        std::cerr << "Cannot find AST.h in " << qPrintable(cplusplusDir.absolutePath())
+                << std::endl;
+        return EXIT_FAILURE;
+    }
 
+    Snapshot snapshot;
     QStringList astDerivedClasses = generateAST_H(snapshot, cplusplusDir);
     astDerivedClasses.sort();
     generateASTFwd_h(snapshot, cplusplusDir, astDerivedClasses);