Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
s_call.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 "s_globals.m"
#include "debug.m"
#include "s_call.m"
#include "globals.h"
#include "tokens.h"
#include "sytb.h"
#include "s_globals.h"
#include "s_call.h"
Include dependency graph for s_call.c:

Go to the source code of this file.

Functions

static boolean compare_darg_to_actual_arg (int, int, int, opnd_type, int, int)
static boolean compare_func_result (int, int, int, int, int, int, int, int)
static int copy_and_replace_tmps (int)
static int create_tmp_DV_asg (int, int)
static int create_tmp_from_stmt_func (int)
static void determine_num_elements (opnd_type *, expr_arg_type *, int, int)
static int expand_user_bound (int)
static void find_attrs_in_il (int)
static void find_attrs_in_ir (int)
static void find_attrs_used_in_bound (int)
static dummy_arg_type get_dummy_arg_type (int)
static void make_new_bd_entries (int, int *, int *)
static void save_array_syntax_subscripts (int)
static void set_at_actual_arg (int)
static void process_variable_size_func (int, int, int, int, int *, int *)
static void check_bd_typ_for_dargs (int, int, opnd_type *)
static void search_expr_for_dargs (opnd_type *, opnd_type *)
static int gen_arg_type_descriptor (int, boolean, int, int)
static int gen_call_type_descriptor (int, int, boolean, int, int)
static long_type get_arg_type (int, boolean)
static int create_struct_argchck_tbl (int)
static int determine_struct_tbl_size (int)
static void fill_in_struct_argchck_const (int, int, int *)
static void make_base_assumed_size (opnd_type *, opnd_type *)
static void check_call_for_global_def (int, int, int)
static void ntr_ref_in_global_tbl (int, int, int, int *, int)
void gen_dbg_write_stmt (opnd_type *, sh_position_type)
static boolean check_elemental_conformance (int, expr_arg_type *)
static void check_for_constructors (opnd_type *, expr_arg_type *)
static void check_for_elementals (int)
static void check_expr_for_elementals (opnd_type *)
static boolean check_arg_for_co_array (opnd_type *)
static void update_components (opnd_type *)
static void set_inline_state (int, int)
boolean call_list_semantics (opnd_type *result_opnd, expr_arg_type *res_exp_desc, boolean is_function)
void change_asg_to_where (int asg_idx)
boolean final_arg_work (opnd_type *list_opnd, int spec_idx, int num_args, expr_arg_type *elemental_exp_desc)
act_arg_type get_act_arg_type (expr_arg_type *exp_desc)
int create_tmp_asg (opnd_type *r_opnd, expr_arg_type *exp_desc, opnd_type *left_opnd, int intent, boolean stmt_tmp, boolean save_where_dealloc_stmt)
boolean gen_bd_entry (opnd_type *r_opnd, expr_arg_type *exp_desc, int *res_bd_idx, int line, int col)
void determine_tmp_size (opnd_type *opnd, int type_idx)
void flatten_function_call (opnd_type *result)
int get_stmt_tmp (int type_idx, boolean dope_vector, int rank)
int create_argchck_descriptor (opnd_type *call_opnd)

Variables

static char USMID [] = "\n@(#)5.0_pl/sources/s_call.c 5.15 10/19/99 17:14:30\n"
boolean variable_size_func_expr = FALSE

Function Documentation

boolean call_list_semantics ( opnd_type result_opnd,
expr_arg_type res_exp_desc,
boolean  is_function 
)

Definition at line 127 of file s_call.c.

