forked from OSchip/llvm-project
Avoid including FileManager.h from SourceManager.h
Most clients of SourceManager.h need to do things like turning source locations into file & line number pairs, but this doesn't require bringing in FileManager.h and LLVM's FS headers. The main code change here is to sink SM::createFileID into the cpp file. I reason that this is not performance critical because it doesn't happen on the diagnostic path, it happens along the paths of macro expansion (could be hot) and new includes (less hot). Saves some includes: 309 - /usr/local/google/home/rnk/llvm-project/clang/include/clang/Basic/FileManager.h 272 - /usr/local/google/home/rnk/llvm-project/clang/include/clang/Basic/FileSystemOptions.h 271 - /usr/local/google/home/rnk/llvm-project/llvm/include/llvm/Support/VirtualFileSystem.h 267 - /usr/local/google/home/rnk/llvm-project/llvm/include/llvm/Support/FileSystem.h 266 - /usr/local/google/home/rnk/llvm-project/llvm/include/llvm/Support/Chrono.h Differential Revision: https://reviews.llvm.org/D75406
This commit is contained in:
parent
526a4f2ac3
commit
e08464fb45
|
@ -10,6 +10,7 @@
|
|||
#include "HeaderMapCollector.h"
|
||||
#include "PathConfig.h"
|
||||
#include "SymbolInfo.h"
|
||||
#include "clang/Basic/FileManager.h"
|
||||
#include "clang/Basic/IdentifierTable.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "clang/Lex/MacroInfo.h"
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "ExpandModularHeadersPPCallbacks.h"
|
||||
#include "clang/Basic/FileManager.h"
|
||||
#include "clang/Frontend/CompilerInstance.h"
|
||||
#include "clang/Lex/PreprocessorOptions.h"
|
||||
#include "clang/Serialization/ASTReader.h"
|
||||
|
|
|
@ -13,6 +13,13 @@
|
|||
#include "clang/Lex/Preprocessor.h"
|
||||
#include "llvm/ADT/DenseSet.h"
|
||||
|
||||
namespace llvm {
|
||||
namespace vfs {
|
||||
class OverlayFileSystem;
|
||||
class InMemoryFileSystem;
|
||||
} // namespace vfs
|
||||
} // namespace llvm
|
||||
|
||||
namespace clang {
|
||||
class CompilerInstance;
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include "Format.h"
|
||||
#include "Logger.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "clang/Basic/FileManager.h"
|
||||
#include "clang/Format/Format.h"
|
||||
#include "clang/Lex/Lexer.h"
|
||||
#include "clang/Tooling/Core/Replacement.h"
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "PPCallbacksTracker.h"
|
||||
#include "clang/Basic/FileManager.h"
|
||||
#include "clang/Lex/MacroArgs.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
|
||||
|
|
|
@ -52,7 +52,6 @@
|
|||
#include "clang/AST/DeclFriend.h"
|
||||
#include "clang/AST/DeclObjC.h"
|
||||
#include "clang/AST/DeclTemplate.h"
|
||||
#include "clang/AST/ParentMapContext.h"
|
||||
#include "clang/AST/Expr.h"
|
||||
#include "clang/AST/ExprCXX.h"
|
||||
#include "clang/AST/ExprObjC.h"
|
||||
|
@ -60,6 +59,7 @@
|
|||
#include "clang/AST/NestedNameSpecifier.h"
|
||||
#include "clang/AST/OpenMPClause.h"
|
||||
#include "clang/AST/OperationKinds.h"
|
||||
#include "clang/AST/ParentMapContext.h"
|
||||
#include "clang/AST/Stmt.h"
|
||||
#include "clang/AST/StmtCXX.h"
|
||||
#include "clang/AST/StmtObjC.h"
|
||||
|
@ -72,6 +72,7 @@
|
|||
#include "clang/ASTMatchers/ASTMatchersMacros.h"
|
||||
#include "clang/Basic/AttrKinds.h"
|
||||
#include "clang/Basic/ExceptionSpecificationType.h"
|
||||
#include "clang/Basic/FileManager.h"
|
||||
#include "clang/Basic/IdentifierTable.h"
|
||||
#include "clang/Basic/LLVM.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
|
|
|
@ -35,7 +35,6 @@
|
|||
#define LLVM_CLANG_BASIC_SOURCEMANAGER_H
|
||||
|
||||
#include "clang/Basic/Diagnostic.h"
|
||||
#include "clang/Basic/FileManager.h"
|
||||
#include "clang/Basic/SourceLocation.h"
|
||||
#include "llvm/ADT/ArrayRef.h"
|
||||
#include "llvm/ADT/BitVector.h"
|
||||
|
@ -60,6 +59,9 @@ namespace clang {
|
|||
|
||||
class ASTReader;
|
||||
class ASTWriter;
|
||||
class FileManager;
|
||||
class FileEntry;
|
||||
class FileEntryRef;
|
||||
class LineTableInfo;
|
||||
class SourceManager;
|
||||
|
||||
|
@ -830,24 +832,11 @@ public:
|
|||
/// This translates NULL into standard input.
|
||||
FileID createFileID(const FileEntry *SourceFile, SourceLocation IncludePos,
|
||||
SrcMgr::CharacteristicKind FileCharacter,
|
||||
int LoadedID = 0, unsigned LoadedOffset = 0) {
|
||||
assert(SourceFile && "Null source file!");
|
||||
const SrcMgr::ContentCache *IR =
|
||||
getOrCreateContentCache(SourceFile, isSystem(FileCharacter));
|
||||
assert(IR && "getOrCreateContentCache() cannot return NULL");
|
||||
return createFileID(IR, SourceFile->getName(), IncludePos, FileCharacter,
|
||||
LoadedID, LoadedOffset);
|
||||
}
|
||||
int LoadedID = 0, unsigned LoadedOffset = 0);
|
||||
|
||||
FileID createFileID(FileEntryRef SourceFile, SourceLocation IncludePos,
|
||||
SrcMgr::CharacteristicKind FileCharacter,
|
||||
int LoadedID = 0, unsigned LoadedOffset = 0) {
|
||||
const SrcMgr::ContentCache *IR = getOrCreateContentCache(
|
||||
&SourceFile.getFileEntry(), isSystem(FileCharacter));
|
||||
assert(IR && "getOrCreateContentCache() cannot return NULL");
|
||||
return createFileID(IR, SourceFile.getName(), IncludePos, FileCharacter,
|
||||
LoadedID, LoadedOffset);
|
||||
}
|
||||
int LoadedID = 0, unsigned LoadedOffset = 0);
|
||||
|
||||
/// Create a new FileID that represents the specified memory buffer.
|
||||
///
|
||||
|
@ -856,12 +845,7 @@ public:
|
|||
FileID createFileID(std::unique_ptr<llvm::MemoryBuffer> Buffer,
|
||||
SrcMgr::CharacteristicKind FileCharacter = SrcMgr::C_User,
|
||||
int LoadedID = 0, unsigned LoadedOffset = 0,
|
||||
SourceLocation IncludeLoc = SourceLocation()) {
|
||||
StringRef Name = Buffer->getBufferIdentifier();
|
||||
return createFileID(
|
||||
createMemBufferContentCache(Buffer.release(), /*DoNotFree*/ false),
|
||||
Name, IncludeLoc, FileCharacter, LoadedID, LoadedOffset);
|
||||
}
|
||||
SourceLocation IncludeLoc = SourceLocation());
|
||||
|
||||
enum UnownedTag { Unowned };
|
||||
|
||||
|
@ -872,20 +856,12 @@ public:
|
|||
FileID createFileID(UnownedTag, const llvm::MemoryBuffer *Buffer,
|
||||
SrcMgr::CharacteristicKind FileCharacter = SrcMgr::C_User,
|
||||
int LoadedID = 0, unsigned LoadedOffset = 0,
|
||||
SourceLocation IncludeLoc = SourceLocation()) {
|
||||
return createFileID(createMemBufferContentCache(Buffer, /*DoNotFree*/ true),
|
||||
Buffer->getBufferIdentifier(), IncludeLoc,
|
||||
FileCharacter, LoadedID, LoadedOffset);
|
||||
}
|
||||
SourceLocation IncludeLoc = SourceLocation());
|
||||
|
||||
/// Get the FileID for \p SourceFile if it exists. Otherwise, create a
|
||||
/// new FileID for the \p SourceFile.
|
||||
FileID getOrCreateFileID(const FileEntry *SourceFile,
|
||||
SrcMgr::CharacteristicKind FileCharacter) {
|
||||
FileID ID = translateFile(SourceFile);
|
||||
return ID.isValid() ? ID : createFileID(SourceFile, SourceLocation(),
|
||||
FileCharacter);
|
||||
}
|
||||
SrcMgr::CharacteristicKind FileCharacter);
|
||||
|
||||
/// Return a new SourceLocation that encodes the
|
||||
/// fact that a token from SpellingLoc should actually be referenced from
|
||||
|
@ -1025,17 +1001,7 @@ public:
|
|||
}
|
||||
|
||||
/// Returns the FileEntryRef for the provided FileID.
|
||||
Optional<FileEntryRef> getFileEntryRefForID(FileID FID) const {
|
||||
bool Invalid = false;
|
||||
const SrcMgr::SLocEntry &Entry = getSLocEntry(FID, &Invalid);
|
||||
if (Invalid || !Entry.isFile())
|
||||
return None;
|
||||
|
||||
const SrcMgr::ContentCache *Content = Entry.getFile().getContentCache();
|
||||
if (!Content || !Content->OrigEntry)
|
||||
return None;
|
||||
return FileEntryRef(Entry.getFile().getName(), *Content->OrigEntry);
|
||||
}
|
||||
Optional<FileEntryRef> getFileEntryRefForID(FileID FID) const;
|
||||
|
||||
/// Returns the FileEntry record for the provided SLocEntry.
|
||||
const FileEntry *getFileEntryForSLocEntry(const SrcMgr::SLocEntry &sloc) const
|
||||
|
@ -1098,11 +1064,7 @@ public:
|
|||
}
|
||||
|
||||
/// Return the filename of the file containing a SourceLocation.
|
||||
StringRef getFilename(SourceLocation SpellingLoc) const {
|
||||
if (const FileEntry *F = getFileEntryForID(getFileID(SpellingLoc)))
|
||||
return F->getName();
|
||||
return StringRef();
|
||||
}
|
||||
StringRef getFilename(SourceLocation SpellingLoc) const;
|
||||
|
||||
/// Return the source location corresponding to the first byte of
|
||||
/// the specified file.
|
||||
|
|
|
@ -390,9 +390,7 @@ public:
|
|||
/// @name Virtual File System
|
||||
/// {
|
||||
|
||||
llvm::vfs::FileSystem &getVirtualFileSystem() const {
|
||||
return getFileManager().getVirtualFileSystem();
|
||||
}
|
||||
llvm::vfs::FileSystem &getVirtualFileSystem() const;
|
||||
|
||||
/// }
|
||||
/// @name File Manager
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#define LLVM_CLANG_FRONTEND_VERIFYDIAGNOSTICCONSUMER_H
|
||||
|
||||
#include "clang/Basic/Diagnostic.h"
|
||||
#include "clang/Basic/FileManager.h"
|
||||
#include "clang/Basic/LLVM.h"
|
||||
#include "clang/Basic/SourceLocation.h"
|
||||
#include "clang/Lex/Preprocessor.h"
|
||||
|
|
|
@ -14,13 +14,12 @@
|
|||
#define LLVM_CLANG_LEX_DIRECTORYLOOKUP_H
|
||||
|
||||
#include "clang/Basic/LLVM.h"
|
||||
#include "clang/Basic/FileManager.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "clang/Lex/ModuleMap.h"
|
||||
|
||||
namespace clang {
|
||||
class HeaderMap;
|
||||
class DirectoryEntry;
|
||||
class FileEntry;
|
||||
class HeaderSearch;
|
||||
class Module;
|
||||
|
||||
|
|
|
@ -605,9 +605,7 @@ public:
|
|||
return &I->second;
|
||||
}
|
||||
|
||||
void addAdditionalModuleMapFile(const Module *M, const FileEntry *ModuleMap) {
|
||||
AdditionalModMaps[M].insert(ModuleMap);
|
||||
}
|
||||
void addAdditionalModuleMapFile(const Module *M, const FileEntry *ModuleMap);
|
||||
|
||||
/// Resolve all of the unresolved exports in the given module.
|
||||
///
|
||||
|
|
|
@ -308,7 +308,7 @@ public:
|
|||
/// read.
|
||||
virtual void HasInclude(SourceLocation Loc, StringRef FileName, bool IsAngled,
|
||||
Optional<FileEntryRef> File,
|
||||
SrcMgr::CharacteristicKind FileType) {}
|
||||
SrcMgr::CharacteristicKind FileType);
|
||||
|
||||
/// Hook called when a source range is skipped.
|
||||
/// \param Range The SourceRange that was skipped. The range begins at the
|
||||
|
@ -374,7 +374,6 @@ public:
|
|||
|
||||
/// Simple wrapper class for chaining callbacks.
|
||||
class PPChainedCallbacks : public PPCallbacks {
|
||||
virtual void anchor();
|
||||
std::unique_ptr<PPCallbacks> First, Second;
|
||||
|
||||
public:
|
||||
|
@ -382,6 +381,8 @@ public:
|
|||
std::unique_ptr<PPCallbacks> _Second)
|
||||
: First(std::move(_First)), Second(std::move(_Second)) {}
|
||||
|
||||
~PPChainedCallbacks() override;
|
||||
|
||||
void FileChanged(SourceLocation Loc, FileChangeReason Reason,
|
||||
SrcMgr::CharacteristicKind FileType,
|
||||
FileID PrevFID) override {
|
||||
|
@ -490,10 +491,7 @@ public:
|
|||
|
||||
void HasInclude(SourceLocation Loc, StringRef FileName, bool IsAngled,
|
||||
Optional<FileEntryRef> File,
|
||||
SrcMgr::CharacteristicKind FileType) override {
|
||||
First->HasInclude(Loc, FileName, IsAngled, File, FileType);
|
||||
Second->HasInclude(Loc, FileName, IsAngled, File, FileType);
|
||||
}
|
||||
SrcMgr::CharacteristicKind FileType) override;
|
||||
|
||||
void PragmaOpenCLExtension(SourceLocation NameLoc, const IdentifierInfo *Name,
|
||||
SourceLocation StateLoc, unsigned State) override {
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
#include "clang/AST/ExternalASTSource.h"
|
||||
#include "clang/AST/ASTContext.h"
|
||||
#include "clang/AST/DeclarationName.h"
|
||||
#include "clang/Basic/FileManager.h"
|
||||
#include "clang/Basic/IdentifierTable.h"
|
||||
#include "clang/Basic/LLVM.h"
|
||||
#include "clang/Basic/Module.h"
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include "clang/AST/VTableBuilder.h"
|
||||
#include "clang/Basic/ABI.h"
|
||||
#include "clang/Basic/DiagnosticOptions.h"
|
||||
#include "clang/Basic/FileManager.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "clang/Basic/TargetInfo.h"
|
||||
#include "llvm/ADT/StringExtras.h"
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "clang/Basic/SanitizerBlacklist.h"
|
||||
#include "clang/Basic/FileManager.h"
|
||||
#include "clang/Basic/SanitizerSpecialCaseList.h"
|
||||
#include "clang/Basic/Sanitizers.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
|
|
|
@ -17,12 +17,12 @@
|
|||
#include "clang/Basic/SourceLocation.h"
|
||||
#include "clang/Basic/SourceManagerInternals.h"
|
||||
#include "llvm/ADT/DenseMap.h"
|
||||
#include "llvm/ADT/Optional.h"
|
||||
#include "llvm/ADT/None.h"
|
||||
#include "llvm/ADT/Optional.h"
|
||||
#include "llvm/ADT/STLExtras.h"
|
||||
#include "llvm/ADT/SmallVector.h"
|
||||
#include "llvm/ADT/StringSwitch.h"
|
||||
#include "llvm/ADT/StringRef.h"
|
||||
#include "llvm/ADT/StringSwitch.h"
|
||||
#include "llvm/Support/Allocator.h"
|
||||
#include "llvm/Support/Capacity.h"
|
||||
#include "llvm/Support/Compiler.h"
|
||||
|
@ -560,6 +560,70 @@ FileID SourceManager::getNextFileID(FileID FID) const {
|
|||
// Methods to create new FileID's and macro expansions.
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
/// Create a new FileID that represents the specified file
|
||||
/// being \#included from the specified IncludePosition.
|
||||
///
|
||||
/// This translates NULL into standard input.
|
||||
FileID SourceManager::createFileID(const FileEntry *SourceFile,
|
||||
SourceLocation IncludePos,
|
||||
SrcMgr::CharacteristicKind FileCharacter,
|
||||
int LoadedID, unsigned LoadedOffset) {
|
||||
assert(SourceFile && "Null source file!");
|
||||
const SrcMgr::ContentCache *IR =
|
||||
getOrCreateContentCache(SourceFile, isSystem(FileCharacter));
|
||||
assert(IR && "getOrCreateContentCache() cannot return NULL");
|
||||
return createFileID(IR, SourceFile->getName(), IncludePos, FileCharacter,
|
||||
LoadedID, LoadedOffset);
|
||||
}
|
||||
|
||||
FileID SourceManager::createFileID(FileEntryRef SourceFile,
|
||||
SourceLocation IncludePos,
|
||||
SrcMgr::CharacteristicKind FileCharacter,
|
||||
int LoadedID, unsigned LoadedOffset) {
|
||||
const SrcMgr::ContentCache *IR = getOrCreateContentCache(
|
||||
&SourceFile.getFileEntry(), isSystem(FileCharacter));
|
||||
assert(IR && "getOrCreateContentCache() cannot return NULL");
|
||||
return createFileID(IR, SourceFile.getName(), IncludePos, FileCharacter,
|
||||
LoadedID, LoadedOffset);
|
||||
}
|
||||
|
||||
/// Create a new FileID that represents the specified memory buffer.
|
||||
///
|
||||
/// This does no caching of the buffer and takes ownership of the
|
||||
/// MemoryBuffer, so only pass a MemoryBuffer to this once.
|
||||
FileID SourceManager::createFileID(std::unique_ptr<llvm::MemoryBuffer> Buffer,
|
||||
SrcMgr::CharacteristicKind FileCharacter,
|
||||
int LoadedID, unsigned LoadedOffset,
|
||||
SourceLocation IncludeLoc) {
|
||||
StringRef Name = Buffer->getBufferIdentifier();
|
||||
return createFileID(
|
||||
createMemBufferContentCache(Buffer.release(), /*DoNotFree*/ false),
|
||||
Name, IncludeLoc, FileCharacter, LoadedID, LoadedOffset);
|
||||
}
|
||||
|
||||
/// Create a new FileID that represents the specified memory buffer.
|
||||
///
|
||||
/// This does not take ownership of the MemoryBuffer. The memory buffer must
|
||||
/// outlive the SourceManager.
|
||||
FileID SourceManager::createFileID(UnownedTag, const llvm::MemoryBuffer *Buffer,
|
||||
SrcMgr::CharacteristicKind FileCharacter,
|
||||
int LoadedID, unsigned LoadedOffset,
|
||||
SourceLocation IncludeLoc) {
|
||||
return createFileID(createMemBufferContentCache(Buffer, /*DoNotFree*/ true),
|
||||
Buffer->getBufferIdentifier(), IncludeLoc,
|
||||
FileCharacter, LoadedID, LoadedOffset);
|
||||
}
|
||||
|
||||
/// Get the FileID for \p SourceFile if it exists. Otherwise, create a
|
||||
/// new FileID for the \p SourceFile.
|
||||
FileID
|
||||
SourceManager::getOrCreateFileID(const FileEntry *SourceFile,
|
||||
SrcMgr::CharacteristicKind FileCharacter) {
|
||||
FileID ID = translateFile(SourceFile);
|
||||
return ID.isValid() ? ID : createFileID(SourceFile, SourceLocation(),
|
||||
FileCharacter);
|
||||
}
|
||||
|
||||
/// createFileID - Create a new FileID for the specified ContentCache and
|
||||
/// include position. This works regardless of whether the ContentCache
|
||||
/// corresponds to a file or some other input source.
|
||||
|
@ -701,6 +765,18 @@ void SourceManager::setFileIsTransient(const FileEntry *File) {
|
|||
const_cast<SrcMgr::ContentCache *>(CC)->IsTransient = true;
|
||||
}
|
||||
|
||||
Optional<FileEntryRef> SourceManager::getFileEntryRefForID(FileID FID) const {
|
||||
bool Invalid = false;
|
||||
const SrcMgr::SLocEntry &Entry = getSLocEntry(FID, &Invalid);
|
||||
if (Invalid || !Entry.isFile())
|
||||
return None;
|
||||
|
||||
const SrcMgr::ContentCache *Content = Entry.getFile().getContentCache();
|
||||
if (!Content || !Content->OrigEntry)
|
||||
return None;
|
||||
return FileEntryRef(Entry.getFile().getName(), *Content->OrigEntry);
|
||||
}
|
||||
|
||||
StringRef SourceManager::getBufferData(FileID FID, bool *Invalid) const {
|
||||
bool MyInvalid = false;
|
||||
const SLocEntry &SLoc = getSLocEntry(FID, &MyInvalid);
|
||||
|
@ -992,6 +1068,13 @@ SourceLocation SourceManager::getImmediateSpellingLoc(SourceLocation Loc) const{
|
|||
return Loc.getLocWithOffset(LocInfo.second);
|
||||
}
|
||||
|
||||
/// Return the filename of the file containing a SourceLocation.
|
||||
StringRef SourceManager::getFilename(SourceLocation SpellingLoc) const {
|
||||
if (const FileEntry *F = getFileEntryForID(getFileID(SpellingLoc)))
|
||||
return F->getName();
|
||||
return StringRef();
|
||||
}
|
||||
|
||||
/// getImmediateExpansionRange - Loc is required to be an expansion location.
|
||||
/// Return the start/end of the expansion information.
|
||||
CharSourceRange
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "clang/Basic/XRayLists.h"
|
||||
#include "clang/Basic/FileManager.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "llvm/Support/SpecialCaseList.h"
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#include "clang/AST/StmtOpenMP.h"
|
||||
#include "clang/AST/StmtVisitor.h"
|
||||
#include "clang/Basic/BitmaskEnum.h"
|
||||
#include "clang/Basic/FileManager.h"
|
||||
#include "clang/Basic/OpenMPKinds.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "clang/CodeGen/ConstantInitBuilder.h"
|
||||
|
|
|
@ -38,6 +38,7 @@
|
|||
#include "clang/Basic/CharInfo.h"
|
||||
#include "clang/Basic/CodeGenOptions.h"
|
||||
#include "clang/Basic/Diagnostic.h"
|
||||
#include "clang/Basic/FileManager.h"
|
||||
#include "clang/Basic/Module.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "clang/Basic/TargetInfo.h"
|
||||
|
|
|
@ -14,11 +14,12 @@
|
|||
#include "CodeGenFunction.h"
|
||||
#include "clang/AST/StmtVisitor.h"
|
||||
#include "clang/Basic/Diagnostic.h"
|
||||
#include "clang/Basic/FileManager.h"
|
||||
#include "clang/Frontend/FrontendDiagnostic.h"
|
||||
#include "clang/Lex/Lexer.h"
|
||||
#include "llvm/ADT/Optional.h"
|
||||
#include "llvm/ADT/SmallSet.h"
|
||||
#include "llvm/ADT/StringExtras.h"
|
||||
#include "llvm/ADT/Optional.h"
|
||||
#include "llvm/ProfileData/Coverage/CoverageMapping.h"
|
||||
#include "llvm/ProfileData/Coverage/CoverageMappingReader.h"
|
||||
#include "llvm/ProfileData/Coverage/CoverageMappingWriter.h"
|
||||
|
|
|
@ -97,6 +97,10 @@ void CompilerInstance::setVerboseOutputStream(std::unique_ptr<raw_ostream> Value
|
|||
void CompilerInstance::setTarget(TargetInfo *Value) { Target = Value; }
|
||||
void CompilerInstance::setAuxTarget(TargetInfo *Value) { AuxTarget = Value; }
|
||||
|
||||
llvm::vfs::FileSystem &CompilerInstance::getVirtualFileSystem() const {
|
||||
return getFileManager().getVirtualFileSystem();
|
||||
}
|
||||
|
||||
void CompilerInstance::setFileManager(FileManager *Value) {
|
||||
FileMgr = Value;
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
|
||||
#include "clang/Frontend/PrecompiledPreamble.h"
|
||||
#include "clang/AST/DeclObjC.h"
|
||||
#include "clang/Basic/FileManager.h"
|
||||
#include "clang/Basic/LangStandard.h"
|
||||
#include "clang/Basic/TargetInfo.h"
|
||||
#include "clang/Frontend/CompilerInstance.h"
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include "clang/AST/Attr.h"
|
||||
#include "clang/AST/Comment.h"
|
||||
#include "clang/AST/CommentVisitor.h"
|
||||
#include "clang/Basic/FileManager.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "clang/Format/Format.h"
|
||||
#include "clang/Index/USRGeneration.h"
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include "clang/AST/Attr.h"
|
||||
#include "clang/AST/DeclTemplate.h"
|
||||
#include "clang/AST/DeclVisitor.h"
|
||||
#include "clang/Basic/FileManager.h"
|
||||
#include "clang/Lex/PreprocessingRecord.h"
|
||||
#include "llvm/Support/Path.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
|
|
|
@ -1244,6 +1244,11 @@ void ModuleMap::setInferredModuleAllowedBy(Module *M, const FileEntry *ModMap) {
|
|||
InferredModuleAllowedBy[M] = ModMap;
|
||||
}
|
||||
|
||||
void ModuleMap::addAdditionalModuleMapFile(const Module *M,
|
||||
const FileEntry *ModuleMap) {
|
||||
AdditionalModMaps[M].insert(ModuleMap);
|
||||
}
|
||||
|
||||
LLVM_DUMP_METHOD void ModuleMap::dump() {
|
||||
llvm::errs() << "Modules:";
|
||||
for (llvm::StringMap<Module *>::iterator M = Modules.begin(),
|
||||
|
|
|
@ -7,7 +7,24 @@
|
|||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "clang/Lex/PPCallbacks.h"
|
||||
#include "clang/Basic/FileManager.h"
|
||||
|
||||
using namespace clang;
|
||||
|
||||
void PPChainedCallbacks::anchor() { }
|
||||
// Out of line key method.
|
||||
PPCallbacks::~PPCallbacks() = default;
|
||||
|
||||
void PPCallbacks::HasInclude(SourceLocation Loc, StringRef FileName,
|
||||
bool IsAngled, Optional<FileEntryRef> File,
|
||||
SrcMgr::CharacteristicKind FileType) {}
|
||||
|
||||
// Out of line key method.
|
||||
PPChainedCallbacks::~PPChainedCallbacks() = default;
|
||||
|
||||
void PPChainedCallbacks::HasInclude(SourceLocation Loc, StringRef FileName,
|
||||
bool IsAngled, Optional<FileEntryRef> File,
|
||||
SrcMgr::CharacteristicKind FileType) {
|
||||
First->HasInclude(Loc, FileName, IsAngled, File, FileType);
|
||||
Second->HasInclude(Loc, FileName, IsAngled, File, FileType);
|
||||
}
|
||||
|
||||
|
|
|
@ -24,8 +24,6 @@
|
|||
#include "llvm/Support/Path.h"
|
||||
using namespace clang;
|
||||
|
||||
PPCallbacks::~PPCallbacks() {}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Miscellaneous Methods.
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
#include "clang/AST/ASTConsumer.h"
|
||||
#include "clang/AST/ASTContext.h"
|
||||
#include "clang/AST/DeclTemplate.h"
|
||||
#include "clang/Basic/FileManager.h"
|
||||
#include "clang/Parse/ParseDiagnostic.h"
|
||||
#include "clang/Parse/RAIIObjectsForParser.h"
|
||||
#include "clang/Sema/DeclSpec.h"
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "clang/Analysis/PathDiagnostic.h"
|
||||
#include "clang/Basic/FileManager.h"
|
||||
#include "clang/Basic/Version.h"
|
||||
#include "clang/Lex/Preprocessor.h"
|
||||
#include "clang/StaticAnalyzer/Core/AnalyzerOptions.h"
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "clang/Tooling/Inclusions/HeaderIncludes.h"
|
||||
#include "clang/Basic/FileManager.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "clang/Lex/Lexer.h"
|
||||
#include "llvm/ADT/Optional.h"
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include "clang/AST/DeclObjC.h"
|
||||
#include "clang/AST/ExternalASTMerger.h"
|
||||
#include "clang/Basic/Builtins.h"
|
||||
#include "clang/Basic/FileManager.h"
|
||||
#include "clang/Basic/IdentifierTable.h"
|
||||
#include "clang/Basic/SourceLocation.h"
|
||||
#include "clang/Basic/TargetInfo.h"
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
|
||||
#include "TestSupport.h"
|
||||
#include "clang/Basic/DiagnosticError.h"
|
||||
#include "clang/Basic/FileManager.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "clang/Lex/Lexer.h"
|
||||
#include "llvm/ADT/STLExtras.h"
|
||||
|
|
|
@ -10,13 +10,14 @@
|
|||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "clang/Frontend/ASTUnit.h"
|
||||
#include "CXSourceLocation.h"
|
||||
#include "CIndexer.h"
|
||||
#include "CLog.h"
|
||||
#include "CXLoadedDiagnostic.h"
|
||||
#include "CXSourceLocation.h"
|
||||
#include "CXString.h"
|
||||
#include "CXTranslationUnit.h"
|
||||
#include "clang/Basic/FileManager.h"
|
||||
#include "clang/Frontend/ASTUnit.h"
|
||||
#include "llvm/Support/Compiler.h"
|
||||
#include "llvm/Support/Format.h"
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
#include <fstream>
|
||||
|
||||
#include "clang/Basic/FileManager.h"
|
||||
#include "clang/Frontend/ASTUnit.h"
|
||||
#include "clang/Frontend/CompilerInstance.h"
|
||||
#include "clang/Frontend/CompilerInvocation.h"
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "clang/Frontend/CompilerInstance.h"
|
||||
#include "clang/Basic/FileManager.h"
|
||||
#include "clang/Frontend/CompilerInvocation.h"
|
||||
#include "clang/Frontend/TextDiagnosticPrinter.h"
|
||||
#include "llvm/Support/FileSystem.h"
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#include "ClangExpressionSourceCode.h"
|
||||
|
||||
#include "clang/Basic/CharInfo.h"
|
||||
#include "clang/Basic/FileManager.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "clang/Lex/Lexer.h"
|
||||
#include "llvm/ADT/StringRef.h"
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
#include "lldb/Utility/AnsiTerminal.h"
|
||||
#include "lldb/Utility/StreamString.h"
|
||||
|
||||
#include "clang/Basic/FileManager.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "clang/Lex/Lexer.h"
|
||||
#include "llvm/ADT/StringSet.h"
|
||||
|
|
Loading…
Reference in New Issue