clang 8.0.0

Public Member Functions | Static Public Member Functions | List of all members
clang::CodeGen::ApplyDebugLocation Class Reference

A scoped helper to set the current debug location to the specified location or preferred location of the specified Expr. More...

`#include "/work/www-prereleases/8.0.0/rc2/builddocs/llvm.src/tools/clang/lib/CodeGen/CGDebugInfo.h"`

## Public Member Functions
| ApplyDebugLocation (CodeGenFunction &CGF, SourceLocation TemporaryLocation)
| Set the location to the (valid) TemporaryLocation. More...
| ApplyDebugLocation (CodeGenFunction &CGF, const Expr *E)
| ApplyDebugLocation (CodeGenFunction &CGF, llvm::DebugLoc Loc)
| ApplyDebugLocation (ApplyDebugLocation &&Other)
| ~ApplyDebugLocation ()

## Static Public Member Functions
static ApplyDebugLocation | CreateArtificial (CodeGenFunction &CGF)
| Apply TemporaryLocation if it is valid. More...
static ApplyDebugLocation | CreateDefaultArtificial (CodeGenFunction &CGF, SourceLocation TemporaryLocation)
| Apply TemporaryLocation if it is valid. More...
static ApplyDebugLocation | CreateEmpty (CodeGenFunction &CGF)
| Set the IRBuilder to not attach debug locations. More...

## Detailed Description

A scoped helper to set the current debug location to the specified location or preferred location of the specified Expr.

Definition at line 684 of file CGDebugInfo.h.

## Constructor & Destructor Documentation

## ◆ ApplyDebugLocation() [1/4]

ApplyDebugLocation::ApplyDebugLocation | ( | CodeGenFunction & | CGF,
|  | SourceLocation | TemporaryLocation
| ) |  |

Set the location to the (valid) TemporaryLocation.

Definition at line 79 of file CGDebugInfo.cpp.

References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::getDebugInfo(), and clang::SourceLocation::isValid().

## ◆ ApplyDebugLocation() [2/4]

ApplyDebugLocation::ApplyDebugLocation | ( | CodeGenFunction & | CGF,
|  | const Expr * | E
| ) |  |

Definition at line 121 of file CGDebugInfo.cpp.

References clang::Expr::getExprLoc().

## ◆ ApplyDebugLocation() [3/4]

ApplyDebugLocation::ApplyDebugLocation | ( | CodeGenFunction & | CGF,
|  | llvm::DebugLoc | Loc
| ) |  |

Definition at line 126 of file CGDebugInfo.cpp.

References clang::CodeGen::CodeGenFunction::Builder, and clang::CodeGen::CodeGenFunction::getDebugInfo().

## ◆ ApplyDebugLocation() [4/4]

clang::CodeGen::ApplyDebugLocation::ApplyDebugLocation | ( | ApplyDebugLocation && | Other | ) |
| inline

Definition at line 698 of file CGDebugInfo.h.

## ◆ ~ApplyDebugLocation()

ApplyDebugLocation::~ApplyDebugLocation | ( |  | ) |

Definition at line 137 of file CGDebugInfo.cpp.

References clang::CodeGen::CodeGenFunction::Builder.

## Member Function Documentation

## ◆ CreateArtificial()

static ApplyDebugLocation clang::CodeGen::ApplyDebugLocation::CreateArtificial | ( | CodeGenFunction & | CGF | ) |
| inline static

Apply TemporaryLocation if it is valid.

Otherwise switch to an artificial debug location that has a valid scope, but no line information.

Artificial locations are useful when emitting compiler-generated helper functions that have no source location associated with them. The DWARF specification allows the compiler to use the special line number 0 to indicate code that can not be attributed to any source location. Note that passing an empty SourceLocation to CGDebugInfo::setLocation() will result in the last valid location being reused.

Definition at line 715 of file CGDebugInfo.h.

Referenced by emitCXXDestructor(), clang::CodeGen::emitDeclareTargetVarDefinition(), clang::CodeGen::CodeGenFunction::GenerateCXXGlobalDtorsFunc(), clang::CodeGen::CodeGenFunction::GenerateCXXGlobalInitFunc(), clang::CodeGen::CodeGenFunction::generateThunk(), GetIntrinsic(), and clang::CodeGen::CodeGenFunction::StartThunk().

## ◆ CreateDefaultArtificial()

static ApplyDebugLocation clang::CodeGen::ApplyDebugLocation::CreateDefaultArtificial | ( | CodeGenFunction & | CGF,
|  | SourceLocation | TemporaryLocation
| ) |  |
| inline static

Apply TemporaryLocation if it is valid.

Otherwise switch to an artificial debug location that has a valid scope, but no line information.

Definition at line 722 of file CGDebugInfo.h.

Referenced by clang::CodeGen::CodeGenFunction::EmitAutoVarInit(), and clang::CodeGen::CGOpenMPRuntime::emitCall().

## ◆ CreateEmpty()

static ApplyDebugLocation clang::CodeGen::ApplyDebugLocation::CreateEmpty | ( | CodeGenFunction & | CGF | ) |
| inline static

Set the IRBuilder to not attach debug locations.

Note that passing an empty SourceLocation to CGDebugInfo::setLocation() will result in the last valid location being reused. Note that all instructions that do not have a location at the beginning of a function are counted towards to function prologue.

Definition at line 732 of file CGDebugInfo.h.

Referenced by emitCXXDestructor(), clang::CodeGen::emitDeclareTargetVarDefinition(), emitInterWarpCopyFunction(), clang::CodeGen::CGOpenMPRuntime::emitOMPIfClause(), clang::CodeGen::CGOpenMPRuntimeNVPTX::emitParallelCall(), clang::CodeGen::CGOpenMPRuntimeNVPTX::emitTeamsOutlinedFunction(), clang::CodeGen::CodeGenFunction::GenerateBlockFunction(), clang::CodeGen::CodeGenFunction::GenerateCXXGlobalDtorsFunc(), clang::CodeGen::CodeGenFunction::GenerateCXXGlobalInitFunc(), GetIntrinsic(), and clang::CodeGen::CodeGenFunction::StartThunk().

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

- lib/CodeGen/CGDebugInfo.h
- lib/CodeGen/CGDebugInfo.cpp