LLVM  14.0.0git
Classes | Namespaces | Enumerations | Functions
VirtualFileSystem.cpp File Reference
#include "llvm/Support/VirtualFileSystem.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/IntrusiveRefCntPtr.h"
#include "llvm/ADT/None.h"
#include "llvm/ADT/Optional.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/StringSet.h"
#include "llvm/ADT/Twine.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/Config/llvm-config.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Chrono.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/Errc.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/ErrorOr.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/Process.h"
#include "llvm/Support/SMLoc.h"
#include "llvm/Support/SourceMgr.h"
#include "llvm/Support/YAMLParser.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <atomic>
#include <cassert>
#include <cstdint>
#include <iterator>
#include <limits>
#include <map>
#include <memory>
#include <mutex>
#include <string>
#include <system_error>
#include <utility>
#include <vector>
Include dependency graph for VirtualFileSystem.cpp:

Go to the source code of this file.

Classes

class  llvm::vfs::detail::InMemoryNode
 The in memory file system is a tree of Nodes. More...
 
class  llvm::vfs::detail::InMemoryFile
 
class  llvm::vfs::detail::InMemoryDirectory
 
class  llvm::vfs::RedirectingFSDirIterImpl
 Directory iterator implementation for RedirectingFileSystem's directory entries. More...
 
class  RedirectingFSDirRemapIterImpl
 Directory iterator implementation for RedirectingFileSystem's directory remap entries that maps the paths reported by the external file system's directory iterator back to the virtual directory's path. More...
 
class  llvm::vfs::RedirectingFileSystemParser
 A helper class to hold the common YAML parsing state. More...
 

Namespaces

 llvm
 ---------------------— PointerInfo ------------------------------------—
 
 llvm::vfs
 
 llvm::vfs::detail
 

Enumerations

enum  llvm::vfs::detail::InMemoryNodeKind { llvm::vfs::detail::IME_File, llvm::vfs::detail::IME_Directory, llvm::vfs::detail::IME_HardLink }
 

Functions

static bool isTraversalComponent (StringRef Component)
 
static bool pathHasTraversal (StringRef Path)
 
static ErrorOr< const detail::InMemoryNode * > llvm::vfs::lookupInMemoryNode (const InMemoryFileSystem &FS, detail::InMemoryDirectory *Dir, const Twine &P)
 
static Status getRedirectedFileStatus (const Twine &Path, bool UseExternalNames, Status ExternalStatus)
 
static void getVFSEntries (RedirectingFileSystem::Entry *SrcE, SmallVectorImpl< StringRef > &Path, SmallVectorImpl< YAMLVFSEntry > &Entries)
 

Function Documentation

◆ getRedirectedFileStatus()

static Status getRedirectedFileStatus ( const Twine Path,
bool  UseExternalNames,
Status  ExternalStatus 
)
static

◆ getVFSEntries()

static void getVFSEntries ( RedirectingFileSystem::Entry SrcE,
SmallVectorImpl< StringRef > &  Path,
SmallVectorImpl< YAMLVFSEntry > &  Entries 
)
static

Definition at line 2086 of file VirtualFileSystem.cpp.

◆ isTraversalComponent()

static bool isTraversalComponent ( StringRef  Component)
static

Definition at line 151 of file VirtualFileSystem.cpp.

References llvm::StringRef::equals().

Referenced by pathHasTraversal().

◆ pathHasTraversal()

static bool pathHasTraversal ( StringRef  Path)
static