References ADD_ATTR_TO_LOCAL_LIST, AL_ATTR_IDX, AL_NEXT_IDX, expr_semantics_args::allocatable, Aloc_Opr, Alt_Return_Opr, Amax0_Intrinsic, Amax1_Intrinsic, Ansi, arg_info_list, arg_info_list_base, arg_info_list_size, arg_info_list_top, arg_list, arg_list_size, Assignment_Stmt, Assumed_Shape, expr_semantics_args::assumed_shape, Assumed_Size, expr_semantics_args::assumed_size, Assumed_Size_Char, AT_ALT_DARG, AT_ATTR_LINK, AT_CIF_SYMBOL_ID, AT_COMPILER_GEND, AT_DCL_ERR, AT_DEF_IN_CHILD, AT_DEFINED, AT_ELEMENTAL_INTRIN, AT_HOST_ASSOCIATED, AT_IGNORE_ATTR_LINK, AT_IS_DARG, AT_IS_INTRIN, AT_LOCKED_IN, AT_MODULE_IDX, AT_NAME_IDX, AT_NAME_LEN, AT_NOT_VISIBLE, AT_OBJ_CLASS, AT_OBJ_NAME, AT_OBJ_NAME_PTR, AT_OPTIONAL, AT_REF_IN_CHILD, AT_REFERENCED, AT_SEMANTICS_DONE, AT_Tbl_Idx, AT_USE_ASSOCIATED, ATD_ALLOCATABLE, ATD_ARRAY_IDX, ATD_FUNC_IDX, ATD_IM_A_DOPE, ATD_INTENT, ATD_POINTER, ATD_STOR_BLK_IDX, ATD_TARGET, ATD_TYPE_IDX, ATI_CIF_SEEN_IN_CALL, ATI_FIRST_SPECIFIC_IDX, ATI_INTERFACE_CLASS, ATI_NUM_SPECIFICS, ATI_USER_SPECIFIED, ATP_ARGCHCK_CALL, ATP_DCL_EXTERNAL, ATP_DUMMY_PROC_LINK, ATP_ELEMENTAL, ATP_EXPL_ITRFC, ATP_EXTERNAL_INTRIN, ATP_EXTRA_DARG, ATP_FIRST_IDX, ATP_HAS_ALT_RETURN, ATP_IN_INTERFACE_BLK, ATP_INTERFACE_IDX, ATP_INTRIN_ENUM, ATP_NUM_DARGS, ATP_PGM_UNIT, ATP_PROC, ATP_PURE, ATP_RECURSIVE, ATP_RSLT_IDX, ATP_RSLT_NAME, ATP_SCP_ALIVE, ATP_SCP_IDX, ATP_TASK_SHARED, ATP_VFUNCTION, cdir_switch_entry::autoscope, BD_ARRAY_CLASS, BD_RANK, Before, Bit_Size_Intrinsic, Blockdata, Br_Index_Opr, cdir_switches, CG_INTEGER_DEFAULT_TYPE, expr_semantics_args::char_len, Character, check_arg_for_co_array(), check_for_elementals(), check_for_legal_define(), cif_call_site_rec(), cif_flags, CIF_No_Usage_Rec, cif_object_rec_for_func_result(), CIF_Symbol_Reference, cif_usage_rec(), Clock_Intrinsic, cmd_line_flags, Cmplx_Intrinsic, CN_CONST, CN_INT_TO_C, CN_Tbl_Idx, CN_TYPE_IDX, cmd_line_flags_entry::co_array_fortran, arg_strct::col, Comment, compare_darg_to_actual_arg(), expr_semantics_args::contig_array, COPY_ATTR_NTRY, COPY_OPND, COPY_SHAPE, copy_subtree(), COPY_TBL_NTRY, create_argchck_descriptor(), CREATE_FUNC_RSLT, CRI_Ptr_8, curr_scp_idx, curr_stmt_sh_idx, Data_Obj, Date_Intrinsic, Dble_Intrinsic, defer_stmt_expansion, Digits_Intrinsic, Dmax1_Intrinsic, expr_semantics_args::dope_vector, Dummy_Proc, arg_strct::ed, enlarge_call_list_tables(), enlarge_info_list_table(), Error, EXIT, expr_mode, expr_semantics(), FALSE, False_Parm_Opr, final_arg_work(), find_base_attr(), find_left_attr(), find_opnd_line_and_column(), flatten_function_call(), fnd_semantic_err(), expr_semantics_args::foldable, Func_Entry, Func_Exit, Function, FUNCTION_MUST_BE_SUBROUTINE, gen_compiler_tmp(), gen_sh(), Generic_Function_Interface, Generic_Subroutine_Interface, Generic_Unknown_Interface, get_char_len(), get_shape_from_attr(), expr_semantics_args::has_symbolic, host_associated_attr_semantics(), Huge_Intrinsic, idx, IL_ARG_DESC_IDX, IL_ARG_DESC_VARIANT, IL_COL_NUM, IL_FLD, IL_IDX, IL_LINE_NUM, IL_NEXT_LIST_IDX, IL_OPND, IL_PREV_LIST_IDX, IL_Tbl_Idx, IM_TYPE_IDX, IMPL_IDX, in_call_list, init_arg_info, init_exp_desc, Initialization_Expr, Integer, Intent_Inout, Intent_Out, Interface, Intern_Proc, Internal, Intrin_Proc, intrinsic_semantics, io_item_must_flatten, IR_ARRAY_SYNTAX, IR_COL_NUM, IR_COL_NUM_L, IR_FLD_L, IR_FLD_R, IR_IDX_L, IR_IDX_R, IR_INLINE_STATE, IR_LINE_NUM, IR_LINE_NUM_L, IR_LIST_CNT_R, IR_OPND_R, IR_OPR, IR_RANK, IR_Tbl_Idx, IR_TYPE_IDX, Irtc_Intrinsic, Jdate_Intrinsic, Kind_Intrinsic, arg_strct::kwd, kwd, Kwd_Opr, Label, expr_semantics_args::label, label_allowed, Lbound_Intrinsic, Len_Intrinsic, arg_strct::line, expr_semantics_args::linear_type, Log2_Images_Intrinsic, Max0_Intrinsic, Max1_Intrinsic, max_call_list_size, Max_Intrinsic, Maxexponent_Intrinsic, arg_strct::maybe_modified, Merge_Intrinsic, Min0_Intrinsic, Min_Intrinsic, Minexponent_Intrinsic, MISC_RECS, Module, Module_Proc, msg_num_entry::msg_num, need_pure_function, no_func_expansion, cdir_switch_entry::no_internal_calls, NO_Tbl_Idx, Not_Referenced, Not_Specified_Sgi, NTR_ATTR_LIST_TBL, NTR_ATTR_TBL, NTR_IR_LIST_TBL, NTR_IR_TBL, NTR_SN_TBL, NULL, NULL_IDX, Null_Intrinsic, null_opnd, msg_num_entry::num_args, Num_Images_Intrinsic, Numarg_Intrinsic, Obj_Use_Extern_Func, Obj_Use_Extern_Subr, Obj_Use_Init_Expr, Obj_Use_Spec_Expr, on_off_flags, OPND_FLD, OPND_IDX, cdir_switch_entry::parallel_region, Pgm_Unit, arg_strct::pgm_unit, Pgm_Unknown, expr_semantics_args::pointer, Precision_Intrinsic, PRINTMSG(), Priv, Program, Radix_Intrinsic, Ranf_Intrinsic, Range_Intrinsic, expr_semantics_args::rank, Real, on_off_flags_entry::recursive, Referenced, Regular_Expr, Rem_Images_Intrinsic, Repeat_Intrinsic, Reshape_Intrinsic, Restricted_Imp_Do_Expr, Rtc_Intrinsic, cmd_line_flags_entry::runtime_arg_call, cmd_line_flags_entry::runtime_argument, SCP_ATTR_IDX, SCP_HAS_CALLS, SCP_SB_DARG_IDX, SCP_SB_STACK_IDX, SCP_TMP_LIST, sec_name_tbl, Section_Subscript_Opr, SET_IMPL_TYPE_IN_SCP, set_inline_state(), set_shape_for_deferred_funcs(), SH_IR_IDX, SH_P2_SKIP_ME, SH_PREV_IDX, expr_semantics_args::shape, Shape_Intrinsic, expr_semantics_args::shape_known, SIK_Intrinsic, Size_Intrinsic, SN_ATTR_IDX, SN_NAME_IDX, SN_NAME_LEN, SN_SIBLING_LINK, SOURCE_TO_SOURCE, Specification_Expr, srch_kwd_name(), srch_sym_tbl(), SRK_Intrinsic, stmt_expansion_control_end(), stmt_expansion_control_start(), Stmt_Expansion_Opr, Stmt_Func_Expr, storage_bit_size_tbl, Struct_Opr, Structure, Subroutine, Subscript_Opr, Substring_Opr, expr_semantics_args::target, expr_semantics_args::tmp_reference, TRACE, Transfer_Intrinsic, Trim_Intrinsic, Triplet_Opr, TRUE, TYP_CHAR_CLASS, TYP_IDX, TYP_LINEAR, TYP_TYPE, expr_semantics_args::type, expr_semantics_args::type_idx, Typeless, TYPELESS_DEFAULT_TYPE, Ubound_Intrinsic, Unknown_Intrinsic, Warning, where_ir_idx, Whole_Subscript_Opr, Whole_Substring_Opr, expr_semantics_args::will_fold_later, within_forall_construct, within_forall_mask_expr, XREF_RECS, and xref_state.

