clang  6.0.0svn
Functions
SourceManager.cpp File Reference
#include "clang/Basic/SourceManager.h"
#include "clang/Basic/Diagnostic.h"
#include "clang/Basic/FileManager.h"
#include "clang/Basic/SourceManagerInternals.h"
#include "llvm/ADT/Optional.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/Support/Capacity.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cstring>
Include dependency graph for SourceManager.cpp:

Go to the source code of this file.

Functions

template<typename LocType >
static bool isInvalid (LocType Loc, bool *Invalid)
 
static LLVM_ATTRIBUTE_NOINLINE void ComputeLineNumbers (DiagnosticsEngine &Diag, ContentCache *FI, llvm::BumpPtrAllocator &Alloc, const SourceManager &SM, bool &Invalid)
 
static Optional< llvm::sys::fs::UniqueID > getActualFileUID (const FileEntry *File)
 Retrieve the inode for the given file entry, if possible. More...
 
static bool MoveUpIncludeHierarchy (std::pair< FileID, unsigned > &Loc, const SourceManager &SM)
 Given a decomposed source location, move it up the include/expansion stack to the parent source location. More...
 

Function Documentation

◆ ComputeLineNumbers()

static void ComputeLineNumbers ( DiagnosticsEngine Diag,
ContentCache FI,
llvm::BumpPtrAllocator &  Alloc,
const SourceManager SM,
bool Invalid 
)
static

◆ getActualFileUID()

static Optional<llvm::sys::fs::UniqueID> getActualFileUID ( const FileEntry File)
static

Retrieve the inode for the given file entry, if possible.

This routine involves a system call, and therefore should only be used in non-performance-critical code.

Definition at line 1552 of file SourceManager.cpp.

References clang::FileEntry::getName(), and clang::None.

Referenced by clang::SourceManager::translateFile().

◆ isInvalid()

template<typename LocType >
static bool isInvalid ( LocType  Loc,
bool Invalid 
)
static

◆ MoveUpIncludeHierarchy()

static bool MoveUpIncludeHierarchy ( std::pair< FileID, unsigned > &  Loc,
const SourceManager SM 
)
static

Given a decomposed source location, move it up the include/expansion stack to the parent source location.

If this is possible, return the decomposed version of the parent in Loc and return false. If Loc is the top-level entry, return true and don't modify it.

Definition at line 1968 of file SourceManager.cpp.

References clang::SourceManager::getDecomposedIncludedLoc().

Referenced by clang::SourceManager::isInTheSameTranslationUnit().