Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
p_dcl_pu.c File Reference
#include "defines.h"
#include "host.m"
#include "host.h"
#include "target.m"
#include "target.h"
#include "globals.m"
#include "tokens.m"
#include "sytb.m"
#include "p_globals.m"
#include "debug.m"
#include "globals.h"
#include "tokens.h"
#include "sytb.h"
#include "p_globals.h"
Include dependency graph for p_dcl_pu.c:

Go to the source code of this file.

Functions

static void gen_end_prologue_debug_label (int)
static void parse_dummy_args (int)
static void parse_prefix_spec (void)
static void set_function_rslt (int, boolean)
static void start_new_scp (void)
static int start_new_subpgm (pgm_unit_type, boolean, boolean)
void parse_block_stmt (void)
void parse_entry_stmt (void)
void parse_function_stmt (void)
void parse_module_stmt (void)
void parse_program_stmt (void)
void parse_elemental_stmt (void)
void parse_pure_stmt (void)
void parse_recursive_stmt (void)
void parse_subroutine_stmt (void)
int start_new_prog_unit (pgm_unit_type pgm_type, blk_cntxt_type blk_type, boolean no_name_entry, boolean parse_error, int *defer_msg)
void parse_typed_function_stmt ()

Variables

static char USMID [] = "\n@(#)5.0_pl/sources/p_dcl_pu.c 5.5 09/01/99 09:11:00\n"

Function Documentation

void parse_elemental_stmt ( void  )

Definition at line 1237 of file p_dcl_pu.c.

References AT_OBJ_CLASS, AT_WORK_IDX, ATP_ELEMENTAL, CLEAR_ATTR_NTRY, Func_Entry, Func_Exit, NULL, parse_prefix_spec(), Pgm_Unit, TRACE, and TRUE.

Here is the call graph for this function:

void parse_entry_stmt ( void  )

Definition at line 189 of file p_dcl_pu.c.

References After, AL_ATTR_IDX, AL_NEXT_IDX, AT_DCL_ERR, AT_NAME_IDX, AT_NAME_LEN, AT_OBJ_CLASS, AT_OBJ_NAME_PTR, AT_Tbl_Idx, ATD_CLASS, ATD_FUNC_IDX, ATI_PROC_IDX, ATP_ALT_ENTRY, ATP_ARGCHCK_ENTRY, ATP_ELEMENTAL, ATP_ENTRY_LABEL_SH_IDX, ATP_EXPL_ITRFC, ATP_EXT_NAME_IDX, ATP_EXT_NAME_LEN, ATP_FIRST_SH_IDX, ATP_MAY_INLINE, ATP_PGM_UNIT, ATP_PROC, ATP_PURE, ATP_RECURSIVE, ATP_RSLT_IDX, ATP_SCP_ALIVE, ATP_SCP_IDX, attr_aux_tbl_idx, attr_tbl_idx, Br_Uncond_Opr, chg_data_obj_to_pgm_unit(), cif_flags, CIF_Symbol_Declaration, cif_usage_rec(), cmd_line_flags, Continue_Stmt, CREATE_ERR_ATTR, CURR_BLK, curr_scp_idx, curr_stmt_category, curr_stmt_sh_idx, Data_Obj, cmd_line_flags_entry::debug_lvl, Debug_Lvl_1, Entry_Opr, Entry_Stmt, EOS, EOS_STR, Error, FALSE, Find_EOS, Find_Lparen, fnd_semantic_err(), Func_Entry, Func_Exit, Function, Function_Result, gen_end_prologue_debug_label(), gen_internal_lbl(), gen_sh(), Goto_Stmt, Implicit_None_Stmt_Cat, Interface, Interface_Body_Blk, IR_COL_NUM, IR_COL_NUM_L, IR_COL_NUM_R, IR_FLD_L, IR_FLD_R, IR_IDX_L, IR_IDX_R, IR_LINE_NUM, IR_LINE_NUM_L, IR_LINE_NUM_R, IR_OPR, IR_TYPE_IDX, iss_blk_stk_err(), LA_CH_VALUE, Label_Opr, Limit, LN_ATTR_IDX, LN_DEF_LOC, LN_NAME_IDX, LPAREN, MAKE_EXTERNAL_NAME, matched_specific_token(), MATCHED_TOKEN_CLASS, MAX_ALTERNATE_ENTRIES, Module_Proc, NEXT_LA_CH, NTR_ATTR_LIST_TBL, ntr_host_in_sym_tbl(), NTR_IR_TBL, ntr_sym_tbl(), NULL, NULL_IDX, Obj_Entry_Func, Obj_Entry_Subr, Obj_Module_Func, Obj_Module_Subr, parse_dummy_args(), parse_err_flush(), Pgm_Unit, PRINTMSG(), cmd_line_flags_entry::runtime_arg_entry, cmd_line_flags_entry::runtime_argument, SCP_ALT_ENTRY_CNT, SCP_ATTR_IDX, SCP_ENTRY_IDX, SCP_PARENT_IDX, set_function_rslt(), SH_COMPILER_GEN, SH_IR_IDX, SH_STMT_TYPE, srch_host_sym_tbl(), srch_sym_tbl(), STMT_CANT_BE_IN_BLK, stmt_type, Subroutine, Tok_Class_Id, Tok_Class_Keyword, Tok_Kwd_Result, token, TOKEN_COLUMN, TOKEN_LEN, TOKEN_LINE, TOKEN_STR, TRACE, TRUE, TYPELESS_DEFAULT_TYPE, and XREF_RECS.