Referenced by call_stmt_semantics(), gen_bounds_check_call(), gen_conform_check_call(), gen_ptr_chk_call(), gen_rbounds_check_call(), and gen_sbounds_check_call().

Here is the call graph for this function:

static boolean compare_func_result ( int  darg_attr,
int  a_type_idx,
int  a_type,
int  a_linear_type,
int  a_rank,
int  spec_count,
int  line,
int  column 
) [static]
int create_argchck_descriptor ( opnd_type call_opnd)
int create_tmp_asg ( opnd_type r_opnd,
expr_arg_type exp_desc,
opnd_type left_opnd,
int  intent,
boolean  stmt_tmp,
boolean  save_where_dealloc_stmt 
)

Definition at line 4851 of file s_call.c.

References After, alloc_block_end_idx, alloc_block_start_idx, Alloc_Opr, Asg_Opr, Assignment_Stmt, AT_DEFINED, AT_Tbl_Idx, ATD_ARRAY_IDX, ATD_ASG_TMP, ATD_AUTO_BASE_IDX, ATD_AUTOMATIC, ATD_FLD, ATD_STOR_BLK_IDX, ATD_TMP_IDX, ATT_CHAR_SEQ, BD_LEN_FLD, BD_LEN_IDX, Before, Character, CN_INTEGER_ONE_IDX, CN_INTEGER_ZERO_IDX, CN_Tbl_Idx, expr_semantics_args::constant, expr_semantics_args::contig_array, contig_test_ir_idx, COPY_OPND, copy_subtree(), curr_scp_idx, curr_stmt_sh_idx, Dealloc_Opr, defer_stmt_expansion, determine_tmp_size(), FALSE, find_opnd_line_and_column(), expr_semantics_args::foldable, Func_Entry, Func_Exit, gen_bd_entry(), GEN_COMPILER_TMP_ASG, gen_if_stmt(), gen_opnd(), gen_sh(), gen_whole_subscript(), gen_whole_substring(), get_stmt_tmp(), IL_COL_NUM, IL_FLD, IL_IDX, IL_LINE_NUM, IL_NEXT_LIST_IDX, IL_OPND, IL_PREV_LIST_IDX, IL_Tbl_Idx, Intent_In, Intent_Inout, Intent_Out, Internal, IR_COL_NUM, IR_COL_NUM_L, IR_FLD_L, IR_FLD_R, IR_IDX_L, IR_IDX_R, IR_LINE_NUM, IR_LINE_NUM_L, IR_LIST_CNT_L, IR_OPND_L, IR_OPND_R, IR_OPR, IR_RANK, IR_Tbl_Idx, IR_TYPE_IDX, Max_Opr, Ne_Opr, NTR_IR_LIST_TBL, NTR_IR_TBL, ntr_sh_tbl(), NULL, NULL_IDX, OPND_COL_NUM, OPND_FLD, OPND_IDX, OPND_LINE_NUM, orig_sh_idx, PRINTMSG(), Priv, expr_semantics_args::rank, SA_INTEGER_DEFAULT_TYPE, SCP_SB_BASED_IDX, expr_semantics_args::section, SH_COL_NUM, SH_COMPILER_GEN, SH_GLB_LINE, SH_IR_IDX, SH_NEXT_IDX, SH_P2_SKIP_ME, SH_PREV_IDX, SH_STMT_TYPE, stmt_expansion_control_end(), stmt_expansion_control_start(), stmt_start_col, stmt_start_line, Structure, expr_semantics_args::tmp_reference, TRACE, transform_char_sequence_ref(), TRUE, TYP_FLD, TYP_IDX, expr_semantics_args::type, expr_semantics_args::type_idx, TYPELESS_DEFAULT_TYPE, validate_char_len(), where_dealloc_stmt_idx, and expr_semantics_args::will_fold_later.

