LLVM 22.0.0git
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 <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...
class  file_status
 Represents the result of a call to sys::fs::status(). More...
class  UniqueID

Namespaces

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

Typedefs

using file_t

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 }
enum class  file_type
 An enumeration for the file system's view of the type. More...
enum  perms

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)

Variables

LLVM_ABI const file_t kInvalidFile

Typedef Documentation

◆ file_t

Definition at line 56 of file FileSystem.h.

Enumeration Type Documentation

◆ file_type

enum class llvm::sys::fs::file_type
strong

An enumeration for the file system's view of the type.

Definition at line 62 of file FileSystem.h.

◆ perms

Definition at line 82 of file FileSystem.h.

Function Documentation

◆ getRedirectedFileStatus()

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

◆ getVFSEntries()

◆ isTraversalComponent()

bool isTraversalComponent ( StringRef Component)
static

Definition at line 169 of file VirtualFileSystem.cpp.

Referenced by pathHasTraversal().

◆ pathHasTraversal()

bool pathHasTraversal ( StringRef Path)
static

Variable Documentation

◆ kInvalidFile

LLVM_ABI const file_t llvm::sys::fs::kInvalidFile