//===- HeaderSearchOptions.h ------------------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_LEX_HEADERSEARCHOPTIONS_H #define LLVM_CLANG_LEX_HEADERSEARCHOPTIONS_H #include "clang/Basic/LLVM.h" #include "llvm/ADT/CachedHashString.h" #include "llvm/ADT/SetVector.h" #include "llvm/ADT/StringRef.h" #include "llvm/Support/HashBuilder.h" #include <cstdint> #include <map> #include <string> #include <vector> namespace clang { namespace frontend { /// IncludeDirGroup - Identifies the group an include Entry belongs to, /// representing its relative positive in the search list. /// \#include directives whose paths are enclosed by string quotes ("") /// start searching at the Quoted group (specified by '-iquote'), /// then search the Angled group, then the System group, etc. enum IncludeDirGroup { … }; } // namespace frontend /// HeaderSearchOptions - Helper class for storing options related to the /// initialization of the HeaderSearch object. class HeaderSearchOptions { … }; template <typename HasherT, llvm::endianness Endianness> inline void addHash(llvm::HashBuilder<HasherT, Endianness> &HBuilder, const HeaderSearchOptions::Entry &E) { … } template <typename HasherT, llvm::endianness Endianness> inline void addHash(llvm::HashBuilder<HasherT, Endianness> &HBuilder, const HeaderSearchOptions::SystemHeaderPrefix &SHP) { … } } // namespace clang #endif // LLVM_CLANG_LEX_HEADERSEARCHOPTIONS_H