Referenced by adjustl_intrinsic(), create_runtime_array_constructor(), directive_stmt_semantics(), doall_cmic_semantics(), doparallel_cmic_semantics(), else_stmt_semantics(), encode_decode_stmt_semantics(), expand_io_list(), final_arg_work(), forall_semantics(), gen_assumed_shape_copy(), goto_stmt_semantics(), io_ctl_list_semantics(), make_logical_array_tmp(), mp_directive_semantics(), open_mp_directive_semantics(), optimize_reshape(), parallel_cmic_semantics(), random_seed_intrinsic(), ranget_intrinsic(), select_stmt_semantics(), stmt_func_call_opr_handler(), and where_stmt_semantics().

Here is the call graph for this function:

boolean final_arg_work ( opnd_type list_opnd,
int  spec_idx,
int  num_args,
expr_arg_type elemental_exp_desc 
)

Definition at line 2276 of file s_call.c.

References After, Aloc_Opr, arg_assoc_tbl, arg_info_list, Array_Tmp_Ptr, Asg_Opr, Assignment_Stmt, arg_strct::association, Assumed_Shape, Assumed_Size, AT_COMPILER_GEND, AT_IS_INTRIN, AT_OBJ_CLASS, AT_OBJ_NAME_PTR, AT_OPTIONAL, AT_SEMANTICS_DONE, AT_Tbl_Idx, ATD_ARRAY_IDX, ATD_AUTO_BASE_IDX, ATD_AUTOMATIC, ATD_AUXILIARY, ATD_CLASS, ATD_FLD, ATD_IGNORE_TKR, ATD_IM_A_DOPE, ATD_INTENT, ATD_INTRIN_DARG_TYPE, ATD_LIVE_DO_VAR, ATD_NOT_PT_UNIQUE_MEM, ATD_PE_ARRAY_IDX, ATD_POINTER, ATD_STOR_BLK_IDX, ATD_TARGET, ATD_TMP_IDX, ATD_TYPE_IDX, ATP_ELEMENTAL, ATP_EXPL_ITRFC, ATP_EXTRA_DARG, ATP_FIRST_IDX, ATP_NUM_DARGS, ATP_PGM_UNIT, ATP_PROC, ATP_RSLT_IDX, ATP_VFUNCTION, ATT_CHAR_SEQ, Backspace_Attr_Idx, BD_ARRAY_CLASS, BD_LEN_FLD, BD_LEN_IDX, BD_RANK, Before, Buffer_In_Attr_Idx, Buffer_Out_Attr_Idx, C_INT_TO_CN, Call_Opr, Call_Stmt, cast_typeless_constant(), Caution, CG_INTEGER_DEFAULT_TYPE, expr_semantics_args::char_len, Character, Character_1, CHARACTER_DEFAULT_TYPE, check_call_for_global_def(), CHECK_CONTIG_FLAG, check_elemental_conformance(), check_for_constructors(), CIF_No_Usage_Rec, CLEAR_TBL_NTRY, Close_Attr_Idx, cmd_line_flags, CN_CONST, CN_HOLLERITH_TYPE, CN_INT_TO_C, CN_INTEGER_NEG_ONE_IDX, CN_INTEGER_ONE_IDX, CN_INTEGER_ZERO_IDX, CN_POOL_IDX, CN_Tbl_Idx, CN_TYPE_IDX, compare_cn_and_value(), Compiler_Tmp, Complex, Complex_4, Const_Len_Char, Const_Tmp_Loc_Opr, contig_test_ir_idx, COPY_IN, COPY_IN_COPY_OUT, COPY_IN_MAKE_DV, COPY_OPND, COPY_SHAPE, CP_CONSTANT, create_tmp_asg(), create_tmp_DV_asg(), CRI_Ch_Ptr_8, CRI_Parcel_Ptr_8, CRI_Ptr_8, curr_scp_idx, curr_stmt_sh_idx, Data_Obj, defer_stmt_expansion, expr_semantics_args::dope_vector, dummy, Dummy_Argument, Dv_Access_A_Contig, Dv_Access_Base_Addr, Dv_Deref_Opr, arg_strct::ed, Endfile_Attr_Idx, Eq_Opr, Error, ERROR_ASSOC, EXIT, Explicit_Shape, expr_mode, expr_semantics(), FALSE, False_Parm_Opr, Fcd_Opr, find_left_attr(), find_opnd_line_and_column(), opnd_entry::fld, fold_relationals(), Func_Entry, Func_Exit, Function, gen_compiler_tmp(), GEN_COMPILER_TMP_ASG, gen_dv_whole_def(), gen_dv_whole_def_init(), gen_if_stmt(), gen_internal_call_stmt(), gen_ir(), gen_opnd(), gen_runtime_ptr_chk(), gen_sh(), gen_whole_subscript(), gen_whole_substring(), GENERATE_WHIRL, get_act_arg_type(), get_dummy_arg_type(), glb_tbl_idx, Gt_Opr, H_Hollerith, opnd_entry::idx, ir_list_tbl_entry::il, IL_ARG_MULTI_FLAGS, IL_COL_NUM, IL_FLD, IL_IDX, IL_INTRIN_PLACE_HOLDER, IL_LINE_NUM, IL_NEXT_LIST_IDX, IL_OPND, IL_PREV_LIST_IDX, IL_Tbl_Idx, init_exp_desc, Inquire_Attr_Idx, Integer, Integer_1, Integer_2, Integer_4, INTEGER_DEFAULT_TYPE, Intent_In, Intent_Inout, Intent_Out, Internal, Intrin_Proc, 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_LIST_CNT_L, IR_LIST_CNT_R, ir_list_tbl, IR_OPND_L, IR_OPND_R, IR_OPR, IR_Tbl_Idx, IR_TYPE_IDX, IR_WHOLE_ARRAY, Kwd_Opr, L_Hollerith, expr_semantics_args::linear_type, ir_list_tbl_entry::link, Loc_Opr, Logical_1, Logical_2, Logical_4, LOGICAL_DEFAULT_TYPE, Lt_Opr, make_base_assumed_size(), make_base_subtree(), MAKE_DV, arg_strct::maybe_modified, Mult_Opr, Ne_Opr, NO_Tbl_Idx, Not_Hollerith, ntr_const_tbl(), NTR_IR_LIST_TBL, NTR_IR_TBL, ntr_type_tbl(), NULL, NULL_IDX, Null_Intrinsic_Opr, msg_num_entry::num_args, on_off_flags, Open_Attr_Idx, OPND_COL_NUM, OPND_FLD, OPND_IDX, OPND_LINE_NUM, on_off_flags_entry::pad_char_literals, PASS_ADDRESS, PASS_ADDRESS_FROM_DV, PASS_DV, PASS_DV_COPY, PASS_SECTION_ADDRESS, Pgm_Unit, expr_semantics_args::pointer, Present_Opr, ir_list_link_entry::prev_idx, PRINTMSG(), Priv, expr_semantics_args::rank, Real, Real_4, expr_semantics_args::reference, Regular_Expr, Rewind_Attr_Idx, cmd_line_flags_entry::runtime_ptr_chk, SA_INTEGER_DEFAULT_TYPE, save_array_syntax_subscripts(), SCP_SB_STACK_IDX, Section_Subscript_Opr, set_at_actual_arg(), SH_IR_IDX, SH_NEXT_IDX, SH_P2_SKIP_ME, SH_PREV_IDX, expr_semantics_args::shape, Short_Char_Const, Short_Typeless_Const, SN_ATTR_IDX, stmt_expansion_control_end(), stmt_expansion_control_start(), stmt_start_col, stmt_start_line, stmt_type, storage_bit_size_tbl, Struct_Opr, Structure, Subscript_Opr, Substring_Opr, THIS_IS_TRUE, expr_semantics_args::tmp_reference, TRACE, transform_char_sequence_ref(), TRUE, TYP_CHAR_CLASS, TYP_FLD, TYP_IDX, TYP_LINEAR, TYP_TYPE, TYP_WORK_IDX, expr_semantics_args::type, expr_semantics_args::type_idx, type_tbl, TYPELESS_DEFAULT_TYPE, Unknown_Dummy, validate_char_len(), expr_semantics_args::vector_subscript, Warning, Whole_Allocatable, Whole_Sequence, Whole_Subscript_Opr, Whole_Substring_Opr, and xref_state.