Here is the call graph for this function:

void parse_module_stmt ( void  )

Definition at line 719 of file p_dcl_pu.c.

References AT_DCL_ERR, AT_DEF_COLUMN, AT_DEF_LINE, AT_ELEMENTAL_INTRIN, AT_IS_INTRIN, AT_MODULE_IDX, AT_NAME_IDX, AT_NAME_LEN, AT_NOT_VISIBLE, AT_OBJ_CLASS, AT_OBJ_NAME_PTR, AT_PRIVATE, AT_Tbl_Idx, AT_USE_ASSOCIATED, ATI_FIRST_SPECIFIC_IDX, ATI_INTERFACE_CLASS, ATI_PROC_IDX, ATP_MODULE_STR_IDX, ATP_PGM_UNIT, ATP_PROC, ATP_RECURSIVE, ATP_SCP_ALIVE, ATP_SCP_IDX, cmd_line_flags_entry::binary_output, check_global_pgm_unit(), cif_flags, CIF_Module_Procedure_Stmt, CIF_Module_Stmt, cif_stmt_type_rec(), CIF_Symbol_Declaration, cif_usage_rec(), CLEAR_VARIANT_ATTR_INFO, cmd_line_flags, COMMA, COPY_COMMON_ATTR_INFO, CREATE_ERR_ATTR, CREATE_ID, CURR_BLK, CURR_BLK_NAME, CURR_BLK_NO_EXEC, curr_scp_idx, curr_stmt_category, curr_stmt_sh_idx, Data_Init_Blk, EOS, EOS_STR, Error, FALSE, Find_Comma, Find_EOS, fnd_semantic_err(), Func_Entry, Func_Exit, Function, Generic_Function_Interface, Generic_Subroutine_Interface, Generic_Unknown_Interface, GN_NAME_IDX, Init_Stmt_Cat, Interface, Interface_Blk, iss_blk_stk_err(), LA_CH_VALUE, LN_DEF_LOC, main_token, MAKE_EXTERNAL_NAME, matched_specific_token(), MATCHED_TOKEN_CLASS, MISC_RECS, Module, Module_Blk, Module_Proc, Module_Proc_Stmt, name, NEXT_LA_CH, NTR_ATTR_TBL, ntr_host_in_sym_tbl(), NTR_INTERFACE_IN_SN_TBL, ntr_stor_blk_tbl(), ntr_sym_tbl(), NULL, NULL_IDX, Obj_Module_Proc, on_off_flags, cmd_line_flags_entry::pad, cmd_line_flags_entry::pad_amount, parse_err_flush(), Pgm_Unit, Pgm_Unknown, PRINTMSG(), on_off_flags_entry::recursive, SB_BLK_TYPE, sb_len, SB_MODULE, sb_name, SB_PAD_AMOUNT, SB_PAD_AMOUNT_SET, SB_PAD_BLK, SB_RUNTIME_INIT, SCP_SB_STATIC_IDX, SCP_SB_STATIC_INIT_IDX, SCP_SB_STATIC_UNINIT_IDX, SH_STMT_TYPE, srch_host_sym_tbl(), srch_linked_sn(), srch_sym_tbl(), start_new_prog_unit(), statement_number, Static, stmt_start_col, stmt_start_line, stmt_type, id_str_entry::string, Sub_Func_Stmt_Cat, Tok_Class_Id, Tok_Class_Keyword, Tok_Kwd_Procedure, token, TOKEN_COLUMN, TOKEN_LEN, TOKEN_LINE, TOKEN_STR, TRACE, TRUE, Warning, and XREF_RECS.

Here is the call graph for this function:

static void parse_prefix_spec ( void  ) [static]
void parse_pure_stmt ( void  )

Definition at line 1268 of file p_dcl_pu.c.

References AT_OBJ_CLASS, AT_WORK_IDX, ATP_PURE, CLEAR_ATTR_NTRY, Func_Entry, Func_Exit, NULL, parse_prefix_spec(), Pgm_Unit, TRACE, and TRUE.

Here is the call graph for this function:

void parse_recursive_stmt ( void  )

Definition at line 1300 of file p_dcl_pu.c.

References AT_OBJ_CLASS, AT_WORK_IDX, ATP_RECURSIVE, CLEAR_ATTR_NTRY, Func_Entry, Func_Exit, NULL, parse_prefix_spec(), Pgm_Unit, TRACE, and TRUE.

Here is the call graph for this function:

void parse_typed_function_stmt ( void  )

Definition at line 2980 of file p_dcl_pu.c.

References Assumed_Size_Char, AT_DCL_ERR, AT_DEF_COLUMN, AT_DEF_LINE, AT_OBJ_CLASS, AT_OBJ_NAME_PTR, AT_REFERENCED, AT_TYPED, AT_WORK_IDX, ATD_TYPE_IDX, ATI_HAS_NON_MOD_PROC, ATP_ARGCHCK_ENTRY, ATP_ELEMENTAL, ATP_PROC, ATP_PURE, ATP_RECURSIVE, ATP_RSLT_IDX, attr_tbl_idx, BLK_AT_IDX, BLK_BD_IDX, BLK_CN_IDX, BLK_CP_IDX, BLK_NP_IDX, BLK_SB_IDX, BLK_SN_IDX, blk_stk_idx, BLK_TYP_IDX, BLK_UNNAMED_INTERFACE, bounds_tbl_idx, Char_Rslt_Bound_Ref, Character, CHARACTER_DEFAULT_TYPE, cif_flags, CIF_Function_Stmt, cif_stmt_type_rec(), cmd_line_flags, Comment, const_pool_idx, const_tbl_idx, CURR_BLK, CURR_BLK_ERR, CURR_BLK_NAME, curr_scp_idx, curr_stmt_category, curr_stmt_sh_idx, EOS, EOS_STR, Error, Extern_Proc, FALSE, Find_EOS, Find_Lparen, Func_Entry, Func_Exit, Function, Function_Blk, Function_Stmt, idx, Interface_Blk, Interface_Body_Blk, Intern_Proc, LA_CH_VALUE, LN_ATTR_IDX, LPAREN, main_token, MATCHED_TOKEN_CLASS, MISC_RECS, Module_Proc, name_pool_idx, NEXT_LA_CH, NULL, NULL_IDX, parse_dummy_args(), parse_err_flush(), parse_type_spec(), Pgm_Unit, PRINTMSG(), reset_lex(), cmd_line_flags_entry::runtime_arg_entry, cmd_line_flags_entry::runtime_argument, SCP_ATTR_IDX, SCP_IN_ERR, SCP_LAST_CHILD_IDX, SCP_LN_FW_IDX, SCP_LN_LW_IDX, SCP_PARENT_IDX, sec_name_tbl_idx, set_function_rslt(), SH_STMT_TYPE, start_new_prog_unit(), start_new_scp(), start_new_subpgm(), statement_number, stmt_start_col, stmt_start_line, stmt_type, stor_blk_tbl_idx, Sub_Func_Stmt_Cat, Tok_Class_Id, Tok_Class_Keyword, Tok_Kwd_Elemental, Tok_Kwd_Function, Tok_Kwd_Pure, Tok_Kwd_Recursive, token, TOKEN_BUF_IDX, TOKEN_COLUMN, TOKEN_LINE, TOKEN_STMT_NUM, TRACE, TRUE, TYP_CHAR_CLASS, TYP_TYPE, type_tbl_idx, Unknown_Char, Var_Len_Char, and Warning.

Referenced by parse_prefix_spec(), and parse_type_dcl_stmt().

Here is the call graph for this function:

int start_new_prog_unit ( pgm_unit_type  pgm_type,
blk_cntxt_type  blk_type,
boolean  no_name_entry,
boolean  parse_error,
int *  defer_msg 
)

Definition at line 2716 of file p_dcl_pu.c.

References _ERROR_DUPLICATE_GLOBALS, AT_CIF_SYMBOL_ID, AT_DCL_ERR, AT_DEF_COLUMN, AT_DEF_LINE, AT_DEFINED, AT_NAME_IDX, AT_NAME_LEN, AT_OBJ_CLASS, AT_OBJ_NAME_PTR, AT_Tbl_Idx, ATD_CLASS, ATD_SYMBOLIC_CONSTANT, ATP_EXPL_ITRFC, ATP_HAS_TASK_DIRS, ATP_MAY_INLINE, ATP_PGM_UNIT, ATP_SCP_ALIVE, ATP_SCP_IDX, attr_aux_tbl_idx, attr_tbl_idx, Before, cif_flags, CIF_Symbol_Declaration, cif_usage_rec(), cmd_line_flags, CREATE_ERR_ATTR, CURR_BLK, CURR_BLK_DEF_COLUMN, CURR_BLK_DEF_LINE, CURR_BLK_NAME, curr_scp_idx, curr_stmt_category, curr_stmt_sh_idx, Data_Obj, cmd_line_flags_entry::debug_lvl, Debug_Lvl_1, Dir_Integer_Stmt_Cat, dump_flags, Entry_Opr, Error, FALSE, Func_Entry, Func_Exit, Function, gen_end_prologue_debug_label(), gen_sh(), glb_tbl_idx, implicit_use_semantics(), Init_Stmt_Cat, Internal, IR_COL_NUM, IR_COL_NUM_L, IR_FLD_L, IR_IDX_L, IR_LINE_NUM, IR_LINE_NUM_L, IR_OPR, IR_TYPE_IDX, iss_blk_stk_err(), LN_ATTR_IDX, LN_DEF_LOC, LN_NAME_IDX, Main_Attr_Idx, MAKE_EXTERNAL_NAME, make_in_parent_string(), opt_flags_entry::modinline, Module, NTR_IR_TBL, ntr_sym_tbl(), NULL, NULL_IDX, opt_flags, Pgm_Unit, dump_flags_entry::preinline, PRINTMSG(), Program, Program_Stmt, SB_NAME_IDX, SB_NAME_LEN, SCP_ATTR_IDX, SCP_FIRST_SH_IDX, SCP_IN_ERR, SCP_SB_STATIC_IDX, SCP_SB_STATIC_INIT_IDX, SCP_SB_STATIC_UNINIT_IDX, SH_IR_IDX, SH_PREV_IDX, srch_sym_tbl(), stmt_start_col, stmt_start_line, token, TOKEN_COLUMN, TOKEN_LEN, TOKEN_LINE, TOKEN_STR, TRACE, TRUE, TYPELESS_DEFAULT_TYPE, Variable, Warning, and XREF_RECS.

Referenced by parse_block_stmt(), parse_function_stmt(), parse_module_stmt(), parse_prefix_spec(), parse_prog_unit(), parse_program_stmt(), parse_subroutine_stmt(), parse_typed_function_stmt(), and stmt_level_semantics().

Here is the call graph for this function:

static int start_new_subpgm ( pgm_unit_type  pgm_type,
boolean  has_error,
boolean  save_idxs 
) [static]

Definition at line 2062 of file p_dcl_pu.c.

