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

#include <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 ()
 

Static Public Member Functions

static ApplyDebugLocation CreateArtificial (CodeGenFunction &CGF)
 Apply TemporaryLocation if it is valid. Otherwise switch to an artificial debug location that has a valid scope, but no line information. More...
 
static ApplyDebugLocation CreateDefaultArtificial (CodeGenFunction &CGF, SourceLocation TemporaryLocation)
 Apply TemporaryLocation if it is valid. Otherwise switch to an artificial debug location that has a valid scope, but no line information. More...
 
static ApplyDebugLocation CreateEmpty (CodeGenFunction &CGF)
 
static ApplyDebugLocation CreateDefaultEmpty (CodeGenFunction &CGF, SourceLocation TemporaryLocation)
 Apply TemporaryLocation if it is valid. Otherwise 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 497 of file CGDebugInfo.h.

Constructor & Destructor Documentation

ApplyDebugLocation::ApplyDebugLocation ( CodeGenFunction CGF,
SourceLocation  TemporaryLocation 
)

Set the location to the (valid) TemporaryLocation.

Definition at line 57 of file CGDebugInfo.cpp.

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

Definition at line 88 of file CGDebugInfo.cpp.

References clang::Expr::getExprLoc().

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

Member Function Documentation

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

Referenced by clang::CodeGen::CodeGenFunction::GenerateCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateCXXGlobalDtorsFunc(), clang::CodeGen::CodeGenFunction::GenerateCXXGlobalInitFunc(), and clang::CodeGen::CodeGenFunction::GenerateDestroyHelperFunction().

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

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

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

Apply TemporaryLocation if it is valid. Otherwise set the IRBuilder to not attach debug locations.

Definition at line 549 of file CGDebugInfo.h.

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 funciton prologue.

Definition at line 542 of file CGDebugInfo.h.

Referenced by clang::CodeGen::CodeGenFunction::EmitIfStmt(), emitOMPIfClause(), clang::CodeGen::CodeGenFunction::GenerateBlockFunction(), clang::CodeGen::CodeGenFunction::GenerateCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateCXXGlobalDtorsFunc(), clang::CodeGen::CodeGenFunction::GenerateCXXGlobalInitFunc(), and clang::CodeGen::CodeGenFunction::GenerateDestroyHelperFunction().


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