Referenced by adjustl_intrinsic(), backspace_stmt_semantics(), buffer_stmt_semantics(), call_list_semantics(), close_stmt_semantics(), endfile_stmt_semantics(), flatten_function_call(), inquire_stmt_semantics(), length_intrinsic(), open_stmt_semantics(), resolve_ext_opr(), rewind_stmt_semantics(), stop_pause_stmt_semantics(), and unit_intrinsic().

Here is the call graph for this function:

static void find_attrs_in_il ( int  list_idx) [static]
static void find_attrs_in_ir ( int  ir_idx) [static]
void flatten_function_call ( opnd_type result)

Definition at line 6485 of file s_call.c.

References ADD_ATTR_TO_LOCAL_LIST, After, Alloc_Opr, Aloc_Opr, Asg_Opr, Assignment_Stmt, Assumed_Size_Char, AT_ACTUAL_ARG, AT_DEFINED, AT_IS_INTRIN, AT_OBJ_NAME_PTR, AT_SEMANTICS_DONE, AT_Tbl_Idx, ATD_ARRAY_IDX, ATD_AUTO_BASE_IDX, ATD_AUTOMATIC, ATD_ELEMENTAL_CALL_TMP, ATD_FLD, ATD_IM_A_DOPE, ATD_NOT_PT_UNIQUE_MEM, ATD_POINTER, ATD_STOR_BLK_IDX, ATD_TMP_IDX, ATD_TYPE_IDX, ATP_ELEMENTAL, ATP_EXTRA_DARG, ATP_FIRST_IDX, ATP_INTRIN_ENUM, ATP_NUM_DARGS, ATP_PROC, ATP_RSLT_IDX, ATT_CHAR_SEQ, ATT_DEFAULT_INITIALIZED, ATT_POINTER_CPNT, BD_ARRAY_SIZE, BD_LEN_FLD, BD_LEN_IDX, BD_RANK, Before, C_INT_TO_CN, Call_Opr, Call_Stmt, CG_INTEGER_DEFAULT_TYPE, change_asg_to_where(), Character, CN_INTEGER_ONE_IDX, CN_INTEGER_ZERO_IDX, CN_Tbl_Idx, COPY_OPND, create_alloc_descriptor(), create_lib_entry_attr(), CRI_Ch_Ptr_8, CRI_Ptr_8, curr_scp_idx, curr_stmt_sh_idx, Dealloc_Attr_Idx, DEALLOC_LIB_ENTRY, DEALLOC_NAME_LEN, Dealloc_Opr, Deallocate_Opr, defer_stmt_expansion, determine_tmp_size(), Dummy_Proc, Dv_Deref_Opr, Error, EXIT, FALSE, final_arg_work(), Func_Entry, Func_Exit, FUNCTION_MUST_BE_SUBROUTINE, gen_alloc_header_const(), gen_bd_entry(), gen_compiler_tmp(), GEN_COMPILER_TMP_ASG, gen_dv_whole_def_init(), gen_sh(), gen_whole_subscript(), gen_whole_substring(), get_stmt_tmp(), glb_tbl_idx, IL_ARG_DESC_VARIANT, IL_COL_NUM, IL_FLD, IL_IDX, IL_LINE_NUM, IL_NEXT_LIST_IDX, IL_PREV_LIST_IDX, IL_Tbl_Idx, init_exp_desc, Integer_4, Integer_8, IR_COL_NUM, IR_COL_NUM_L, IR_CONTIG_ARRAY, IR_FLD_L, IR_FLD_R, IR_IDX_L, IR_IDX_R, IR_LINE_NUM, IR_LINE_NUM_L, IR_LIST_CNT_L, IR_LIST_CNT_R, IR_OPND_L, IR_OPND_R, IR_OPR, IR_RANK, IR_Tbl_Idx, IR_TYPE_IDX, keep_orig_sh, L, expr_semantics_args::linear_type, Loc_Opr, make_base_subtree(), no_func_expansion, NTR_IR_LIST_TBL, NTR_IR_TBL, NULL, NULL_IDX, msg_num_entry::num_args, OPND_COL_NUM, OPND_FLD, OPND_IDX, OPND_LINE_NUM, orig_sh_idx, PRINTMSG(), Priv, process_cpnt_inits(), process_variable_size_func(), expr_semantics_args::rank, SA_INTEGER_DEFAULT_TYPE, SCP_ATTR_IDX, SCP_SB_BASED_IDX, SCP_SB_STACK_IDX, SH_IR_IDX, SH_NEXT_IDX, SH_P2_SKIP_ME, SH_PREV_IDX, Spread_Intrinsic, stmt_expansion_control_end(), stmt_expansion_control_start(), stmt_start_col, stmt_start_line, Structure, Subscript_Opr, TRACE, transform_char_sequence_ref(), TRUE, TYP_CHAR_CLASS, TYP_IDX, TYP_LINEAR, TYP_TYPE, expr_semantics_args::type, expr_semantics_args::type_idx, TYPELESS_DEFAULT_TYPE, Var_Len_Array, Var_Len_Char, where_ir_idx, and Whole_Subscript_Opr.

