+ AC_EGREP_HEADER([ArrayRef], [clang/Driver/Driver.h],
+ [AC_DEFINE([USE_ARRAYREF], [],
+ [Define if Driver::BuildCompilation takes ArrayRef])])
+ AC_EGREP_HEADER([CXXIsProduction], [clang/Driver/Driver.h],
+ [AC_DEFINE([HAVE_CXXISPRODUCTION], [],
+ [Define if Driver constructor takes CXXIsProduction argument])])
+ AC_EGREP_HEADER([ IsProduction], [clang/Driver/Driver.h],
+ [AC_DEFINE([HAVE_ISPRODUCTION], [],
+ [Define if Driver constructor takes IsProduction 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_CHECK_HEADER([clang/Basic/DiagnosticOptions.h],
+ [AC_DEFINE([HAVE_BASIC_DIAGNOSTICOPTIONS_H], [],
+ [Define if clang/Basic/DiagnosticOptions.h exists])])
+ AC_TRY_COMPILE([#include <clang/Basic/TargetInfo.h>], [
+ using namespace clang;
+ TargetOptions *TO;
+ DiagnosticsEngine *Diags;
+ TargetInfo::CreateTargetInfo(*Diags, TO);
+ ], [AC_DEFINE([CREATETARGETINFO_TAKES_POINTER], [],
+ [Define if TargetInfo::CreateTargetInfo takes pointer])])
+ AC_TRY_COMPILE([#include <clang/Frontend/CompilerInstance.h>], [
+ using namespace clang;
+ DiagnosticConsumer *client;
+ CompilerInstance *Clang;
+ Clang->createDiagnostics(client);
+ ], [], [AC_DEFINE([CREATEDIAGNOSTICS_TAKES_ARG], [],
+ [Define if CompilerInstance::createDiagnostics takes argc and argv])])
+ AC_TRY_COMPILE([#include <clang/Lex/HeaderSearchOptions.h>], [
+ using namespace clang;
+ HeaderSearchOptions HSO;
+ HSO.AddPath("", frontend::Angled, false, false);
+ ], [AC_DEFINE([ADDPATH_TAKES_4_ARGUMENTS], [],
+ [Define if HeaderSearchOptions::AddPath takes 4 arguments])])