class BlockCodeRegion

Declaration

class BlockCodeRegion : public CodeTextRegion { /* full declaration omitted */ };

Description

BlockCodeRegion - A region that represents code texts of blocks (closures). Blocks are represented with two kinds of regions. BlockCodeRegions represent the "code", while BlockDataRegions represent instances of blocks, which correspond to "code+data". The distinction is important, because like a closure a block captures the values of externally referenced variables.

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h:627

Inherits from: CodeTextRegion

Member Variables

private const clang::BlockDecl* BD
private clang::AnalysisDeclContext* AC
private clang::CanQualType locTy

Inherited from SubRegion:

protected superRegion

Method Overview

  • private BlockCodeRegion(const clang::BlockDecl * bd, clang::CanQualType lTy, clang::AnalysisDeclContext * ac, const clang::ento::CodeSpaceRegion * sreg)
  • public void Profile(llvm::FoldingSetNodeID & ID) const
  • private static void ProfileRegion(llvm::FoldingSetNodeID & ID, const clang::BlockDecl * BD, clang::CanQualType, const clang::AnalysisDeclContext *, const clang::ento::MemRegion *)
  • public static bool classof(const clang::ento::MemRegion * R)
  • public void dumpToStream(llvm::raw_ostream & os) const
  • public clang::AnalysisDeclContext * getAnalysisDeclContext() const
  • public const clang::BlockDecl * getDecl() const
  • public clang::QualType getLocationType() const

Inherited from CodeTextRegion:

Inherited from TypedRegion:

Inherited from SubRegion:

Inherited from MemRegion:

Inherited from FoldingSetBase::Node:

Methods

BlockCodeRegion(
    const clang::BlockDecl* bd,
    clang::CanQualType lTy,
    clang::AnalysisDeclContext* ac,
    const clang::ento::CodeSpaceRegion* sreg)

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h:634

Parameters

const clang::BlockDecl* bd
clang::CanQualType lTy
clang::AnalysisDeclContext* ac
const clang::ento::CodeSpaceRegion* sreg

void Profile(llvm::FoldingSetNodeID& ID) const

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h:661

Parameters

llvm::FoldingSetNodeID& ID

static void ProfileRegion(
    llvm::FoldingSetNodeID& ID,
    const clang::BlockDecl* BD,
    clang::CanQualType,
    const clang::AnalysisDeclContext*,
    const clang::ento::MemRegion*)

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h:642

Parameters

llvm::FoldingSetNodeID& ID
const clang::BlockDecl* BD
clang::CanQualType
const clang::AnalysisDeclContext*
const clang::ento::MemRegion*

static bool classof(
    const clang::ento::MemRegion* R)

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h:663

Parameters

const clang::ento::MemRegion* R

void dumpToStream(llvm::raw_ostream& os) const

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h:659

Parameters

llvm::raw_ostream& os

clang::AnalysisDeclContext*
getAnalysisDeclContext() const

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h:657

const clang::BlockDecl* getDecl() const

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h:652

clang::QualType getLocationType() const

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h:647