Referenced by call_list_semantics().

Here is the call graph for this function:

static int gen_arg_type_descriptor ( int  idx,
boolean  this_is_call,
int  line,
int  col 
) [static]

Definition at line 9874 of file s_call.c.

References Aloc_Opr, arg_info_list, ARGCHCK_CHAR_LEN_IDX, ARGCHCK_SIZE_IDX, ARGCHCK_STRUCT_TBL_IDX, expr_semantics_args::array_elt, Asg_Opr, Assignment_Stmt, Assumed_Shape, Assumed_Size, Assumed_Size_Char, AT_OBJ_CLASS, AT_OPTIONAL, AT_SEMANTICS_DONE, AT_Tbl_Idx, ATD_ARRAY_IDX, ATD_IGNORE_TKR, ATD_IM_A_DOPE, ATD_INTENT, ATD_POINTER, ATD_STOR_BLK_IDX, ATD_TYPE_IDX, ATP_PGM_UNIT, ATP_RSLT_IDX, BD_ARRAY_CLASS, BD_LEN_FLD, BD_LEN_IDX, BD_RANK, Before, C_INT_TO_CN, C_TO_F_INT, CG_INTEGER_DEFAULT_TYPE, Character, CHECK_CONTIG_FLAG, CIF_No_Usage_Rec, CLEAR_TBL_NTRY, CN_CONST, CN_INTEGER_ONE_IDX, CN_INTEGER_ZERO_IDX, CN_Tbl_Idx, CN_TYPE_IDX, Const_Tmp_Loc_Opr, COPY_OPND, create_struct_argchck_tbl(), CRI_Ptr_8, curr_scp_idx, curr_stmt_sh_idx, Data_Obj, Default_Typed, Deferred_Shape, expr_semantics_args::dope_vector, arg_strct::ed, expr_mode, expr_semantics(), FALSE, find_base_attr(), folder_driver(), Func_Entry, Func_Exit, Function, gen_compiler_tmp(), gen_sh(), gen_static_integer_array_tmp(), gen_whole_subscript(), get_arg_type(), IL_ARG_DESC_IDX, IL_COL_NUM, IL_FLD, IL_IDX, IL_LINE_NUM, IL_NEXT_LIST_IDX, IL_OPND, IL_PREV_LIST_IDX, IL_Tbl_Idx, Init_Opr, Init_Reloc_Opr, Integer_8, Intent_Inout, Intent_Out, Internal, 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_LIST_CNT_R, IR_OPND_L, IR_OPND_R, IR_OPR, IR_Tbl_Idx, IR_TYPE_IDX, linear_to_kind_type, Loc_Opr, Mult_Opr, ntr_const_tbl(), NTR_IR_LIST_TBL, NTR_IR_TBL, ntr_type_tbl(), NULL, NULL_IDX, null_opnd, NUM_TARGET_ARGCHCK_DESC_WORDS, OPND_COL_NUM, OPND_FLD, OPND_IDX, OPND_LINE_NUM, PASS_ADDRESS_FROM_DV, PASS_SECTION_ADDRESS, Pgm_Unit, arg_strct::pgm_unit, Pgm_Unknown, expr_semantics_args::pointer, PRINTMSG(), Priv, expr_semantics_args::rank, expr_semantics_args::reference, Regular_Expr, SCP_SB_STACK_IDX, SH_IR_IDX, SH_P2_SKIP_ME, SH_PREV_IDX, SN_ATTR_IDX, stmt_start_col, stmt_start_line, Structure, Subroutine, Subroutine_Arg, Subscript_Opr, Substring_Opr, TRACE, TRUE, TYP_BIT_LEN, TYP_CHAR_CLASS, TYP_DESC, TYP_FLD, TYP_IDX, TYP_LINEAR, TYP_TYPE, TYP_WORK_IDX, expr_semantics_args::type_idx, type_tbl, Typeless, TYPELESS_DEFAULT_TYPE, Whole_Substring_Opr, and xref_state.

