Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
p_dcls.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 "p_dcls.h"
Include dependency graph for p_dcls.c:

Go to the source code of this file.

Functions

static void issue_attr_blk_err (char *)
static void issue_attr_err (attr_type, long)
static void merge_parameter (boolean, int, int, int, opnd_type *, expr_arg_type *, int, int)
static void merge_type (int, int, int, int)
static void parse_cpnt_dcl_stmt (void)
static long parse_attr_spec (int *, boolean *)
static boolean parse_data_imp_do (opnd_type *)
static void parse_derived_type_stmt (void)
static boolean parse_initializer (int)
static void parse_only_spec (int)
static void retype_attr (int)
void parse_common_stmt (void)
void parse_contains_stmt (void)
void parse_data_stmt (void)
void parse_equivalence_stmt (void)
void parse_implicit_stmt (void)
void parse_interface_stmt (void)
void parse_namelist_stmt (void)
void parse_parameter_stmt (void)
void parse_sequence_stmt (void)
void parse_stmt_func_stmt (int sf_attr_idx, int sf_name_idx)
void parse_type_dcl_stmt (void)
void parse_use_stmt (void)
void char_bounds_resolution (int attr_idx, boolean *chk_semantics)
void array_bounds_resolution (int attr_idx, boolean *chk_semantics)
void issue_undefined_type_msg (int attr_idx, int line, int column)

Variables

static char USMID [] = "\n@(#)5.0_pl/sources/p_dcls.c 5.10 10/08/99 08:26:21\n"

Function Documentation

void char_bounds_resolution ( int  attr_idx,
boolean chk_semantics 
)
static void issue_attr_err ( attr_type  new_attr,
long  err_in_list 
) [static]

Definition at line 4728 of file p_dcls.c.

References AT_DCL_ERR, AT_WORK_IDX, attr_str, End_Attr, Error, Func_Entry, Func_Exit, idx, NULL, PRINTMSG(), token, TOKEN_COLUMN, TOKEN_LINE, TRACE, and TRUE.

Referenced by parse_attr_spec().

Here is the call graph for this function:

void issue_undefined_type_msg ( int  attr_idx,
int  line,
int  column 
)
static long parse_attr_spec ( int *  array_idx,
boolean has_parameter 
) [static]
void parse_common_stmt ( void  )

Definition at line 95 of file p_dcls.c.

References Ansi, AT_ATTR_LINK, AT_DCL_ERR, AT_HOST_ASSOCIATED, AT_OBJ_CLASS, AT_REFERENCED, AT_Tbl_Idx, ATD_AUXILIARY, ATD_CLASS, ATD_IN_COMMON, ATD_NEXT_MEMBER_IDX, ATD_PE_ARRAY_IDX, ATD_SEEN_OUTSIDE_IMP_DO, ATD_STOR_BLK_IDX, BD_ARRAY_CLASS, BD_COLUMN_NUM, BD_LINE_NUM, BLANK_COMMON_NAME, BLANK_COMMON_NAME_LEN, Ch_Class_Letter, Char_Rslt_Bound_Ref, cif_flags, cif_sb_usage_rec(), CIF_Symbol_Declaration, cif_usage_rec(), cmd_line_flags, cmd_line_flags_entry::co_array_fortran, COMMA, Common, CREATE_ID, CURR_BLK, curr_scp_idx, curr_stmt_category, Data_Obj, Declaration_Stmt_Cat, Deferred_Shape, EOS, EOS_STR, Error, FALSE, Find_Comma_Slash, Find_None, fnd_semantic_err(), Func_Entry, Func_Exit, iss_blk_stk_err(), LA_CH_CLASS, LA_CH_COLUMN, LA_CH_LINE, LA_CH_VALUE, LBRKT, LN_DEF_LOC, LPAREN, matched_specific_token(), MATCHED_TOKEN_CLASS, merge_dimension(), NEXT_LA_CH, ntr_stor_blk_tbl(), ntr_sym_tbl(), NULL, NULL_IDX, Obj_Common_Obj, parse_array_spec(), parse_err_flush(), parse_pe_array_spec(), PRINTMSG(), SB_AUXILIARY, SB_BLANK_COMMON, SB_BLK_TYPE, SB_COMMON_NEEDS_OFFSET, SB_DCL_ERR, SB_DEF_MULT_SCPS, SB_FIRST_ATTR_IDX, SB_HIDDEN, SB_HOST_ASSOCIATED, SB_IS_COMMON, SB_MERGED_BLK_IDX, SB_NAME_PTR, SB_RUNTIME_INIT, SB_USE_ASSOCIATED, SET_IMPL_TYPE, SLASH, srch_stor_blk_tbl(), srch_sym_tbl(), STMT_CANT_BE_IN_BLK, STMT_OUT_OF_ORDER, stmt_start_col, stmt_start_line, stmt_type, Task_Common, Task_Common_Stmt, Threadprivate, Tok_Class_Id, Tok_Class_Keyword, Tok_Id, Tok_Kwd_Common, token, TOKEN_COLUMN, TOKEN_ID, TOKEN_LEN, TOKEN_LINE, TOKEN_STR, TRACE, TRUE, Variable, and XREF_RECS.

