Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
dwarf_DST_producer.cxx File Reference
#include "dwarf_DST_producer.h"
#include "errors.h"
Include dependency graph for dwarf_DST_producer.cxx:

Go to the source code of this file.

Defines

#define DST_ASSERT(truth, msg)   Is_True(truth, (msg))
#define DST_64_allign   8 /* 8 bytes alignment */
#define DST_32_align   4 /* 4 bytes alignment */
#define DST_char_align   1 /* 1 bytes alignment */
#define DST_default_align   DST_64_allign /* default alignment */
#define DST_mk(type)   DST_allocate(sizeof(type), DST_default_align)
#define DST_mk_file()   (DST_mk(DST_FILE_NAME));
#define DST_mk_dir()   (DST_mk(DST_INCLUDE_DIR));
#define DST_mk_info()   (DST_mk(DST_INFO));
#define DST_mk_attr(type)   (DST_mk(type));
#define DST_enter_mk(a, b)
#define DST_check_info_idx(required_tag, idx)

Typedefs

typedef enum DST_producer_state DST_PRODUCER_STATE

Enumerations

enum  DST_producer_state {
  DST_begin_state, DST_making_include_dirs, DST_making_file_names, DST_making_macinfo,
  DST_making_dbg_info, DST_end_state
}

Functions

DST_STR_IDX DST_mk_string (const char *s)
static DST_STR_IDX DST_mk_name (const char *s)
DST_IDX DST_mk_include_dir (char *path)
mUINT16 DST_number_of_include_dirs (void)
DST_IDX DST_mk_file_name (char *file_name, mUINT16 incl_dir, UINT64 size, UINT64 modt)
mUINT16 DST_number_of_files (void)
void DST_lock_to_file_scope_mem (void)
void DST_release_from_file_scope_mem (void)
mINT32 DST_unwind_locks (void)
void DST_wind_up_locks (mINT32 number_of_locks)
BOOL DST_is_locked_to_file_scope_mem (void)
static DST_INFO_IDX DST_init_info (DST_INFO_IDX info_idx, DST_DW_tag tag, DST_flag flag, DST_ATTR_IDX attrs)
DST_INFO_IDX DST_mk_compile_unit (char *src_path, char *comp_dir, char *comp_info, DST_language language, DST_identifier_case id_case)
void DST_begin_PU (void)
void DST_end_PU (void)
DST_INFO_IDX DST_mk_inlined_subroutine (void *low_pc, void *high_pc, DST_INFO_IDX abstract_origin)
DST_INFO_IDX DST_mk_subprogram_memdef (USRCPOS decl, void *subpr, BOOL is_prototyped, DST_INFO_IDX spec)
DST_INFO_IDX DST_mk_subprogram (USRCPOS decl, char *name, DST_INFO_IDX type, DST_INFO_IDX origin, void *subpr, DST_inline inlin, DST_virtuality virtuality, DST_vtable_elem_location vtable_elem_location, BOOL is_declaration, BOOL is_prototyped, BOOL is_artificial, BOOL is_external)
DST_INFO_IDX DST_mk_cloned_subprogram (USRCPOS decl, char *name, DST_INFO_IDX type, DST_INFO_IDX clone_origin, void *subst, DST_inline inlin, DST_virtuality virtuality)
void DST_add_pubname_to_subprogram (DST_INFO_IDX subprogram, char *pubname)
void DST_add_linkage_name_to_subprogram (DST_INFO_IDX subprogram, char *linkage_name)
void DST_add_specification_to_subprogram (DST_INFO_IDX subprogram_def, DST_INFO_IDX subprogram_decl)
void DST_add_specification_to_variable (DST_INFO_IDX variable_def, DST_INFO_IDX field_decl)
void DST_add_linkage_name_to_variable (DST_INFO_IDX variable_def, char *linkage_name)
DST_INFO_IDX DST_mk_entry_point (USRCPOS decl, char *name, DST_INFO_IDX type, void *subpr)
DST_INFO_IDX DST_mk_common_block (char *name, void *subpr)
DST_INFO_IDX DST_mk_common_incl (USRCPOS decl, DST_INFO_IDX comblk)
DST_INFO_IDX DST_mk_lexical_block (char *name, void *low_pc, void *high_pc, DST_INFO_IDX abstract_origin)
DST_INFO_IDX DST_mk_label (char *name, void *low_pc, DST_INFO_IDX abstract_origin)
DST_INFO_IDX DST_mk_variable_const (USRCPOS decl, char *name, DST_INFO_IDX type, BOOL is_automatic, BOOL is_external, DST_CONST_VALUE cval)
DST_INFO_IDX DST_mk_variable_comm (USRCPOS decl, char *name, DST_INFO_IDX type, void *feptr, UINT64 offset)
DST_INFO_IDX DST_mk_variable_memdef (USRCPOS decl, void *var, DST_INFO_IDX spec)
DST_INFO_IDX DST_mk_variable (USRCPOS decl, char *name, DST_INFO_IDX type, UINT64 offs, void *var, DST_INFO_IDX abstract_origin, BOOL is_declaration, BOOL is_automatic, BOOL is_external, BOOL is_artificial)
DST_INFO_IDX DST_mk_formal_parameter (USRCPOS decl, char *name, DST_INFO_IDX type, void *parm, DST_INFO_IDX abstract_origin, DST_INFO_IDX default_val, BOOL is_optional, BOOL is_variable, BOOL is_artificial, BOOL is_declaration_only)
DST_INFO_IDX DST_mk_unspecified_parameters (USRCPOS decl, DST_INFO_IDX abstract_origin)
DST_INFO_IDX DST_mk_constant_def (USRCPOS decl, char *name, DST_INFO_IDX type, DST_CONST_VALUE cval, BOOL is_external)
DST_INFO_IDX DST_mk_constant_decl (USRCPOS decl, char *name, DST_INFO_IDX type, BOOL is_external)
DST_INFO_IDX DST_mk_basetype (char *name, DST_ATE_encoding encoding, DST_size_t byte_size)
DST_INFO_IDX DST_mk_const_type (DST_INFO_IDX type)
DST_INFO_IDX DST_mk_volatile_type (DST_INFO_IDX type)
DST_INFO_IDX DST_mk_pointer_type (DST_INFO_IDX type, DST_addr_class address_class, DST_size_t byte_size)
DST_INFO_IDX DST_mk_reference_type (DST_INFO_IDX type, DST_addr_class address_class, DST_size_t byte_size)
DST_INFO_IDX DST_mk_typedef (USRCPOS decl, char *name, DST_INFO_IDX type, DST_INFO_IDX abstract_origin)
DST_INFO_IDX DST_mk_ptr_to_member_type (USRCPOS decl, char *name, DST_INFO_IDX type, DST_INFO_IDX class_type)
DST_INFO_IDX DST_mk_array_type (USRCPOS decl, char *name, DST_INFO_IDX type, DST_size_t byte_size, DST_INFO_IDX abstract_origin, BOOL is_incomplete)
DST_INFO_IDX DST_mk_subrange_type (DST_flag is_lb_cval, DST_cval_ref low, DST_flag is_ub_cval, DST_cval_ref high)
DST_INFO_IDX DST_mk_string_type (USRCPOS decl, char *name, DST_flag is_len_cval, DST_cval_ref len)
DST_INFO_IDX DST_mk_structure_type (USRCPOS decl, char *name, DST_size_t byte_size, DST_INFO_IDX abstract_origin, BOOL is_incomplete)
DST_INFO_IDX DST_mk_union_type (USRCPOS decl, char *name, DST_size_t byte_size, DST_INFO_IDX abstract_origin, BOOL is_incomplete)
DST_INFO_IDX DST_mk_class_type (USRCPOS decl, char *name, DST_size_t byte_size, DST_INFO_IDX abstract_origin, BOOL is_incomplete)
DST_INFO_IDX DST_mk_member (USRCPOS decl, char *name, DST_INFO_IDX type, DST_size_t memb_loc, DST_size_t byte_size, DST_bitsize bit_offset, DST_bitsize bit_size, BOOL is_bitfield, BOOL is_static, BOOL is_declaration, BOOL is_artificial)
DST_INFO_IDX DST_mk_inheritance (USRCPOS decl, DST_INFO_IDX type, DST_virtuality virtuality, DST_size_t memb_loc)
DST_INFO_IDX DST_mk_template_type_parameter (USRCPOS decl, char *name, DST_INFO_IDX type)
DST_INFO_IDX DST_mk_template_value_parameter (USRCPOS decl, char *name, DST_INFO_IDX type, DST_CONST_VALUE cval)
DST_INFO_IDX DST_mk_enumeration_type (USRCPOS decl, char *name, DST_size_t byte_size, DST_INFO_IDX abstract_origin, BOOL is_incomplete)
DST_INFO_IDX DST_mk_enumerator (USRCPOS decl, char *name, DST_CONST_VALUE cval)
DST_INFO_IDX DST_mk_subroutine_type (USRCPOS decl, char *name, DST_INFO_IDX type, DST_INFO_IDX abstract_origin, BOOL is_prototyped)

Variables

static DST_PRODUCER_STATE pstate = DST_begin_state
static DST_DIR_IDX last_include_dir = DST_INVALID_INIT
static DST_FILE_IDX last_file_name = DST_INVALID_INIT
static DST_INFO_IDX last_info_idx = DST_INVALID_INIT
static DST_INFO_IDX file_scope_info = DST_INVALID_INIT
static DST_INFO_IDX forced_exit_info = DST_INVALID_INIT
static mUINT16 num_file_names = 0
static mUINT16 num_incl_dirs = 0
static BOOL begin_PU = FALSE
static mINT32 file_scope_locks = 0

Define Documentation

#define DST_32_align   4 /* 4 bytes alignment */

Definition at line 88 of file dwarf_DST_producer.cxx.

#define DST_64_allign   8 /* 8 bytes alignment */

Definition at line 87 of file dwarf_DST_producer.cxx.

#define DST_char_align   1 /* 1 bytes alignment */

Definition at line 89 of file dwarf_DST_producer.cxx.

Referenced by DST_mk_name(), and DST_mk_string().

#define DST_check_info_idx (   required_tag,
  idx 
)
Value:
DST_ASSERT((DST_IS_FOREIGN_OBJ(idx)) || (DST_INFO_tag(DST_INFO_IDX_TO_PTR(idx)) == required_tag),\
              "Found invalid DST_info index")

Definition at line 185 of file dwarf_DST_producer.cxx.

Referenced by DST_mk_inlined_subroutine(), and DST_mk_subprogram_memdef().

#define DST_default_align   DST_64_allign /* default alignment */

Definition at line 90 of file dwarf_DST_producer.cxx.

#define DST_mk (   type)    DST_allocate(sizeof(type), DST_default_align)

Definition at line 95 of file dwarf_DST_producer.cxx.

#define DST_mk_dir ( )    (DST_mk(DST_INCLUDE_DIR));

Definition at line 98 of file dwarf_DST_producer.cxx.

Referenced by DST_mk_include_dir().

#define DST_mk_file ( )    (DST_mk(DST_FILE_NAME));

Definition at line 97 of file dwarf_DST_producer.cxx.

Referenced by DST_mk_file_name().


Typedef Documentation


Enumeration Type Documentation

Enumerator:
DST_begin_state 
DST_making_include_dirs 
DST_making_file_names 
DST_making_macinfo 
DST_making_dbg_info 
DST_end_state 

Definition at line 59 of file dwarf_DST_producer.cxx.


Function Documentation

void DST_begin_PU ( void  )

Definition at line 445 of file dwarf_DST_producer.cxx.

References begin_PU, DST_ASSERT, DST_IS_NULL, file_scope_locks, last_info_idx, and TRUE.

Referenced by cwh_dst_enter_pu().

void DST_end_PU ( void  )

Definition at line 458 of file dwarf_DST_producer.cxx.

References begin_PU, DST_ASSERT, DST_INVALID_IDX, DST_IS_NULL, DST_making_dbg_info, DST_return_to_block(), FALSE, file_scope_info, file_scope_locks, and pstate.

Referenced by cwh_dst_enter_pu().

Here is the call graph for this function:

Definition at line 374 of file dwarf_DST_producer.cxx.

References file_scope_locks.

void DST_lock_to_file_scope_mem ( void  )

Definition at line 341 of file dwarf_DST_producer.cxx.

References DST_ASSERT, and file_scope_locks.

Definition at line 109 of file dwarf_DST_producer.cxx.

References DST_allocate(), DST_char_align, DST_INVALID_IDX, DST_STR_IDX_TO_PTR, NULL, s, and strcpy.

Referenced by cwh_dst_mk_const(), DST_mk_compile_unit(), DST_mk_file_name(), and DST_mk_include_dir().

Here is the call graph for this function:

Definition at line 318 of file dwarf_DST_producer.cxx.

References num_file_names.

Definition at line 261 of file dwarf_DST_producer.cxx.

References num_incl_dirs.

Definition at line 347 of file dwarf_DST_producer.cxx.

References DST_ASSERT, DST_INVALID_IDX, DST_IS_NULL, DST_making_dbg_info, DST_return_to_block(), file_scope_locks, forced_exit_info, and pstate.

Referenced by DST_unwind_locks().

Here is the call graph for this function:

Definition at line 360 of file dwarf_DST_producer.cxx.

References DST_release_from_file_scope_mem(), and file_scope_locks.

Here is the call graph for this function:

void DST_wind_up_locks ( mINT32  number_of_locks)

Definition at line 369 of file dwarf_DST_producer.cxx.

References file_scope_locks.


Variable Documentation

BOOL begin_PU = FALSE [static]

Definition at line 79 of file dwarf_DST_producer.cxx.

Referenced by DST_begin_PU(), and DST_end_PU().

Definition at line 73 of file dwarf_DST_producer.cxx.

Referenced by DST_end_PU().

Definition at line 70 of file dwarf_DST_producer.cxx.

Definition at line 72 of file dwarf_DST_producer.cxx.

Referenced by DST_begin_PU().

mUINT16 num_file_names = 0 [static]

Definition at line 76 of file dwarf_DST_producer.cxx.

Referenced by DST_mk_file_name(), and DST_number_of_files().

mUINT16 num_incl_dirs = 0 [static]

Definition at line 77 of file dwarf_DST_producer.cxx.

Referenced by DST_mk_include_dir(), and DST_number_of_include_dirs().

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines