X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fvmsdbgout.c;h=84a96c010e7d01fa8d5f0a845289393f022cff16;hb=9643b6170250a3befc52da0e93f0a18d54f40fde;hp=dba126d7739920a13bb0382fdc6b41a0099fb818;hpb=ba0fc22bcbdc6b75acaa869c5e4c87c33b71150c;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/vmsdbgout.c b/gcc/vmsdbgout.c index dba126d7739..84a96c010e7 100644 --- a/gcc/vmsdbgout.c +++ b/gcc/vmsdbgout.c @@ -1,6 +1,6 @@ /* Output VMS debug format symbol table information from GCC. Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010 + 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. Contributed by Douglas B. Rupp (rupp@gnat.com). Updated by Bernard W. Giroud (bgiroud@users.sourceforge.net). @@ -71,15 +71,9 @@ typedef struct dst_file_info_struct long ebk; short ffb; char rfo; - char flen; } dst_file_info_entry; -/* How to start an assembler comment. */ -#ifndef ASM_COMMENT_START -#define ASM_COMMENT_START ";#" -#endif - /* Maximum size (in bytes) of an artificially generated label. */ #define MAX_ARTIFICIAL_LABEL_BYTES 30 @@ -205,12 +199,9 @@ const struct gcc_debug_hooks vmsdbg_debug_hooks debug_nothing_int, /* handle_pch */ debug_nothing_rtx, /* var_location */ debug_nothing_void, /* switch_text_section */ - debug_nothing_tree, /* direct_call */ - debug_nothing_tree_int, /* virtual_call_token */ - debug_nothing_rtx_rtx, /* copy_call_info */ - debug_nothing_uid, /* virtual_call */ debug_nothing_tree_tree, /* set_name */ - 0 /* start_end_main_source_file */ + 0, /* start_end_main_source_file */ + TYPE_SYMTAB_IS_ADDRESS /* tree_type_symtab_field */ }; /* Definitions of defaults for assembler-dependent names of various @@ -935,7 +926,7 @@ write_srccorr (int fileid, dst_file_info_entry file_info_entry, int src_command_size; int linesleft = file_info_entry.max_line; int linestart = file_info_entry.listing_line_start; - int flen = file_info_entry.flen; + int flen = strlen (file_info_entry.file_name); int linestodo = 0; DST_SOURCE_CORR src_header; DST_SRC_COMMAND src_command; @@ -980,7 +971,7 @@ write_srccorr (int fileid, dst_file_info_entry file_info_entry, src_command.dst_a_src_cmd_fields.dst_a_src_decl_src.dst_b_src_df_rms_rfo = file_info_entry.rfo; src_command.dst_a_src_cmd_fields.dst_a_src_decl_src.dst_b_src_df_filename - = file_info_entry.flen; + = flen; src_header.dst_a_source_corr_header.dst__header_length.dst_w_length = DST_K_SOURCE_CORR_HEADER_SIZE + src_command_size - 1; @@ -1310,13 +1301,9 @@ full_name (const char *filename) fgetname (fp, fullname_buff, 1); fclose (fp); #else - getcwd (fullname_buff, sizeof (fullname_buff)); - - strcat (fullname_buff, "/"); - strcat (fullname_buff, filename); - - /* ??? Insert hairy code here to translate Unix style file specification - to VMS style. */ + /* Unix paths really mess up VMS debug. Better to just output the + base filename. */ + strcpy (fullname_buff, filename); #endif return fullname_buff; @@ -1339,7 +1326,6 @@ lookup_filename (const char *file_name) register char *fn; register unsigned i; const char *fnam; - char flen; long long cdt = 0; long ebk = 0; short ffb = 0; @@ -1348,7 +1334,6 @@ lookup_filename (const char *file_name) int ver = 0; fnam = full_name (file_name); - flen = strlen (fnam); /* Check to see if the file name that was searched on the previous call matches this file name. If so, return the index. */ @@ -1393,7 +1378,6 @@ lookup_filename (const char *file_name) file_info_table[file_info_table_in_use].ebk = ebk; file_info_table[file_info_table_in_use].ffb = ffb; file_info_table[file_info_table_in_use].rfo = rfo; - file_info_table[file_info_table_in_use].flen = flen; last_file_lookup_index = file_info_table_in_use++; return last_file_lookup_index; @@ -1457,18 +1441,18 @@ vmsdbgout_end_source_file (unsigned int lineno ATTRIBUTE_UNUSED) /* Set up for Debug output at the start of compilation. */ static void -vmsdbgout_init (const char *main_input_filename) +vmsdbgout_init (const char *filename) { const char *language_string = lang_hooks.name; if (write_symbols == VMS_AND_DWARF2_DEBUG) - (*dwarf2_debug_hooks.init) (main_input_filename); + (*dwarf2_debug_hooks.init) (filename); if (debug_info_level == DINFO_LEVEL_NONE) return; /* Remember the name of the primary input file. */ - primary_filename = main_input_filename; + primary_filename = filename; /* Allocate the initial hunk of the file_info_table. */ file_info_table = XCNEWVEC (dst_file_info_entry, FILE_TABLE_INCREMENT); @@ -1571,13 +1555,13 @@ vmsdbgout_abstract_function (tree decl) VMS Debug debugging info. */ static void -vmsdbgout_finish (const char *main_input_filename ATTRIBUTE_UNUSED) +vmsdbgout_finish (const char *filename ATTRIBUTE_UNUSED) { unsigned int i, ifunc; int totsize; if (write_symbols == VMS_AND_DWARF2_DEBUG) - (*dwarf2_debug_hooks.finish) (main_input_filename); + (*dwarf2_debug_hooks.finish) (filename); if (debug_info_level == DINFO_LEVEL_NONE) return; @@ -1593,7 +1577,7 @@ vmsdbgout_finish (const char *main_input_filename ATTRIBUTE_UNUSED) ASM_OUTPUT_ALIGN (asm_out_file, 0); totsize = write_modbeg (1); - for (i = 0; VEC_iterate (unsigned, funcnum_table, i, ifunc); i++) + FOR_EACH_VEC_ELT (unsigned, funcnum_table, i, ifunc) { totsize += write_rtnbeg (i, 1); totsize += write_rtnend (i, 1); @@ -1601,7 +1585,7 @@ vmsdbgout_finish (const char *main_input_filename ATTRIBUTE_UNUSED) totsize += write_pclines (1); write_modbeg (0); - for (i = 0; VEC_iterate (unsigned, funcnum_table, i, ifunc); i++) + FOR_EACH_VEC_ELT (unsigned, funcnum_table, i, ifunc) { write_rtnbeg (i, 0); write_rtnend (i, 0); @@ -1628,9 +1612,7 @@ vmsdbgout_finish (const char *main_input_filename ATTRIBUTE_UNUSED) #include #include #include -#include #include -#include #include #define MAXPATH 256