Referenced by create_argchck_descriptor().

Here is the call graph for this function:

boolean gen_bd_entry ( opnd_type r_opnd,
expr_arg_type exp_desc,
int *  res_bd_idx,
int  line,
int  col 
)

Definition at line 5229 of file s_call.c.

References Asg_Opr, Assignment_Stmt, AT_DEFINED, AT_OBJ_CLASS, AT_Tbl_Idx, ATD_ARRAY_IDX, ATD_CLASS, ATD_TASK_PRIVATE, ATD_TYPE_IDX, ATL_DEF_STMT_IDX, BD_ARRAY_CLASS, BD_ARRAY_SIZE, BD_COLUMN_NUM, BD_FLOW_DEPENDENT, BD_LB_FLD, BD_LB_IDX, BD_LEN_FLD, BD_LEN_IDX, BD_LINE_NUM, BD_RANK, BD_RESOLVED, BD_SM_FLD, BD_SM_IDX, BD_UB_FLD, BD_UB_IDX, BD_XT_FLD, BD_XT_IDX, Before, Br_True_Opr, CG_INTEGER_DEFAULT_TYPE, Character, CIF_No_Usage_Rec, CN_INTEGER_ONE_IDX, CN_INTEGER_ZERO_IDX, CN_Tbl_Idx, compare_cn_and_value(), Compiler_Tmp, expr_semantics_args::constant, Constant_Size, Continue_Stmt, COPY_OPND, curr_stmt_sh_idx, Data_Obj, determine_num_elements(), Eq_Opr, Explicit_Shape, expr_mode, expr_semantics(), FALSE, find_left_attr(), size_offset_entry::fld, Func_Entry, Func_Exit, Ge_Opr, GEN_COMPILER_TMP_ASG, gen_copyin_bounds_stmt(), gen_internal_lbl(), gen_sh(), gen_temp_init(), size_offset_entry::idx, If_Stmt, Internal, 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_OPND_L, IR_OPND_R, IR_OPR, IR_Tbl_Idx, IR_TYPE_IDX, L, Label_Opr, LOGICAL_DEFAULT_TYPE, Minus_Opr, Mult_Opr, ntr_array_in_bd_tbl(), NTR_IR_TBL, NULL, NULL_IDX, OPND_FLD, OPND_IDX, Plus_Opr, PRINTMSG(), Priv, expr_semantics_args::rank, reassign_XT_temps, Regular_Expr, reserve_array_ntry(), SA_INTEGER_DEFAULT_TYPE, set_stride_for_first_dim(), SH_IR_IDX, SH_P2_SKIP_ME, SH_PREV_IDX, expr_semantics_args::shape, SHAPE_FOLDABLE, SHAPE_WILL_FOLD_LATER, shared_bd_idx, stride, TRACE, TRUE, TYP_FLD, expr_semantics_args::type, expr_semantics_args::type_idx, TYPELESS_DEFAULT_TYPE, validate_char_len(), Var_Len_Array, and xref_state.

Referenced by create_tmp_asg(), flatten_function_call(), and optimize_reshape().

Here is the call graph for this function:

static int gen_call_type_descriptor ( int  attr_idx,
int  rslt_idx,
boolean  this_is_call,
int  line,
int  col 
) [static]

Definition at line 9459 of file s_call.c.

References ARGCHCK_CHAR_LEN_IDX, ARGCHCK_SIZE_IDX, ARGCHCK_STRUCT_TBL_IDX, Asg_Opr, Assignment_Stmt, Assumed_Size_Char, AT_OBJ_NAME_PTR, AT_SEMANTICS_DONE, AT_Tbl_Idx, ATD_ARRAY_IDX, ATD_POINTER, ATD_STOR_BLK_IDX, ATD_TYPE_IDX, ATP_PGM_UNIT, BD_LEN_FLD, BD_LEN_IDX, BD_RANK, Before, C_INT_TO_CN, C_TO_F_INT, CG_INTEGER_DEFAULT_TYPE, Character, CLEAR_TBL_NTRY, CN_CONST, CN_INTEGER_ONE_IDX, CN_INTEGER_ZERO_IDX, CN_Tbl_Idx, COPY_OPND, create_struct_argchck_tbl(), CRI_Ptr_8, curr_scp_idx, curr_stmt_sh_idx, FALSE, Func_Entry, Func_Exit, Function, gen_compiler_tmp(), gen_sh(), gen_static_integer_array_tmp(), gen_whole_subscript(), get_arg_type(), GLOBAL_LINE_TO_FILE_LINE, idx, IL_COL_NUM, IL_FLD, IL_IDX, IL_LINE_NUM, IL_NEXT_LIST_IDX, IL_PREV_LIST_IDX, IL_Tbl_Idx, Init_Opr, Init_Reloc_Opr, 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_LIST_CNT_R, IR_OPND_L, IR_OPND_R, IR_OPR, IR_Tbl_Idx, IR_TYPE_IDX, linear_to_kind_type, Loc_Opr, name, ntr_const_tbl(), NTR_IR_LIST_TBL, NTR_IR_TBL, ntr_type_tbl(), NULL, NULL_IDX, NUM_TARGET_ARGCHCK_DESC_WORDS, OPND_COL_NUM, OPND_FLD, OPND_IDX, OPND_LINE_NUM, Priv, SCP_ATTR_IDX, SCP_SB_STACK_IDX, SH_IR_IDX, SH_P2_SKIP_ME, SH_PREV_IDX, strcpy, Structure, Subprogram_Arg, Subroutine, Subroutine_Arg, Subscript_Opr, TRACE, TRUE, TYP_BIT_LEN, TYP_CHAR_CLASS, TYP_FLD, TYP_IDX, TYP_LINEAR, TYP_TYPE, TYP_WORK_IDX, type_tbl, Typeless, and TYPELESS_DEFAULT_TYPE.

Referenced by create_argchck_descriptor().

Here is the call graph for this function:

static void process_variable_size_func ( int  rslt_idx,
int  arg_list_idx,
int  sf_darg_idx,
int  sf_num_dargs,
int *  new_type_idx,
int *  new_bd_idx 
) [static]

Definition at line 8299 of file s_call.c.

References Aloc_Opr, arg_info_list, arg_info_list_base, arg_info_list_size, arg_info_list_top, arg_strct::association, Assumed_Shape, Assumed_Size_Char, AT_OBJ_CLASS, AT_Tbl_Idx, ATD_ARRAY_IDX, ATD_CLASS, ATD_FLD, ATD_IM_A_DOPE, ATD_RESHAPE_ARRAY_IDX, ATD_SF_ARG_IDX, ATD_SF_DARG, ATD_SF_LINK, ATD_TMP_IDX, ATD_TYPE_IDX, ATP_DUMMY_PROC_LINK, ATP_PROC, BD_ARRAY_CLASS, BD_ARRAY_SIZE, BD_RANK, BD_XT_FLD, BD_XT_IDX, Character, check_bd_typ_for_dargs(), CHECK_CONTIG_FLAG, Compiler_Tmp, Const_Tmp_Loc_Opr, COPY_IN, COPY_IN_COPY_OUT, COPY_IN_MAKE_DV, COPY_OPND, Data_Obj, expr_semantics_args::dope_vector, Dummy_Proc, Dv_Deref_Opr, arg_strct::ed, enlarge_info_list_table(), FALSE, find_opnd_line_and_column(), opnd_entry::fld, FOUND, Func_Entry, Func_Exit, gen_sf_dv_whole_def(), opnd_entry::idx, IL_ARG_DESC_IDX, IL_IDX, IL_NEXT_LIST_IDX, IL_OPND, init_arg_info, Internal, IR_COL_NUM, IR_COL_NUM_L, IR_FLD_L, IR_IDX_L, IR_LINE_NUM, IR_LINE_NUM_L, IR_OPND_L, IR_OPR, IR_Tbl_Idx, IR_TYPE_IDX, Loc_Opr, MAKE_DV, make_new_bd_entries(), NTR_IR_TBL, NULL, NULL_IDX, null_opnd, OPND_FLD, OPND_IDX, OPND_LIST_CNT, PASS_ADDRESS, PASS_ADDRESS_FROM_DV, PASS_DV, PASS_DV_COPY, PASS_SECTION_ADDRESS, Pgm_Unit, print_at(), PRINTMSG(), expr_semantics_args::rank, expr_semantics_args::shape, SN_ATTR_IDX, stmt_start_col, stmt_start_line, TRACE, TRUE, TYP_CHAR_CLASS, TYP_TYPE, Var_Len_Array, Var_Len_Char, and variable_size_func_expr.

Referenced by flatten_function_call().

Here is the call graph for this function:

static void set_at_actual_arg ( int  list_idx) [static]

Variable Documentation

char USMID[] = "\n@(#)5.0_pl/sources/s_call.c 5.15 10/19/99 17:14:30\n" [static]

Definition at line 37 of file s_call.c.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines