clang  8.0.0svn
Classes | Namespaces | Enumerations | Functions
VirtualFileSystem.cpp File Reference
#include "clang/Basic/VirtualFileSystem.h"
#include "clang/Basic/LLVM.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  clang::vfs::detail::InMemoryNode
 The in memory file system is a tree of Nodes. More...
 
class  clang::vfs::detail::InMemoryFile
 
class  clang::vfs::detail::InMemoryDirectory
 

Namespaces

 clang
 Dataflow Directional Tag Classes.
 
 clang::vfs
 
 clang::vfs::detail
 

Enumerations

enum  clang::vfs::detail::InMemoryNodeKind { clang::vfs::detail::IME_File, clang::vfs::detail::IME_Directory, clang::vfs::detail::IME_HardLink }
 
enum  EntryKind
 

Functions

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

Enumeration Type Documentation

◆ EntryKind

enum EntryKind

Definition at line 934 of file VirtualFileSystem.cpp.

Function Documentation

◆ getRedirectedFileStatus()

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

Definition at line 1771 of file VirtualFileSystem.cpp.

◆ getVFSEntries()

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

◆ isTraversalComponent()

static bool isTraversalComponent ( StringRef  Component)
static

Definition at line 155 of file VirtualFileSystem.cpp.

Referenced by pathHasTraversal().

◆ pathHasTraversal()

static bool pathHasTraversal ( StringRef  Path)
static

Definition at line 159 of file VirtualFileSystem.cpp.

References isTraversalComponent().

Referenced by clang::vfs::YAMLVFSWriter::addFileMapping().