Here is the call graph for this function:

static void parse_cpnt_dcl_stmt ( void  ) [static]

Definition at line 546 of file p_dcls.c.

References Align_128, Align_16, Align_32, Align_64, Align_8, Align_Bit, array_bounds_resolution(), assign_offset(), Assumed_Shape, Assumed_Size, AT_DCL_ERR, AT_DEF_COLUMN, AT_DEF_LINE, AT_DEFINED, AT_IS_INTRIN, AT_NAME_IDX, AT_NAME_LEN, AT_OBJ_NAME_PTR, AT_SEMANTICS_DONE, AT_Tbl_Idx, AT_TYPED, AT_WORK_IDX, ATD_ARRAY_IDX, ATD_CLASS, ATD_CPNT_INIT_IDX, ATD_CPNT_OFFSET_IDX, ATD_DERIVED_TYPE_IDX, ATD_FLD, ATD_OFFSET_ASSIGNED, ATD_OFFSET_FLD, ATD_PE_ARRAY_IDX, ATD_POINTER, ATD_TYPE_IDX, ATT_ALIGNMENT, ATT_CHAR_CPNT, ATT_DEFAULT_INITIALIZED, ATT_FIRST_CPNT_IDX, ATT_NON_DEFAULT_CPNT, ATT_NUM_CPNTS, ATT_NUMERIC_CPNT, ATT_POINTER_CPNT, BD_ARRAY_CLASS, BD_ARRAY_SIZE, BD_COLUMN_NUM, BD_DCL_ERR, BD_LB_FLD, BD_LB_IDX, BD_LINE_NUM, BD_RANK, BD_RESOLVED, BD_UB_FLD, BD_UB_IDX, BLK_LAST_CPNT_IDX, blk_stk_idx, Call_Opr, Character, CHARACTER_DEFAULT_TYPE, cif_flags, cif_stmt_type_rec(), CIF_Symbol_Declaration, CIF_Type_Declaration_Stmt, cif_usage_rec(), CLEAR_TBL_NTRY, cmd_line_flags, CN_INTEGER_ZERO_IDX, CN_Tbl_Idx, cmd_line_flags_entry::co_array_fortran, colon_recovery, COMMA, Complex_16, COMPLEX_DEFAULT_TYPE, Const_Len_Char, Constant_Size, COPY_BD_NTRY, COPY_OPND, CURR_BLK_NAME, DALIGN_TEST_CONDITION, Default_Typed, Deferred_Shape, Deferred_Shape1, DOUBLE_DEFAULT_TYPE, dump_flags, EOS, EOS_STR, EQUAL, Error, Explicit_Shape, FALSE, Find_Comma, Find_EOS, fold_relationals(), Func_Entry, Func_Exit, GT, idx, Init_Opr, on_off_flags_entry::integer_1_and_2, INTEGER_DEFAULT_TYPE, IR_COL_NUM, IR_COL_NUM_L, IR_FLD_L, IR_IDX_L, IR_IDX_R, IR_LINE_NUM, IR_LINE_NUM_L, IR_OPND_R, IR_OPR, IR_Tbl_Idx, IR_TYPE_IDX, issue_undefined_type_msg(), LA_CH_COLUMN, LA_CH_LINE, LA_CH_VALUE, LBRKT, Le_Opr, LOGICAL_DEFAULT_TYPE, LPAREN, Lt_Opr, matched_specific_token(), MATCHED_TOKEN_CLASS, MISC_RECS, NEXT_LA_CH, NO_Tbl_Idx, ntr_array_in_bd_tbl(), NTR_ATTR_TBL, NTR_IR_TBL, NTR_NAME_POOL, NTR_SN_TBL, ntr_type_tbl(), NULL, NULL_IDX, Null_Opr, on_off_flags, OPND_FLD, OPND_IDX, PACK_16_BIT_TEST_CONDITION, PACK_8_BIT_TEST_CONDITION, dump_flags_entry::pack_half_word, PACK_HALF_WORD_TEST_CONDITION, parse_array_spec(), parse_err_flush(), parse_expr(), parse_length_selector(), parse_pe_array_spec(), parse_type_spec(), PRINTMSG(), Real_16, REAL_DEFAULT_TYPE, reserve_array_ntry(), cmd_line_flags_entry::s_pointer8, SET_IMPL_TYPE, SN_ATTR_IDX, SN_NAME_IDX, SN_NAME_LEN, SN_SIBLING_LINK, srch_linked_sn(), STAR, statement_number, Struct_Component, Structure, Tok_Class_Id, Tok_Class_Keyword, Tok_Class_Punct, Tok_Kwd_Dimension, Tok_Kwd_Pointer, Tok_Punct_Colon_Colon, Tok_Punct_Comma, token, TOKEN_COLUMN, TOKEN_ID, TOKEN_LEN, TOKEN_LINE, TOKEN_STR, TRACE, TRUE, TYP_CHAR_CLASS, TYP_DCL_VALUE, TYP_DESC, TYP_FLD, TYP_IDX, TYP_LINEAR, TYP_TYPE, TYP_WORK_IDX, type_tbl, TYPELESS_DEFAULT_TYPE, and XREF_RECS.

Referenced by parse_type_dcl_stmt().

Here is the call graph for this function:

void parse_equivalence_stmt ( void  )

Definition at line 1622 of file p_dcls.c.

References AL_EQ_IDX, AL_IDX_IS_EQ, AL_NEXT_IDX, AT_ATTR_LINK, AT_OBJ_CLASS, AT_OBJ_NAME_PTR, AT_REFERENCED, AT_Tbl_Idx, ATD_ARRAY_IDX, ATD_CLASS, ATD_DCL_EQUIV, ATD_EQUIV, ATD_EQUIV_LIST, ATD_SEEN_OUTSIDE_IMP_DO, Char_Rslt_Bound_Ref, cif_flags, CIF_Symbol_Declaration, cif_usage_rec(), cmd_line_flags, cmd_line_flags_entry::co_array_fortran, COLON, COMMA, COPY_OPND, CURR_BLK, curr_scp_idx, curr_stmt_category, Data_Obj, Declaration_Stmt_Cat, EOS, EOS_STR, EQ_ATTR_IDX, EQ_COLUMN_NUM, EQ_GRP_END_IDX, EQ_GRP_IDX, EQ_LINE_NUM, EQ_NEXT_EQUIV_GRP, EQ_NEXT_EQUIV_OBJ, EQ_OPND_FLD, EQ_OPND_IDX, EQ_SUBSTRINGED, Equivalence_Stmt, Error, EXIT, expr_mode, FALSE, Find_Comma_Rparen, Find_EOS, fnd_semantic_err(), Func_Entry, Func_Exit, IL_NEXT_LIST_IDX, IL_OPND, IL_PREV_LIST_IDX, IL_Tbl_Idx, Initialization_Expr, IR_COL_NUM, IR_FLD_R, IR_IDX_R, IR_LINE_NUM, IR_LIST_CNT_R, IR_OPND_L, IR_OPR, IR_Tbl_Idx, is_substring_ref(), iss_blk_stk_err(), LA_CH_COLUMN, LA_CH_LINE, LA_CH_VALUE, LBRKT, LN_DEF_LOC, LPAREN, matched_specific_token(), MATCHED_TOKEN_CLASS, NEXT_LA_CH, NTR_ATTR_LIST_TBL, NTR_EQ_TBL, NTR_IR_LIST_TBL, NTR_IR_TBL, ntr_sym_tbl(), NULL, NULL_IDX, Obj_Equiv, OPND_COL_NUM, OPND_FLD, OPND_IDX, OPND_LINE_NUM, parse_err_flush(), parse_expr(), parse_pe_array_spec(), PRINTMSG(), Regular_Expr, RPAREN, SCP_FIRST_EQUIV_GRP, SET_IMPL_TYPE, srch_sym_tbl(), STMT_CANT_BE_IN_BLK, STMT_OUT_OF_ORDER, Subscript_Opr, Substring_Opr, Tok_Class_Id, Tok_Class_Punct, Tok_Punct_Rparen, token, TOKEN_COLUMN, TOKEN_LEN, TOKEN_LINE, TOKEN_STR, TRACE, TRUE, Variable, and XREF_RECS.

Here is the call graph for this function:

void parse_stmt_func_stmt ( int  sf_attr_idx,
int  sf_name_idx 
)
void parse_type_dcl_stmt ( void  )

Definition at line 3225 of file p_dcls.c.

References After, Allocatable_Attr, Ansi, array_bounds_resolution(), Assumed_Size_Char, AT_ATTR_LINK, AT_CIF_SYMBOL_ID, AT_DCL_ERR, AT_DEF_COLUMN, AT_DEF_LINE, AT_DEFINED, AT_IS_INTRIN, AT_NAME_IDX, AT_NAME_LEN, AT_OBJ_CLASS, AT_OBJ_NAME_PTR, AT_REFERENCED, AT_Tbl_Idx, AT_TYPED, AT_WORK_IDX, ATD_ARRAY_IDX, ATD_PE_ARRAY_IDX, ATD_SEEN_OUTSIDE_IMP_DO, ATD_TYPE_IDX, ATP_RSLT_IDX, Automatic_Attr, BD_ARRAY_CLASS, BD_RANK, Call_Opr, Ch_Class_Letter, char_bounds_resolution(), Char_Rslt_Bound_Ref, Character, Character_1, check_type_conversion, cif_flags, cif_stmt_type_rec(), CIF_Symbol_Declaration, CIF_Symbol_Modification, CIF_Symbol_Reference, CIF_Type_Declaration_Stmt, CIF_Type_Stmt, cif_usage_rec(), CLEAR_ATTR_NTRY, cmd_line_flags, Co_Array_Attr, cmd_line_flags_entry::co_array_fortran, colon_recovery, COMMA, comp_gen_expr, Complex, Const_Len_Char, COPY_ATTR_NTRY, COPY_BD_NTRY, COPY_OPND, Cpnt_Decl_Stmt, CURR_BLK, curr_stmt_category, curr_stmt_sh_idx, Data_Obj, Data_Stmt, Declaration_Stmt_Cat, Deferred_Shape, Derived_Type_Blk, EOS, EOS_STR, EQUAL, Error, EXIT, expr_mode, expr_semantics(), External_Attr, FALSE, Find_Comma, Find_EOS, Func_Entry, Func_Exit, gen_sh(), GT, IL_COL_NUM, IL_FLD, IL_IDX, IL_LINE_NUM, IL_Tbl_Idx, Init_Opr, Init_Stmt_Cat, Initialization_Expr, Integer, Intent_Attr, Intent_Unseen, Interface, Intrinsic_Attr, IR_COL_NUM, IR_COL_NUM_L, IR_FLD_L, IR_IDX_L, IR_IDX_R, IR_LINE_NUM, IR_LINE_NUM_L, IR_LIST_CNT_L, IR_OPND_R, IR_OPR, IR_Tbl_Idx, IR_TYPE_IDX, iss_blk_stk_err(), issue_undefined_type_msg(), LA_CH_BUF_IDX, LA_CH_CLASS, LA_CH_COLUMN, LA_CH_LINE, LA_CH_STMT_NUM, LA_CH_VALUE, LBRKT, LN_DEF_LOC, LPAREN, matched_specific_token(), MATCHED_TOKEN_CLASS, merge_access(), merge_allocatable(), merge_automatic(), merge_co_array(), merge_data(), merge_dimension(), merge_external(), merge_intent(), merge_intrinsic(), merge_optional(), merge_parameter(), merge_pointer(), merge_save(), merge_target(), merge_type(), merge_volatile(), MISC_RECS, new_intent, NEXT_LA_CH, ntr_array_in_bd_tbl(), NTR_IR_LIST_TBL, NTR_IR_TBL, ntr_sym_tbl(), ntr_type_tbl(), NULL, NULL_IDX, Null_Opr, OPND_FLD, OPND_IDX, Optional_Attr, Parameter_Attr, parse_array_spec(), parse_attr_spec(), parse_cpnt_dcl_stmt(), parse_derived_type_stmt(), parse_err_flush(), parse_expr(), parse_initializer(), parse_length_selector(), parse_pe_array_spec(), parse_type_spec(), parse_typed_function_stmt(), Pgm_Unit, Pointer_Attr, PRINTMSG(), Private, Private_Attr, Public, Public_Attr, expr_semantics_args::rank, Real, Regular_Expr, reserve_array_ntry(), reset_lex(), RPAREN, Save_Attr, SET_IMPL_TYPE, SH_COL_NUM, SH_COMPILER_GEN, SH_ERR_FLG, SH_GLB_LINE, SH_IR_IDX, SH_STMT_TYPE, SLASH, srch_sym_tbl(), STAR, statement_number, STMT_CANT_BE_IN_BLK, stmt_has_double_colon(), STMT_OUT_OF_ORDER, stmt_type, Structure, Sub_Func_Stmt_Cat, target_array_idx, Target_Attr, target_char_len_idx, target_type_idx, Tok_Class_Id, Tok_Class_Keyword, Tok_Class_Punct, Tok_Kwd_Character, Tok_Kwd_Elemental, Tok_Kwd_Function, Tok_Kwd_Pure, Tok_Kwd_Recursive, Tok_Kwd_Type, Tok_Punct_Colon_Colon, token, TOKEN_COLUMN, TOKEN_LEN, TOKEN_LINE, TOKEN_STR, TRACE, TRUE, TYP_CHAR_CLASS, TYP_DCL_VALUE, TYP_DESC, TYP_IDX, TYP_TYPE, TYP_WORK_IDX, Type_Decl_Stmt, Type_Init_Stmt, TYPELESS_DEFAULT_TYPE, Unknown_Char, Volatile_Attr, XREF_RECS, and xref_state.

Here is the call graph for this function:

void parse_use_stmt ( void  )

Definition at line 3980 of file p_dcls.c.

References AL_ATTR_IDX, AL_NEXT_IDX, AL_PREV_MODULE_IDX, AT_MODULE_IDX, AT_NAME_IDX, AT_NAME_LEN, AT_OBJ_CLASS, AT_OBJ_NAME_PTR, AT_ORIG_NAME_IDX, AT_ORIG_NAME_LEN, AT_REFERENCED, AT_Tbl_Idx, AT_USE_ASSOCIATED, ATP_GLOBAL_ATTR_IDX, ATP_MODULE_STR_IDX, ATP_PGM_UNIT, ATP_SCP_IDX, ATP_USE_LIST, ATP_USE_TYPE, check_for_duplicate_renames(), check_global_pgm_unit(), cif_flags, CIF_Symbol_Reference, cif_usage_rec(), COLON, COMMA, CREATE_ERR_ATTR, CURR_BLK, curr_scp_idx, curr_stmt_category, curr_stmt_sh_idx, EOS, EOS_STR, Error, EXIT, FALSE, Find_Comma, Find_EOS, Func_Entry, Func_Exit, GN_NAME_IDX, 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(), LA_CH_VALUE, LN_DEF_LOC, MAKE_EXTERNAL_NAME, make_ro_entry(), matched_specific_token(), MATCHED_TOKEN_CLASS, Module, NEXT_LA_CH, NTR_ATTR_LIST_TBL, NTR_IR_TBL, ntr_sym_tbl(), NULL, NULL_IDX, parse_err_flush(), parse_only_spec(), Pgm_Unit, PRINTMSG(), Referenced, reset_lex(), RO_RENAME_IDX, SCP_USED_MODULE_LIST, SH_IR_IDX, SH_P2_SKIP_ME, srch_sym_tbl(), STMT_CANT_BE_IN_BLK, STMT_OUT_OF_ORDER, stmt_start_col, stmt_start_line, Tok_Class_Id, Tok_Class_Keyword, Tok_Class_Punct, Tok_Kwd_Only, Tok_Punct_Rename, token, TOKEN_BUF_IDX, TOKEN_COLUMN, TOKEN_LEN, TOKEN_LINE, TOKEN_STMT_NUM, TOKEN_STR, TRACE, TRUE, TYPELESS_DEFAULT_TYPE, Use_All, Use_Not, Use_Only, Use_Opr, Use_Renamed, Use_Stmt, Use_Stmt_Cat, and XREF_RECS.

Here is the call graph for this function:


Variable Documentation

char USMID[] = "\n@(#)5.0_pl/sources/p_dcls.c 5.10 10/08/99 08:26:21\n" [static]

Definition at line 37 of file p_dcls.c.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines