OLD | NEW |
1 /* Output dbx-format symbol table information from GNU compiler. | 1 /* Output dbx-format symbol table information from GNU compiler. |
2 Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, | 2 Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, |
3 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 | 3 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 |
4 Free Software Foundation, Inc. | 4 Free Software Foundation, Inc. |
5 | 5 |
6 This file is part of GCC. | 6 This file is part of GCC. |
7 | 7 |
8 GCC is free software; you can redistribute it and/or modify it under | 8 GCC is free software; you can redistribute it and/or modify it under |
9 the terms of the GNU General Public License as published by the Free | 9 the terms of the GNU General Public License as published by the Free |
10 Software Foundation; either version 3, or (at your option) any later | 10 Software Foundation; either version 3, or (at your option) any later |
11 version. | 11 version. |
12 | 12 |
13 GCC is distributed in the hope that it will be useful, but WITHOUT ANY | 13 GCC is distributed in the hope that it will be useful, but WITHOUT ANY |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
164 | 164 |
165 enum typestatus {TYPE_UNSEEN, TYPE_XREF, TYPE_DEFINED}; | 165 enum typestatus {TYPE_UNSEEN, TYPE_XREF, TYPE_DEFINED}; |
166 | 166 |
167 /* Structure recording information about a C data type. | 167 /* Structure recording information about a C data type. |
168 The status element says whether we have yet output | 168 The status element says whether we have yet output |
169 the definition of the type. TYPE_XREF says we have | 169 the definition of the type. TYPE_XREF says we have |
170 output it as a cross-reference only. | 170 output it as a cross-reference only. |
171 The file_number and type_number elements are used if DBX_USE_BINCL | 171 The file_number and type_number elements are used if DBX_USE_BINCL |
172 is defined. */ | 172 is defined. */ |
173 | 173 |
174 struct typeinfo GTY(()) | 174 struct GTY(()) typeinfo { |
175 { | |
176 enum typestatus status; | 175 enum typestatus status; |
177 int file_number; | 176 int file_number; |
178 int type_number; | 177 int type_number; |
179 }; | 178 }; |
180 | 179 |
181 /* Vector recording information about C data types. | 180 /* Vector recording information about C data types. |
182 When we first notice a data type (a tree node), | 181 When we first notice a data type (a tree node), |
183 we assign it a number using next_type_number. | 182 we assign it a number using next_type_number. |
184 That is its index in this vector. */ | 183 That is its index in this vector. */ |
185 | 184 |
(...skipping 24 matching lines...) Expand all Loading... |
210 struct dbx_file | 209 struct dbx_file |
211 { | 210 { |
212 struct dbx_file *next; | 211 struct dbx_file *next; |
213 int file_number; | 212 int file_number; |
214 int next_type_number; | 213 int next_type_number; |
215 enum binclstatus bincl_status; /* Keep track of lazy bincl. */ | 214 enum binclstatus bincl_status; /* Keep track of lazy bincl. */ |
216 const char *pending_bincl_name; /* Name of bincl. */ | 215 const char *pending_bincl_name; /* Name of bincl. */ |
217 struct dbx_file *prev; /* Chain to traverse all pending bincls. */ | 216 struct dbx_file *prev; /* Chain to traverse all pending bincls. */ |
218 }; | 217 }; |
219 | 218 |
220 /* This is the top of the stack. | 219 /* This is the top of the stack. |
221 | 220 |
222 This is not saved for PCH, because restoring a PCH should not change it. | 221 This is not saved for PCH, because restoring a PCH should not change it. |
223 next_file_number does have to be saved, because the PCH may use some | 222 next_file_number does have to be saved, because the PCH may use some |
224 file numbers; however, just before restoring a PCH, next_file_number | 223 file numbers; however, just before restoring a PCH, next_file_number |
225 should always be 0 because we should not have needed any file numbers | 224 should always be 0 because we should not have needed any file numbers |
226 yet. */ | 225 yet. */ |
227 | 226 |
228 #if (defined (DBX_DEBUGGING_INFO) || defined (XCOFF_DEBUGGING_INFO)) \ | 227 #if (defined (DBX_DEBUGGING_INFO) || defined (XCOFF_DEBUGGING_INFO)) \ |
229 && defined (DBX_USE_BINCL) | 228 && defined (DBX_USE_BINCL) |
230 static struct dbx_file *current_file; | 229 static struct dbx_file *current_file; |
231 #endif | 230 #endif |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
269 static const char *base_input_file; | 268 static const char *base_input_file; |
270 | 269 |
271 #ifdef DEBUG_SYMS_TEXT | 270 #ifdef DEBUG_SYMS_TEXT |
272 #define FORCE_TEXT switch_to_section (current_function_section ()) | 271 #define FORCE_TEXT switch_to_section (current_function_section ()) |
273 #else | 272 #else |
274 #define FORCE_TEXT | 273 #define FORCE_TEXT |
275 #endif | 274 #endif |
276 | 275 |
277 #include "gstab.h" | 276 #include "gstab.h" |
278 | 277 |
279 #define STAB_CODE_TYPE enum __stab_debug_code | |
280 | |
281 /* 1 if PARM is passed to this function in memory. */ | 278 /* 1 if PARM is passed to this function in memory. */ |
282 | 279 |
283 #define PARM_PASSED_IN_MEMORY(PARM) \ | 280 #define PARM_PASSED_IN_MEMORY(PARM) \ |
284 (MEM_P (DECL_INCOMING_RTL (PARM))) | 281 (MEM_P (DECL_INCOMING_RTL (PARM))) |
285 | 282 |
286 /* A C expression for the integer offset value of an automatic variable | 283 /* A C expression for the integer offset value of an automatic variable |
287 (N_LSYM) having address X (an RTX). */ | 284 (N_LSYM) having address X (an RTX). */ |
288 #ifndef DEBUGGER_AUTO_OFFSET | 285 #ifndef DEBUGGER_AUTO_OFFSET |
289 #define DEBUGGER_AUTO_OFFSET(X) \ | 286 #define DEBUGGER_AUTO_OFFSET(X) \ |
290 (GET_CODE (X) == PLUS ? INTVAL (XEXP (X, 1)) : 0) | 287 (GET_CODE (X) == PLUS ? INTVAL (XEXP (X, 1)) : 0) |
(...skipping 11 matching lines...) Expand all Loading... |
302 static struct obstack stabstr_ob; | 299 static struct obstack stabstr_ob; |
303 static size_t stabstr_last_contin_point; | 300 static size_t stabstr_last_contin_point; |
304 | 301 |
305 #ifdef DBX_USE_BINCL | 302 #ifdef DBX_USE_BINCL |
306 static void emit_bincl_stab (const char *c); | 303 static void emit_bincl_stab (const char *c); |
307 static void emit_pending_bincls (void); | 304 static void emit_pending_bincls (void); |
308 #endif | 305 #endif |
309 static inline void emit_pending_bincls_if_required (void); | 306 static inline void emit_pending_bincls_if_required (void); |
310 | 307 |
311 static void dbxout_init (const char *); | 308 static void dbxout_init (const char *); |
312 | 309 |
313 static void dbxout_finish (const char *); | 310 static void dbxout_finish (const char *); |
314 static void dbxout_start_source_file (unsigned, const char *); | 311 static void dbxout_start_source_file (unsigned, const char *); |
315 static void dbxout_end_source_file (unsigned); | 312 static void dbxout_end_source_file (unsigned); |
316 static void dbxout_typedefs (tree); | 313 static void dbxout_typedefs (tree); |
317 static void dbxout_type_index (tree); | 314 static void dbxout_type_index (tree); |
318 static void dbxout_args (tree); | 315 static void dbxout_args (tree); |
319 static void dbxout_type_fields (tree); | 316 static void dbxout_type_fields (tree); |
320 static void dbxout_type_method_1 (tree); | 317 static void dbxout_type_method_1 (tree); |
321 static void dbxout_type_methods (tree); | 318 static void dbxout_type_methods (tree); |
322 static void dbxout_range_type (tree); | 319 static void dbxout_range_type (tree, tree, tree); |
323 static void dbxout_type (tree, int); | 320 static void dbxout_type (tree, int); |
324 static bool print_int_cst_bounds_in_octal_p (tree); | 321 static bool print_int_cst_bounds_in_octal_p (tree, tree, tree); |
325 static bool is_fortran (void); | 322 static bool is_fortran (void); |
326 static void dbxout_type_name (tree); | 323 static void dbxout_type_name (tree); |
327 static void dbxout_class_name_qualifiers (tree); | 324 static void dbxout_class_name_qualifiers (tree); |
328 static int dbxout_symbol_location (tree, tree, const char *, rtx); | 325 static int dbxout_symbol_location (tree, tree, const char *, rtx); |
329 static void dbxout_symbol_name (tree, const char *, int); | 326 static void dbxout_symbol_name (tree, const char *, int); |
330 static void dbxout_common_name (tree, const char *, STAB_CODE_TYPE); | 327 static void dbxout_common_name (tree, const char *, stab_code_type); |
331 static const char *dbxout_common_check (tree, int *); | 328 static const char *dbxout_common_check (tree, int *); |
332 static void dbxout_global_decl (tree); | 329 static void dbxout_global_decl (tree); |
333 static void dbxout_type_decl (tree, int); | 330 static void dbxout_type_decl (tree, int); |
334 static void dbxout_handle_pch (unsigned); | 331 static void dbxout_handle_pch (unsigned); |
335 | 332 |
error: old chunk mismatch |
None
OLD | NEW |