References AT_ATTR_LINK, AT_DCL_ERR, AT_DEF_COLUMN, AT_DEF_LINE, AT_ELEMENTAL_INTRIN, AT_IS_INTRIN, AT_LOCKED_IN, AT_MODULE_IDX, AT_NAME_IDX, AT_NAME_LEN, AT_NOT_VISIBLE, AT_OBJ_CLASS, AT_OBJ_NAME_PTR, AT_Tbl_Idx, AT_TYPED, AT_USE_ASSOCIATED, ATD_CLASS, ATI_FIRST_SPECIFIC_IDX, ATI_HAS_NON_MOD_PROC, ATI_INTERFACE_CLASS, ATI_PROC_IDX, ATI_UNNAMED_INTERFACE, ATP_ALT_ENTRY, ATP_DUPLICATE_INTERFACE_IDX, ATP_EXPL_ITRFC, ATP_EXT_NAME_IDX, ATP_EXT_NAME_LEN, ATP_IN_INTERFACE_BLK, ATP_IN_UNNAMED_INTERFACE, ATP_MAY_INLINE, ATP_PARENT_IDX, ATP_PGM_UNIT, ATP_PROC, ATP_RSLT_IDX, ATP_SCP_ALIVE, ATP_SCP_IDX, attr_tbl_idx, BASIC_RECS, BLK_AT_IDX, BLK_BD_IDX, BLK_CN_IDX, BLK_CP_IDX, BLK_NP_IDX, BLK_SB_IDX, BLK_SN_IDX, blk_stk_idx, BLK_TYP_IDX, BLK_UNNAMED_INTERFACE, bounds_tbl_idx, cdir_switches, chg_data_obj_to_pgm_unit(), cif_begin_scope_rec(), cif_flags, CIF_Symbol_Declaration, cif_usage_rec(), CLEAR_VARIANT_ATTR_INFO, cmd_line_flags, const_pool_idx, const_tbl_idx, Constant, COPY_COMMON_ATTR_INFO, CREATE_ERR_ATTR, CURR_BLK, CURR_BLK_FIRST_SH_IDX, CURR_BLK_NAME, CURR_BLK_NO_EXEC, curr_scp_idx, curr_stmt_category, curr_stmt_sh_idx, Data_Obj, cmd_line_flags_entry::debug_lvl, Debug_Lvl_1, Dir_Integer_Stmt_Cat, Entry_Opr, Error, Extern_Proc, FALSE, fnd_semantic_err(), Func_Entry, Func_Exit, Function, gen_end_prologue_debug_label(), Generic_Function_Interface, Generic_Subroutine_Interface, Generic_Unknown_Interface, glb_tbl_idx, cmd_line_flags_entry::implicit_use_idx, cdir_switch_entry::implicit_use_idx, implicit_use_semantics(), Interface, Interface_Blk, Interface_Body_Blk, Intern_Proc, Internal_Blk, IR_COL_NUM, IR_COL_NUM_L, IR_FLD_L, IR_IDX_L, IR_LINE_NUM, IR_LINE_NUM_L, IR_OPR, IR_TYPE_IDX, Label_Def, LN_ATTR_IDX, LN_DEF_LOC, LN_NAME_IDX, Main_Attr_Idx, MAKE_EXTERNAL_NAME, make_in_parent_string(), Module, Module_Proc, Module_Proc_Blk, name_pool_idx, NTR_ATTR_TBL, ntr_host_in_sym_tbl(), NTR_INTERFACE_IN_SN_TBL, NTR_IR_TBL, ntr_sym_tbl(), NULL, NULL_IDX, Obj_Interface_Func, Obj_Interface_Subr, Obj_Intern_Func, Obj_Intern_Subr, Obj_Module_Func, Obj_Module_Subr, Pgm_Unit, PRINTMSG(), PUSH_BLK_STK, SB_BLK_TYPE, SB_HOSTED_STATIC, SB_NAME_IDX, SB_NAME_LEN, SB_RUNTIME_INIT, SCP_ATTR_IDX, SCP_FIRST_SH_IDX, SCP_LAST_CHILD_IDX, SCP_LEVEL, SCP_PARENT_IDX, SCP_SB_HOSTED_DATA_IDX, SCP_SB_HOSTED_STATIC_IDX, SCP_SB_STATIC_IDX, SCP_SB_STATIC_INIT_IDX, SCP_SB_STATIC_UNINIT_IDX, sec_name_tbl_idx, SH_ERR_FLG, SH_IR_IDX, SH_STMT_TYPE, srch_host_sym_tbl(), srch_linked_sn(), srch_sym_tbl(), Static, Static_Named, stor_blk_tbl_idx, token, TOKEN_COLUMN, TOKEN_LEN, TOKEN_LINE, TOKEN_STR, TRACE, TRUE, type_tbl_idx, TYPELESS_DEFAULT_TYPE, and XREF_RECS.

Referenced by parse_function_stmt(), parse_prefix_spec(), parse_subroutine_stmt(), and parse_typed_function_stmt().

Here is the call graph for this function:


Variable Documentation

char USMID[] = "\n@(#)5.0_pl/sources/p_dcl_pu.c 5.5 09/01/99 09:11:00\n" [static]

Definition at line 37 of file p_dcl_pu.c.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines