#include <vector>#include <queue>#include "defs.h"#include "glob.h"#include "config.h"#include "wn.h"#include "wn_util.h"#include "gnu/config.h"#include "gnu/system.h"#include "srcpos.h"#include "gnu/machmode.h"#include "gnu/tree.h"#include "gnu/flags.h"#include "ir_reader.h"#include "tree_symtab.h"#include "wfe_misc.h"#include "wfe_expr.h"#include "wfe_stmt.h"#include "rt_symtab.h"#include "wfe_except.h"

Go to the source code of this file.
Data Types | |
| type | EH_INFO |
Functions/Subroutines | |
| LABEL_IDX | Get_New_Label_Idx () |
| void | WFE_Expand_EH_Region_Start () |
| WN * | Make_Runtime_Call (const char *name, TY_IDX return_ty_idx) |
| static void | WFE_Expand_Internal_Throw () |
| void | WFE_Expand_EH_Region_End (tree handler) |
| void | WFE_Expand_Leftover_Cleanups () |
| void | WFE_Expand_Start_All_Catch () |
| void | WFE_Expand_End_All_Catch () |
Variables | |
| static vector< EH_INFO > | eh_info_stack |
| static vector< EH_INFO > | catch_stack |
| static vector< LABEL_IDX > | caught_return_label_stack |
| static queue< EH_INFO > | eh_info_queue |
| LABEL_IDX Get_New_Label_Idx | ( | ) | [inline] |
Definition at line 68 of file wfe_except.cxx.
References CURRENT_SYMTAB, New_LABEL(), and result.
Referenced by WFE_Expand_EH_Region_End(), and WFE_Expand_Start_All_Catch().
Definition at line 96 of file wfe_except.cxx.
References MTYPE_V, OPR_CALL, result, Throw_Runtime_st_idx(), WN_Create(), and WN_st_idx().
Referenced by WFE_Expand_Internal_Throw().
Definition at line 110 of file wfe_except.cxx.
References eh_info_queue, eh_info_stack, EH_INFO::finalization, Get_New_Label_Idx(), NULL, EH_INFO::outer_context, WFE_Expand_Internal_Throw(), WFE_Stmt_Append(), WN_CreateGoto, and WN_CreateLabel.
Referenced by WFE_Expand_End_All_Catch(), and WFE_Expand_Start_All_Catch().
| void WFE_Expand_EH_Region_Start | ( | ) |
Definition at line 91 of file wfe_except.cxx.
References eh_info_stack.
Referenced by WFE_Expand_Start_All_Catch().
| void WFE_Expand_End_All_Catch | ( | ) |
Definition at line 177 of file wfe_except.cxx.
References catch_stack, eh_info_stack, Is_True, NULL_TREE, WFE_Expand_EH_Region_End(), WFE_Stmt_Append(), and WN_CreateGoto.
| static void WFE_Expand_Internal_Throw | ( | ) | [static] |
Definition at line 103 of file wfe_except.cxx.
References Make_Function_Type(), Make_Runtime_Call(), MTYPE_To_TY, MTYPE_V, and WFE_Stmt_Append().
Referenced by WFE_Expand_EH_Region_End().
| void WFE_Expand_Leftover_Cleanups | ( | ) |
Definition at line 127 of file wfe_except.cxx.
References eh_info_queue, EH_INFO::finalization, EH_INFO::handler, Is_True, NULL, NULL_TREE, EH_INFO::outer_context, WFE_Expand_Expr(), WFE_Stmt_Append(), WN_CreateGoto, and WN_CreateLabel.
| void WFE_Expand_Start_All_Catch | ( | ) |
Definition at line 144 of file wfe_except.cxx.
References catch_stack, caught_return_label_stack, eh_info_queue, eh_info_stack, EH_INFO::finalization, Get_New_Label_Idx(), Is_True, NULL, NULL_TREE, EH_INFO::outer_context, WFE_Expand_EH_Region_End(), WFE_Expand_EH_Region_Start(), WFE_Expand_Expr(), WFE_Stmt_Append(), WN_CreateGoto, and WN_CreateLabel.
vector<EH_INFO> catch_stack [static] |
Definition at line 87 of file wfe_except.cxx.
Referenced by WFE_Expand_End_All_Catch(), and WFE_Expand_Start_All_Catch().
vector<LABEL_IDX> caught_return_label_stack [static] |
queue<EH_INFO> eh_info_queue [static] |
Definition at line 89 of file wfe_except.cxx.
Referenced by WFE_Expand_EH_Region_End(), WFE_Expand_Leftover_Cleanups(), and WFE_Expand_Start_All_Catch().
vector<EH_INFO> eh_info_stack [static] |
Definition at line 86 of file wfe_except.cxx.
Referenced by WFE_Expand_EH_Region_End(), WFE_Expand_EH_Region_Start(), WFE_Expand_End_All_Catch(), and WFE_Expand_Start_All_Catch().
1.5.6