clang  14.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. More...
 
 ApplyDebugLocation (CodeGenFunction &CGF, const Expr *E)
 
 ApplyDebugLocation (CodeGenFunction &CGF, llvm::DebugLoc Loc)
 
 ApplyDebugLocation (ApplyDebugLocation &&Other)
 
ApplyDebugLocationoperator= (ApplyDebugLocation &&)=default
 
 ~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 778 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 81 of file CGDebugInfo.cpp.

◆ ApplyDebugLocation() [2/4]

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

Definition at line 124 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 792 of file CGDebugInfo.h.

◆ ~ApplyDebugLocation()

ApplyDebugLocation::~ApplyDebugLocation ( )

Definition at line 140 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 810 of file CGDebugInfo.h.

Referenced by callSpecialFunction(), clang::CodeGen::CodeGenFunction::createAtExitStub(), clang::CodeGen::CodeGenFunction::createTLSAtExitStub(), clang::CodeGen::CGOpenMPRuntime::emitDeclareTargetVarDefinition(), generateByrefCopyHelper(), generateByrefDisposeHelper(), clang::CodeGen::CodeGenFunction::GenerateCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateCXXGlobalCleanUpFunc(), clang::CodeGen::CodeGenFunction::GenerateCXXGlobalInitFunc(), clang::CodeGen::CodeGenFunction::GenerateCXXGlobalVarDeclInitFunc(), clang::CodeGen::CodeGenFunction::generateDestroyHelper(), clang::CodeGen::CodeGenFunction::GenerateDestroyHelperFunction(), clang::CodeGen::CodeGenFunction::generateThunk(), and clang::CodeGen::CodeGenFunction::StartThunk().

◆ CreateDefaultArtificial()

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

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

Referenced by clang::CodeGen::CGOpenMPRuntime::emitDeclareTargetVarDefinition(), clang::CodeGen::CGOpenMPRuntime::emitIfClause(), emitInterWarpCopyFunction(), clang::CodeGen::CodeGenFunction::GenerateBlockFunction(), clang::CodeGen::CodeGenFunction::GenerateCXXGlobalCleanUpFunc(), clang::CodeGen::CodeGenFunction::GenerateCXXGlobalInitFunc(), and clang::CodeGen::CodeGenFunction::StartThunk().

◆ operator=()

ApplyDebugLocation& clang::CodeGen::ApplyDebugLocation::operator= ( ApplyDebugLocation &&  )
default

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