class EHScopeStack::ConditionalCleanup

Declaration

template <class T, class... As>
class EHScopeStack::ConditionalCleanup : public Cleanup { /* full declaration omitted */ };

Description

ConditionalCleanup stores the saved form of its parameters, then restores them and performs the cleanup.

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

Inherits from: EHScopeStack::Cleanup

Templates

T
As

Member Variables

private clang::CodeGen::EHScopeStack::ConditionalCleanup:: SavedTuple Saved

Method Overview

  • public ConditionalCleanup<T, As...>(typename DominatingValue<As>::saved_type... A)
  • public ConditionalCleanup<T, As...>(clang::CodeGen::EHScopeStack::ConditionalCleanup::SavedTuple Tuple)
  • private void Emit(clang::CodeGen::CodeGenFunction & CGF, clang::CodeGen::EHScopeStack::Cleanup::Flags flags)
  • private template <std::size_t... Is>T restore(clang::CodeGen::CodeGenFunction & CGF, std::index_sequence<Is...>)

Inherited from EHScopeStack::Cleanup:

Methods

ConditionalCleanup<T, As...>(
    typename DominatingValue<As>::saved_type... A)

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

Parameters

typename DominatingValue<As>::saved_type... A

ConditionalCleanup<T, As...>(
    clang::CodeGen::EHScopeStack::
        ConditionalCleanup::SavedTuple Tuple)

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

Parameters

clang::CodeGen::EHScopeStack::ConditionalCleanup:: SavedTuple Tuple

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:208

Parameters

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

template <std::size_t... Is>
T restore(clang::CodeGen::CodeGenFunction& CGF,
          std::index_sequence<Is...>)

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

Templates

std::size_t Is

Parameters

clang::CodeGen::CodeGenFunction& CGF
std::index_sequence<Is...>