clang 19.0.0git
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 "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CodeGen/CGDebugInfo.h"

Public Member Functions

 ApplyDebugLocation (CodeGenFunction &CGF, SourceLocation TemporaryLocation)
 Set the location to the (valid) TemporaryLocation.
 
 ApplyDebugLocation (CodeGenFunction &CGF, const Expr *E)
 
 ApplyDebugLocation (CodeGenFunction &CGF, llvm::DebugLoc Loc)
 
 ApplyDebugLocation (ApplyDebugLocation &&Other)
 
ApplyDebugLocationoperator= (ApplyDebugLocation &&Other)
 
 ~ApplyDebugLocation ()
 

Static Public Member Functions

static ApplyDebugLocation CreateArtificial (CodeGenFunction &CGF)
 Apply TemporaryLocation if it is valid.
 
static ApplyDebugLocation CreateDefaultArtificial (CodeGenFunction &CGF, SourceLocation TemporaryLocation)
 Apply TemporaryLocation if it is valid.
 
static ApplyDebugLocation CreateEmpty (CodeGenFunction &CGF)
 Set the IRBuilder to not attach debug locations.
 

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 823 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 84 of file CGDebugInfo.cpp.

◆ ApplyDebugLocation() [2/4]

ApplyDebugLocation::ApplyDebugLocation ( CodeGenFunction CGF,
const Expr E 
)

Definition at line 127 of file CGDebugInfo.cpp.

References clang::Expr::getExprLoc().

◆ ApplyDebugLocation() [3/4]

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

◆ ApplyDebugLocation() [4/4]

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

Definition at line 837 of file CGDebugInfo.h.

References clang::Other.

◆ ~ApplyDebugLocation()

ApplyDebugLocation::~ApplyDebugLocation ( )

Definition at line 143 of file CGDebugInfo.cpp.

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

Member Function Documentation

◆ CreateArtificial()

static ApplyDebugLocation clang::CodeGen::ApplyDebugLocation::CreateArtificial ( CodeGenFunction CGF)
inlinestatic

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 863 of file CGDebugInfo.h.

Referenced by callSpecialFunction(), clang::CodeGen::CGOpenMPRuntime::checkAndEmitSharedLastprivateConditional(), clang::CodeGen::CGOpenMPRuntime::emitThreadPrivateVarDefinition(), generateByrefCopyHelper(), and generateByrefDisposeHelper().

◆ CreateDefaultArtificial()

static ApplyDebugLocation clang::CodeGen::ApplyDebugLocation::CreateDefaultArtificial ( CodeGenFunction CGF,
SourceLocation  TemporaryLocation 
)
inlinestatic

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 870 of file CGDebugInfo.h.

Referenced by clang::CodeGen::CGOpenMPRuntime::emitCall(), clang::CodeGen::CGOpenMPRuntime::emitForStaticFinish(), clang::CodeGen::CGOpenMPRuntime::emitForStaticInit(), emitScanBasedDirective(), and clang::CodeGen::CGOpenMPRuntime::getThreadID().

◆ CreateEmpty()

static ApplyDebugLocation clang::CodeGen::ApplyDebugLocation::CreateEmpty ( CodeGenFunction CGF)
inlinestatic

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 880 of file CGDebugInfo.h.

Referenced by clang::CodeGen::CGOpenMPRuntime::emitIfClause(), emitInterWarpCopyFunction(), clang::CodeGen::CGOpenMPRuntime::emitLastprivateConditionalUpdate(), clang::CodeGen::CGOpenMPRuntimeGPU::emitReduction(), and clang::CodeGen::CGOpenMPRuntime::emitThreadPrivateVarDefinition().

◆ operator=()

ApplyDebugLocation & clang::CodeGen::ApplyDebugLocation::operator= ( ApplyDebugLocation &&  Other)
inline

Definition at line 842 of file CGDebugInfo.h.

References clang::Other.


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