LLVM 20.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/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/FileSystem/UniqueID.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/Path.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 <optional>
#include <string>
#include <system_error>
#include <utility>
#include <vector>

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::InMemoryFileSystem::DirIterator
 Adaptor from InMemoryDir::iterator to directory_iterator. More...
 
class  llvm::vfs::RedirectingFSDirIterImpl
 Directory iterator implementation for RedirectingFileSystem's directory entries. More...
 
class  llvm::vfs::RedirectingFileSystemParser
 A helper class to hold the common YAML parsing state. More...
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  llvm::vfs
 
namespace  llvm::vfs::detail
 

Enumerations

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

Functions

static bool isTraversalComponent (StringRef Component)
 
static bool pathHasTraversal (StringRef Path)
 
static sys::fs::UniqueID llvm::vfs::getUniqueID (hash_code Hash)
 
static sys::fs::UniqueID llvm::vfs::getFileID (sys::fs::UniqueID Parent, llvm::StringRef Name, llvm::StringRef Contents)
 
static sys::fs::UniqueID llvm::vfs::getDirectoryID (sys::fs::UniqueID Parent, llvm::StringRef Name)
 
static Status getRedirectedFileStatus (const Twine &OriginalPath, bool UseExternalNames, Status ExternalStatus)
 
static void getVFSEntries (RedirectingFileSystem::Entry *SrcE, SmallVectorImpl< StringRef > &Path, SmallVectorImpl< YAMLVFSEntry > &Entries)
 

Function Documentation

◆ getRedirectedFileStatus()

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

◆ getVFSEntries()

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

◆ isTraversalComponent()

static bool isTraversalComponent ( StringRef  Component)
static

Definition at line 169 of file VirtualFileSystem.cpp.

Referenced by pathHasTraversal().

◆ pathHasTraversal()

static bool pathHasTraversal ( StringRef  Path)
static