00001 /* 00002 Copyright 2003, 2004, 2005, 2006 PathScale, Inc. All Rights Reserved. 00003 File modified June 20, 2003 by PathScale, Inc. to update Open64 C/C++ 00004 front-ends to GNU 3.2.2 release. 00005 */ 00006 00007 /* 00008 00009 Copyright (C) 2000, 2001 Silicon Graphics, Inc. All Rights Reserved. 00010 00011 This program is free software; you can redistribute it and/or modify it 00012 under the terms of version 2 of the GNU General Public License as 00013 published by the Free Software Foundation. 00014 00015 This program is distributed in the hope that it would be useful, but 00016 WITHOUT ANY WARRANTY; without even the implied warranty of 00017 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00018 00019 Further, this software is distributed without any warranty that it is 00020 free of the rightful claim of any third person regarding infringement 00021 or the like. Any license provided herein, whether implied or 00022 otherwise, applies only to this software file. Patent licenses, if 00023 any, provided herein do not apply to combinations of this program with 00024 other software, or any other product whatsoever. 00025 00026 You should have received a copy of the GNU General Public License along 00027 with this program; if not, write the Free Software Foundation, Inc., 59 00028 Temple Place - Suite 330, Boston MA 02111-1307, USA. 00029 00030 Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky, 00031 Mountain View, CA 94043, or: 00032 00033 http://www.sgi.com 00034 00035 For further information regarding this notice, see: 00036 00037 http://oss.sgi.com/projects/GenInfo/NoticeExplan 00038 00039 */ 00040 00041 00042 /* ==================================================================== 00043 * ==================================================================== 00044 * 00045 * 00046 * Module: wfe_dst.h 00047 * $Revision: 1.9 $ 00048 * $Date: 04/12/21 15:18:08-08:00 $ 00049 * $Author: bos@eng-25.internal.keyresearch.com $ 00050 * $Source: kgccfe/SCCS/s.wfe_dst.h $ 00051 * 00052 * Revision history: 00053 * 11-May-93 - Original Version 00054 * 00055 * Description: 00056 * Extracts from the EDG front-end intermediate representation the 00057 * information necessary for the back-end to generate the dwarf 00058 * debugging sections. Currently, we only supply search-path 00059 * directories, file-descriptors, and scope and declarative information. 00060 * In the future we may also supply preprocessing infoamtion. 00061 * 00062 * The subroutines exported through this interface have the following 00063 * intended usage and functionality: 00064 * 00065 * 00066 * DST_build(): ---- wfe_dst.c 00067 * Creates DST entries for all declared variables, subroutines, 00068 * labels, and types. This call will also enter file-descriptors 00069 * and include directories. This procedure should only be called 00070 * after the EDG front-end processing is complete. When not in 00071 * debugging mode, only file/directory descriptors are entered. 00072 * 00073 * DST_get_ordinal_file_num(): ---- wfe_dst.c 00074 * Should always be called through the macro DST_FILE_NUMBER! Enters 00075 * the file-name into a file-list and returns its ordinal number in 00076 * that list. If the (full) path name for the file has been seen 00077 * before, then the previous ordinal number is returned and the name 00078 * is not entered into the list a second time. 00079 * 00080 * DST_enter_weak_subroutine(): ---- wfe_dst.c 00081 * DST_enter_weak_variable(): ---- wfe_dst.c 00082 * Assumes the secondary is a DST_SUBPR_DECL/DST_VAR_DECL and sets 00083 * its "origin" field to the DST_IDX of the primary. 00084 * 00085 * DST_enter_inlined_subroutine(); ---- wfe_dst.c 00086 * Called from inline_call_nd in edexpr.c, this generates the DST entries 00087 * for an inlined subroutine and its formal parameters and local 00088 * variables. 00089 * 00090 * DST_write_to_dotB(): ---- wfe_dst.c 00091 * Writes the DST structure out to the .B file, assuming the .B 00092 * header information already has already been written out 00093 * (through a call to Write_Dot_B_Header). Also dumps the 00094 * DST to file, provided DSTdump_File_Name!=NULL (see "glob.h"). 00095 * 00096 * ==================================================================== 00097 * ==================================================================== 00098 */ 00099 00100 00101 #ifndef wfe_dst_INCLUDED 00102 #define wfe_dst_INCLUDED 00103 00104 #ifdef _KEEP_RCS_ID 00105 static char *wfe_dst_rcs_id = "$Source: kgccfe/SCCS/s.wfe_dst.h $ $Revision: 1.9 $"; 00106 #endif /* _KEEP_RCS_ID */ 00107 00108 #ifdef __cplusplus 00109 00110 #include "dwarf_DST.h" 00111 00112 extern void 00113 DST_build(int num_copts, /* Number of options passed to fec(c) */ 00114 char *copts[]); /* The array of option passed to fec(c) */ 00115 00116 extern void DST_write_to_dotB(void); 00117 00118 extern DST_INFO_IDX DST_Create_Subprogram (ST *func_st,tree fndecl); 00119 00120 extern DST_INFO_IDX DST_Get_Comp_Unit (void); 00121 extern struct mongoose_gcc_DST_IDX Create_DST_type_For_Tree( 00122 tree type_tree, TY_IDX ttidx , TY_IDX idx, bool ignoreconst = false, bool ignorevolatile = false) ; 00123 extern struct mongoose_gcc_DST_IDX Create_DST_decl_For_Tree( 00124 tree decl_node, ST* var_st); 00125 00126 #ifdef KEY 00127 extern bool have_dst_idx (tree); 00128 extern void cp_to_tree_from_dst(struct mongoose_gcc_DST_IDX *, 00129 DST_INFO_IDX *); 00130 extern void cp_to_dst_from_tree(DST_INFO_IDX *, 00131 struct mongoose_gcc_DST_IDX *); 00132 #endif // KEY 00133 00134 #endif /* __cplusplus */ 00135 00136 #ifdef __cplusplus 00137 extern "C" { 00138 #endif 00139 00140 /* set current line number and current file */ 00141 extern void WFE_Set_Line_And_File (unsigned int line, const char *file); 00142 #ifdef KEY 00143 extern void WFE_Macro_Define (unsigned int line, const char* buffer); 00144 extern void WFE_Macro_Undef (unsigned int line, const char* buffer); 00145 extern void WFE_Macro_Start_File (unsigned int lineno, unsigned int fileno); 00146 extern void WFE_Macro_End_File (void); 00147 #endif 00148 00149 #ifdef __cplusplus 00150 } 00151 #endif /* __cplusplus */ 00152 00153 #endif /* wfe_dst_INCLUDED */
1.5.6