clang 22.0.0git
clang::FullSourceLoc Class Reference

A SourceLocation and its associated SourceManager. More...

#include "clang/Basic/SourceLocation.h"

Inheritance diagram for clang::FullSourceLoc:
[legend]

Classes

struct  BeforeThanCompare
 Comparison function class, useful for sorting FullSourceLocs. More...

Public Member Functions

 FullSourceLoc ()=default
 Creates a FullSourceLoc where isValid() returns false.
 FullSourceLoc (SourceLocation Loc, const SourceManager &SM)
bool hasManager () const
 Checks whether the SourceManager is present.
const SourceManagergetManager () const
FileID getFileID () const
FullSourceLoc getExpansionLoc () const
FullSourceLoc getSpellingLoc () const
FullSourceLoc getFileLoc () const
PresumedLoc getPresumedLoc (bool UseLineDirectives=true) const
bool isMacroArgExpansion (FullSourceLoc *StartLoc=nullptr) const
FullSourceLoc getImmediateMacroCallerLoc () const
std::pair< FullSourceLoc, StringRef > getModuleImportLoc () const
unsigned getFileOffset () const
unsigned getExpansionLineNumber (bool *Invalid=nullptr) const
unsigned getExpansionColumnNumber (bool *Invalid=nullptr) const
FileIDAndOffset getDecomposedExpansionLoc () const
 Decompose the underlying SourceLocation into a raw (FileID + Offset) pair, after walking through all expansion records.
unsigned getSpellingLineNumber (bool *Invalid=nullptr) const
unsigned getSpellingColumnNumber (bool *Invalid=nullptr) const
const char * getCharacterData (bool *Invalid=nullptr) const
unsigned getLineNumber (bool *Invalid=nullptr) const
unsigned getColumnNumber (bool *Invalid=nullptr) const
const FileEntrygetFileEntry () const
OptionalFileEntryRef getFileEntryRef () const
StringRef getBufferData (bool *Invalid=nullptr) const
 Return a StringRef to the source buffer data for the specified FileID.
FileIDAndOffset getDecomposedLoc () const
 Decompose the specified location into a raw FileID + Offset pair.
bool isInSystemHeader () const
bool isBeforeInTranslationUnitThan (SourceLocation Loc) const
 Determines the order of 2 source locations in the translation unit.
bool isBeforeInTranslationUnitThan (FullSourceLoc Loc) const
 Determines the order of 2 source locations in the translation unit.
void dump () const
 Prints information about this FullSourceLoc to stderr.
Public Member Functions inherited from clang::SourceLocation
bool isFileID () const
bool isMacroID () const
bool isValid () const
 Return true if this is a valid SourceLocation object.
bool isInvalid () const
SourceLocation getLocWithOffset (IntTy Offset) const
 Return a source location with the specified offset from this SourceLocation.
UIntTy getRawEncoding () const
 When a SourceLocation itself cannot be used, this returns an (opaque) 32-bit integer encoding for it.
void * getPtrEncoding () const
 When a SourceLocation itself cannot be used, this returns an (opaque) pointer encoding for it.
unsigned getHashValue () const
void print (raw_ostream &OS, const SourceManager &SM) const
std::string printToString (const SourceManager &SM) const
void dump (const SourceManager &SM) const

Friends

bool operator== (const FullSourceLoc &LHS, const FullSourceLoc &RHS)
bool operator!= (const FullSourceLoc &LHS, const FullSourceLoc &RHS)

Additional Inherited Members

Public Types inherited from clang::SourceLocation
using UIntTy = uint32_t
using IntTy = int32_t
Static Public Member Functions inherited from clang::SourceLocation
static SourceLocation getFromRawEncoding (UIntTy Encoding)
 Turn a raw encoding of a SourceLocation object into a real SourceLocation.
static SourceLocation getFromPtrEncoding (const void *Encoding)
 Turn a pointer encoding of a SourceLocation object back into a real SourceLocation.
static bool isPairOfFileLocations (SourceLocation Start, SourceLocation End)

Detailed Description

A SourceLocation and its associated SourceManager.

This is useful for argument passing to functions that expect both objects.

This class does not guarantee the presence of either the SourceManager or a valid SourceLocation. Clients should use isValid() and hasManager() before calling the member functions.

Definition at line 371 of file SourceLocation.h.

Constructor & Destructor Documentation

◆ FullSourceLoc() [1/2]

◆ FullSourceLoc() [2/2]

clang::FullSourceLoc::FullSourceLoc ( SourceLocation Loc,
const SourceManager & SM )
inlineexplicit

Definition at line 378 of file SourceLocation.h.

References SM, and clang::SourceLocation::SourceManager.

Member Function Documentation

◆ dump()

LLVM_DUMP_METHOD void FullSourceLoc::dump ( ) const

Prints information about this FullSourceLoc to stderr.

This is useful for debugging.

Definition at line 263 of file SourceLocation.cpp.

References clang::SourceLocation::dump().

◆ getBufferData()

StringRef FullSourceLoc::getBufferData ( bool * Invalid = nullptr) const

Return a StringRef to the source buffer data for the specified FileID.

Definition at line 272 of file SourceLocation.cpp.

References clang::Invalid, and clang::SourceLocation::isValid().

◆ getCharacterData()

const char * FullSourceLoc::getCharacterData ( bool * Invalid = nullptr) const

Definition at line 267 of file SourceLocation.cpp.

References clang::Invalid, and clang::SourceLocation::isValid().

◆ getColumnNumber()

unsigned FullSourceLoc::getColumnNumber ( bool * Invalid = nullptr) const

◆ getDecomposedExpansionLoc()

FileIDAndOffset FullSourceLoc::getDecomposedExpansionLoc ( ) const

Decompose the underlying SourceLocation into a raw (FileID + Offset) pair, after walking through all expansion records.

See also
SourceManager::getDecomposedExpansionLoc

Definition at line 167 of file SourceLocation.cpp.

Referenced by adjustColumnPos().

◆ getDecomposedLoc()

FileIDAndOffset FullSourceLoc::getDecomposedLoc ( ) const

Decompose the specified location into a raw FileID + Offset pair.

The first element is the FileID, the second is the offset from the start of the buffer of the location.

Definition at line 277 of file SourceLocation.cpp.

Referenced by clang::tooling::AtomicChange::AtomicChange(), and compareCrossTUSourceLocs().

◆ getExpansionColumnNumber()

unsigned FullSourceLoc::getExpansionColumnNumber ( bool * Invalid = nullptr) const

◆ getExpansionLineNumber()

unsigned FullSourceLoc::getExpansionLineNumber ( bool * Invalid = nullptr) const

◆ getExpansionLoc()

◆ getFileEntry()

const FileEntry * FullSourceLoc::getFileEntry ( ) const

Definition at line 223 of file SourceLocation.cpp.

References getFileID(), and clang::SourceLocation::isValid().

◆ getFileEntryRef()

OptionalFileEntryRef FullSourceLoc::getFileEntryRef ( ) const

◆ getFileID()

◆ getFileLoc()

FullSourceLoc FullSourceLoc::getFileLoc ( ) const

◆ getFileOffset()

unsigned FullSourceLoc::getFileOffset ( ) const

Definition at line 208 of file SourceLocation.cpp.

References clang::SourceLocation::isValid().

Referenced by getColumnNumber(), and getLineNumber().

◆ getImmediateMacroCallerLoc()

FullSourceLoc FullSourceLoc::getImmediateMacroCallerLoc ( ) const

Definition at line 193 of file SourceLocation.cpp.

References FullSourceLoc(), and clang::SourceLocation::isValid().

◆ getLineNumber()

unsigned FullSourceLoc::getLineNumber ( bool * Invalid = nullptr) const

◆ getManager()

◆ getModuleImportLoc()

std::pair< FullSourceLoc, StringRef > FullSourceLoc::getModuleImportLoc ( ) const

Definition at line 198 of file SourceLocation.cpp.

References FullSourceLoc(), and clang::SourceLocation::isValid().

◆ getPresumedLoc()

PresumedLoc FullSourceLoc::getPresumedLoc ( bool UseLineDirectives = true) const

◆ getSpellingColumnNumber()

unsigned FullSourceLoc::getSpellingColumnNumber ( bool * Invalid = nullptr) const

Definition at line 248 of file SourceLocation.cpp.

References clang::Invalid, and clang::SourceLocation::isValid().

◆ getSpellingLineNumber()

unsigned FullSourceLoc::getSpellingLineNumber ( bool * Invalid = nullptr) const

Definition at line 243 of file SourceLocation.cpp.

References clang::Invalid, and clang::SourceLocation::isValid().

Referenced by warnAboutAmbiguousFunction().

◆ getSpellingLoc()

FullSourceLoc FullSourceLoc::getSpellingLoc ( ) const

◆ hasManager()

bool clang::FullSourceLoc::hasManager ( ) const
inline

Checks whether the SourceManager is present.

Definition at line 382 of file SourceLocation.h.

Referenced by clang::DiagnosticRenderer::emitDiagnostic(), and clang::operator<<().

◆ isBeforeInTranslationUnitThan() [1/2]

bool clang::FullSourceLoc::isBeforeInTranslationUnitThan ( FullSourceLoc Loc) const
inline

Determines the order of 2 source locations in the translation unit.

Returns
true if this source location comes before 'Loc', false otherwise.

Definition at line 441 of file SourceLocation.h.

References FullSourceLoc(), isBeforeInTranslationUnitThan(), and clang::SourceLocation::isValid().

◆ isBeforeInTranslationUnitThan() [2/2]

bool FullSourceLoc::isBeforeInTranslationUnitThan ( SourceLocation Loc) const

Determines the order of 2 source locations in the translation unit.

Returns
true if this source location comes before 'Loc', false otherwise.

Definition at line 258 of file SourceLocation.cpp.

References clang::SourceLocation::isValid().

Referenced by compareCall(), compareControlFlow(), compareCrossTUSourceLocs(), comparePiece(), isBeforeInTranslationUnitThan(), and clang::FullSourceLoc::BeforeThanCompare::operator()().

◆ isInSystemHeader()

bool FullSourceLoc::isInSystemHeader ( ) const

Definition at line 253 of file SourceLocation.cpp.

References clang::SourceLocation::isValid().

◆ isMacroArgExpansion()

bool FullSourceLoc::isMacroArgExpansion ( FullSourceLoc * StartLoc = nullptr) const

Definition at line 188 of file SourceLocation.cpp.

References FullSourceLoc(), and clang::SourceLocation::isValid().

◆ operator!=

bool operator!= ( const FullSourceLoc & LHS,
const FullSourceLoc & RHS )
friend

Definition at line 466 of file SourceLocation.h.

References FullSourceLoc().

◆ operator==

bool operator== ( const FullSourceLoc & LHS,
const FullSourceLoc & RHS )
friend

Definition at line 460 of file SourceLocation.h.

References FullSourceLoc(), and clang::SourceLocation::getRawEncoding().


The documentation for this class was generated from the following files: