IDA C++ SDK 9.2
Loading...
Searching...
No Matches
ctry_t Struct Reference

C++ Try statement. More...

#include <hexrays.hpp>

Inheritance diagram for ctry_t:
cblock_t qlist< cinsn_t >

Public Member Functions

 DECLARE_COMPARISONS (ctry_t)
void print (const citem_t *parent, int indent, vc_printer_t &vp) const
Public Member Functions inherited from cblock_t
 DECLARE_COMPARISONS (cblock_t)
Public Member Functions inherited from qlist< cinsn_t >
 DEFINE_LIST_ITERATOR (iterator,, friend class const_iterator;) DEFINE_LIST_ITERATOR(const_iterator
 const_iterator (const iterator &x)
 DEFINE_REVERSE_ITERATOR (reverse_iterator, iterator) DEFINE_REVERSE_ITERATOR(const_reverse_iterator
const_iterator qlist (void)
 Constructor.
 qlist (const qlist< cinsn_t > &x)
 Constructor - creates a qlist identical to 'x'.
 ~qlist (void)
 Destructor.

Public Attributes

ccatchvec_t catchs
 "catch all", if present, must be the last element.
size_t old_state = 0
 old state number (internal, MSVC related)
size_t new_state = 0
 new state number (internal, MSVC related)
bool is_wind = false
 Is C++ wind statement?
Public Attributes inherited from qlist< cinsn_t >
 const

Additional Inherited Members

Public Types inherited from qlist< cinsn_t >
typedef cinsn_t value_type

Detailed Description

C++ Try statement.

This structure is also used to represent wind statements.

Member Function Documentation

◆ DECLARE_COMPARISONS()

ctry_t::DECLARE_COMPARISONS ( ctry_t )

◆ print()

void ctry_t::print ( const citem_t * parent,
int indent,
vc_printer_t & vp ) const

Member Data Documentation

◆ catchs

ccatchvec_t ctry_t::catchs

"catch all", if present, must be the last element.

wind-statements must have "catch all" and nothing else.

◆ old_state

size_t ctry_t::old_state = 0

old state number (internal, MSVC related)

◆ new_state

size_t ctry_t::new_state = 0

new state number (internal, MSVC related)

◆ is_wind

bool ctry_t::is_wind = false

Is C++ wind statement?

(not part of the C++ language) MSVC generates code like the following to keep track of constructed objects and destroy them upon an exception. Example:

// an object is constructed at this point __wind { // some other code that may throw an exception } __unwind { // this code is executed only if there was an exception // in the __wind block. normally here we destroy the object // after that the exception is passed to the // exception handler, regular control flow is interrupted here. } // regular logic continues here, if there were no exceptions // also the object's destructor is called


The documentation for this struct was generated from the following file: