class DebugVariable

Declaration

class DebugVariable { /* full declaration omitted */ };

Description

Identifies a unique instance of a variable. Storage for identifying a potentially inlined instance of a variable, or a fragment thereof. This guarantees that exactly one variable instance may be identified by this class, even when that variable is a fragment of an aggregate variable and/or there is another inlined instance of the same source code variable nearby. This class does not necessarily uniquely identify that variable: it is possible that a DebugVariable with different parameters may point to the same variable instance, but not that one DebugVariable points to multiple variable instances.

Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:3620

Member Variables

private const llvm::DILocalVariable* Variable
private Optional<llvm::DebugVariable::FragmentInfo> Fragment
private const llvm::DILocation* InlinedAt
private static const llvm::DebugVariable::FragmentInfo DefaultFragment
Fragment that will overlap all other fragments. Used as default when caller demands a fragment.

Method Overview

  • public DebugVariable(const llvm::DILocalVariable * Var, Optional<llvm::DebugVariable::FragmentInfo> FragmentInfo, const llvm::DILocation * InlinedAt)
  • public DebugVariable(const llvm::DILocalVariable * Var, const llvm::DIExpression * DIExpr, const llvm::DILocation * InlinedAt)
  • public Optional<llvm::DebugVariable::FragmentInfo> getFragment() const
  • public llvm::DebugVariable::FragmentInfo getFragmentOrDefault() const
  • public const llvm::DILocation * getInlinedAt() const
  • public const llvm::DILocalVariable * getVariable() const
  • public static bool isDefaultFragment(const llvm::DebugVariable::FragmentInfo F)

Methods

DebugVariable(
    const llvm::DILocalVariable* Var,
    Optional<llvm::DebugVariable::FragmentInfo>
        FragmentInfo,
    const llvm::DILocation* InlinedAt)

Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:3632

Parameters

const llvm::DILocalVariable* Var
Optional<llvm::DebugVariable::FragmentInfo> FragmentInfo
const llvm::DILocation* InlinedAt

DebugVariable(const llvm::DILocalVariable* Var,
              const llvm::DIExpression* DIExpr,
              const llvm::DILocation* InlinedAt)

Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:3636

Parameters

const llvm::DILocalVariable* Var
const llvm::DIExpression* DIExpr
const llvm::DILocation* InlinedAt

Optional<llvm::DebugVariable::FragmentInfo>
getFragment() const

Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:3643

llvm::DebugVariable::FragmentInfo
getFragmentOrDefault() const

Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:3646

const llvm::DILocation* getInlinedAt() const

Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:3644

const llvm::DILocalVariable* getVariable() const

Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:3642

static bool isDefaultFragment(
    const llvm::DebugVariable::FragmentInfo F)

Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:3650

Parameters

const llvm::DebugVariable::FragmentInfo F