#ifndef LLVM_CLANG_LEX_HEADERSEARCH_H
#define LLVM_CLANG_LEX_HEADERSEARCH_H
#include "clang/Basic/SourceLocation.h"
#include "clang/Basic/SourceManager.h"
#include "clang/Lex/DirectoryLookup.h"
#include "clang/Lex/ExternalPreprocessorSource.h"
#include "clang/Lex/HeaderMap.h"
#include "clang/Lex/ModuleMap.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/StringSet.h"
#include "llvm/Support/Allocator.h"
#include <cassert>
#include <cstddef>
#include <memory>
#include <string>
#include <utility>
#include <vector>
namespace llvm {
class Triple;
}
namespace clang {
class DiagnosticsEngine;
class DirectoryEntry;
class ExternalPreprocessorSource;
class FileEntry;
class FileManager;
class HeaderSearch;
class HeaderSearchOptions;
class IdentifierInfo;
class LangOptions;
class Module;
class Preprocessor;
class TargetInfo;
struct HeaderFileInfo { … };
class ExternalHeaderFileInfoSource { … };
struct FrameworkCacheEntry { … };
namespace detail {
Qualified;
template <bool IsConst>
struct SearchDirIteratorImpl
: llvm::iterator_facade_base<SearchDirIteratorImpl<IsConst>,
std::forward_iterator_tag,
Qualified<IsConst, DirectoryLookup>> { … };
}
ConstSearchDirIterator;
SearchDirIterator;
ConstSearchDirRange;
SearchDirRange;
class HeaderSearch { … };
void ApplyHeaderSearchOptions(HeaderSearch &HS,
const HeaderSearchOptions &HSOpts,
const LangOptions &Lang,
const llvm::Triple &triple);
}
#endif