class EHScopeStack::Cleanup

Declaration

class EHScopeStack::Cleanup { /* full declaration omitted */ };

Description

Information for lazily generating a cleanup. Subclasses must be POD-like: cleanups will not be destructed, and they will be allocated on the cleanup stack and freely copied and moved around. Cleanup implementations should generally be declared in an anonymous namespace.

Declared at: clang/lib/CodeGen/EHScopeStack.h:141

Method Overview

  • public Cleanup(const clang::CodeGen::EHScopeStack::Cleanup &)
  • public Cleanup(clang::CodeGen::EHScopeStack::Cleanup &&)
  • public Cleanup()
  • public virtual void Emit(clang::CodeGen::CodeGenFunction & CGF, clang::CodeGen::EHScopeStack::Cleanup::Flags flags)
  • private virtual void anchor()
  • public virtual bool isRedundantBeforeReturn()
  • protected ~Cleanup()

Methods

Cleanup(
    const clang::CodeGen::EHScopeStack::Cleanup&)

Declared at: clang/lib/CodeGen/EHScopeStack.h:149

Parameters

const clang::CodeGen::EHScopeStack::Cleanup&

Cleanup(clang::CodeGen::EHScopeStack::Cleanup&&)

Declared at: clang/lib/CodeGen/EHScopeStack.h:150

Parameters

clang::CodeGen::EHScopeStack::Cleanup&&

Cleanup()

Declared at: clang/lib/CodeGen/EHScopeStack.h:151

virtual void Emit(
    clang::CodeGen::CodeGenFunction& CGF,
    clang::CodeGen::EHScopeStack::Cleanup::Flags
        flags)

Description

Emit the cleanup. For normal cleanups, this is run in the same EH context as when the cleanup was pushed, i.e. the immediately-enclosing context of the cleanup scope. For EH cleanups, this is run in a terminate context.

Declared at: clang/lib/CodeGen/EHScopeStack.h:191

Parameters

clang::CodeGen::CodeGenFunction& CGF
clang::CodeGen::EHScopeStack::Cleanup::Flags flags

virtual void anchor()

Declared at: clang/lib/CodeGen/EHScopeStack.h:143

virtual bool isRedundantBeforeReturn()

Declared at: clang/lib/CodeGen/EHScopeStack.h:153

~Cleanup()

Declared at: clang/lib/CodeGen/EHScopeStack.h:146