/* Output VMS debug format symbol table information from GCC.
Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by Douglas B. Rupp (rupp@gnat.com).
This file is part of GCC.
#define LINE_INFO_TABLE_INCREMENT 1024
/* Forward declarations for functions defined in this file. */
-static char *full_name PARAMS ((const char *));
-static unsigned int lookup_filename PARAMS ((const char *));
-static void addr_const_to_string PARAMS ((char *, rtx));
-static int write_debug_header PARAMS ((DST_HEADER *, const char *, int));
-static int write_debug_addr PARAMS ((char *, const char *, int));
-static int write_debug_data1 PARAMS ((unsigned int, const char *, int));
-static int write_debug_data2 PARAMS ((unsigned int, const char *, int));
-static int write_debug_data4 PARAMS ((unsigned long, const char *, int));
-static int write_debug_data8 PARAMS ((unsigned long long, const char *,
- int));
-static int write_debug_delta4 PARAMS ((char *, char *, const char *, int));
-static int write_debug_string PARAMS ((char *, const char *, int));
-static int write_modbeg PARAMS ((int));
-static int write_modend PARAMS ((int));
-static int write_rtnbeg PARAMS ((int, int));
-static int write_rtnend PARAMS ((int, int));
-static int write_pclines PARAMS ((int));
-static int write_srccorr PARAMS ((int, dst_file_info_entry, int));
-static int write_srccorrs PARAMS ((int));
-
-static void vmsdbgout_init PARAMS ((const char *));
-static void vmsdbgout_finish PARAMS ((const char *));
-static void vmsdbgout_define PARAMS ((unsigned int, const char *));
-static void vmsdbgout_undef PARAMS ((unsigned int, const char *));
-static void vmsdbgout_start_source_file PARAMS ((unsigned int, const char *));
-static void vmsdbgout_end_source_file PARAMS ((unsigned int));
-static void vmsdbgout_begin_block PARAMS ((unsigned int, unsigned int));
-static void vmsdbgout_end_block PARAMS ((unsigned int, unsigned int));
-static bool vmsdbgout_ignore_block PARAMS ((tree));
-static void vmsdbgout_source_line PARAMS ((unsigned int, const char *));
-static void vmsdbgout_begin_prologue PARAMS ((unsigned int, const char *));
-static void vmsdbgout_end_prologue PARAMS ((unsigned int, const char *));
-static void vmsdbgout_end_function PARAMS ((unsigned int));
-static void vmsdbgout_end_epilogue PARAMS ((unsigned int, const char *));
-static void vmsdbgout_begin_function PARAMS ((tree));
-static void vmsdbgout_decl PARAMS ((tree));
-static void vmsdbgout_global_decl PARAMS ((tree));
-static void vmsdbgout_abstract_function PARAMS ((tree));
+static char *full_name (const char *);
+static unsigned int lookup_filename (const char *);
+static void addr_const_to_string (char *, rtx);
+static int write_debug_header (DST_HEADER *, const char *, int);
+static int write_debug_addr (char *, const char *, int);
+static int write_debug_data1 (unsigned int, const char *, int);
+static int write_debug_data2 (unsigned int, const char *, int);
+static int write_debug_data4 (unsigned long, const char *, int);
+static int write_debug_data8 (unsigned long long, const char *, int);
+static int write_debug_delta4 (char *, char *, const char *, int);
+static int write_debug_string (char *, const char *, int);
+static int write_modbeg (int);
+static int write_modend (int);
+static int write_rtnbeg (int, int);
+static int write_rtnend (int, int);
+static int write_pclines (int);
+static int write_srccorr (int, dst_file_info_entry, int);
+static int write_srccorrs (int);
+
+static void vmsdbgout_init (const char *);
+static void vmsdbgout_finish (const char *);
+static void vmsdbgout_define (unsigned int, const char *);
+static void vmsdbgout_undef (unsigned int, const char *);
+static void vmsdbgout_start_source_file (unsigned int, const char *);
+static void vmsdbgout_end_source_file (unsigned int);
+static void vmsdbgout_begin_block (unsigned int, unsigned int);
+static void vmsdbgout_end_block (unsigned int, unsigned int);
+static bool vmsdbgout_ignore_block (tree);
+static void vmsdbgout_source_line (unsigned int, const char *);
+static void vmsdbgout_begin_prologue (unsigned int, const char *);
+static void vmsdbgout_end_prologue (unsigned int, const char *);
+static void vmsdbgout_end_function (unsigned int);
+static void vmsdbgout_end_epilogue (unsigned int, const char *);
+static void vmsdbgout_begin_function (tree);
+static void vmsdbgout_decl (tree);
+static void vmsdbgout_global_decl (tree);
+static void vmsdbgout_abstract_function (tree);
/* The debug hooks structure. */
macro has the same effect as ASM_OUTPUT_LABELREF, but copies to
a string rather than writing to a file. */
#ifndef ASM_NAME_TO_STRING
-#define ASM_NAME_TO_STRING(STR, NAME) \
+#define ASM_NAME_TO_STRING(STR, NAME) \
do \
{ \
if ((NAME)[0] == '*') \
directly, because it writes to a file. */
static void
-addr_const_to_string (str, x)
- char *str;
- rtx x;
+addr_const_to_string (char *str, rtx x)
{
char buf1[256];
char buf2[256];
nonzero. */
static int
-write_debug_header (header, comment, dosizeonly)
- DST_HEADER *header;
- const char *comment;
- int dosizeonly;
+write_debug_header (DST_HEADER *header, const char *comment, int dosizeonly)
{
if (!dosizeonly)
{
nonzero. */
static int
-write_debug_addr (symbol, comment, dosizeonly)
- char *symbol;
- const char *comment;
- int dosizeonly;
+write_debug_addr (char *symbol, const char *comment, int dosizeonly)
{
if (!dosizeonly)
{
nonzero. */
static int
-write_debug_data1 (data1, comment, dosizeonly)
- unsigned int data1;
- const char *comment;
- int dosizeonly;
+write_debug_data1 (unsigned int data1, const char *comment, int dosizeonly)
{
if (!dosizeonly)
{
nonzero. */
static int
-write_debug_data2 (data2, comment, dosizeonly)
- unsigned int data2;
- const char *comment;
- int dosizeonly;
+write_debug_data2 (unsigned int data2, const char *comment, int dosizeonly)
{
if (!dosizeonly)
{
Return the data size. Just return the size if DOSIZEONLY is nonzero. */
static int
-write_debug_data4 (data4, comment, dosizeonly)
- unsigned long data4;
- const char *comment;
- int dosizeonly;
+write_debug_data4 (unsigned long data4, const char *comment, int dosizeonly)
{
if (!dosizeonly)
{
Return the data size. Just return the size if DOSIZEONLY is nonzero. */
static int
-write_debug_data8 (data8, comment, dosizeonly)
- unsigned long long data8;
- const char *comment;
- int dosizeonly;
+write_debug_data8 (unsigned long long data8, const char *comment,
+ int dosizeonly)
{
if (!dosizeonly)
{
DOSIZEONLY is nonzero. */
static int
-write_debug_delta4 (label1, label2, comment, dosizeonly)
- char *label1;
- char *label2;
- const char *comment;
- int dosizeonly;
+write_debug_delta4 (char *label1, char *label2, const char *comment,
+ int dosizeonly)
{
if (!dosizeonly)
{
nonzero. */
static int
-write_debug_string (string, comment, dosizeonly)
- char *string;
- const char *comment;
- int dosizeonly;
+write_debug_string (char *string, const char *comment, int dosizeonly)
{
if (!dosizeonly)
{
size if DOSIZEONLY is nonzero. */
static int
-write_modbeg (dosizeonly)
- int dosizeonly;
+write_modbeg (int dosizeonly)
{
DST_MODULE_BEGIN modbeg;
DST_MB_TRLR mb_trlr;
the size if DOSIZEONLY is nonzero. */
static int
-write_modend (dosizeonly)
- int dosizeonly;
+write_modend (int dosizeonly)
{
DST_MODULE_END modend;
int totsize = 0;
Just return the size if DOSIZEONLY is nonzero. */
static int
-write_rtnbeg (rtnnum, dosizeonly)
- int rtnnum;
- int dosizeonly;
+write_rtnbeg (int rtnnum, int dosizeonly)
{
char *rtnname;
int rtnnamelen;
Just return the size if DOSIZEONLY is nonzero. */
static int
-write_rtnend (rtnnum, dosizeonly)
- int rtnnum;
- int dosizeonly;
+write_rtnend (int rtnnum, int dosizeonly)
{
DST_ROUTINE_END rtnend;
char label1[MAX_ARTIFICIAL_LABEL_BYTES];
the size if DOSIZEONLY is nonzero */
static int
-write_pclines (dosizeonly)
- int dosizeonly;
+write_pclines (int dosizeonly)
{
unsigned i;
int fn;
nonzero. */
static int
-write_srccorr (fileid, file_info_entry, dosizeonly)
- int fileid;
- dst_file_info_entry file_info_entry;
- int dosizeonly;
+write_srccorr (int fileid, dst_file_info_entry file_info_entry,
+ int dosizeonly)
{
int src_command_size;
int linesleft = file_info_entry.max_line;
the size if DOSIZEONLY is nonzero. */
static int
-write_srccorrs (dosizeonly)
- int dosizeonly;
+write_srccorrs (int dosizeonly)
{
unsigned int i;
int totsize = 0;
the prologue. */
static void
-vmsdbgout_begin_prologue (line, file)
- unsigned int line;
- const char *file;
+vmsdbgout_begin_prologue (unsigned int line, const char *file)
{
char label[MAX_ARTIFICIAL_LABEL_BYTES];
the prologue. */
static void
-vmsdbgout_end_prologue (line, file)
- unsigned int line;
- const char *file;
+vmsdbgout_end_prologue (unsigned int line, const char *file)
{
char label[MAX_ARTIFICIAL_LABEL_BYTES];
/* No output for VMS debug, but make obligatory call to Dwarf2 debug */
static void
-vmsdbgout_end_function (line)
- unsigned int line;
+vmsdbgout_end_function (unsigned int line)
{
if (write_symbols == VMS_AND_DWARF2_DEBUG)
(*dwarf2_debug_hooks.end_function) (line);
been generated. */
static void
-vmsdbgout_end_epilogue (line, file)
- unsigned int line;
- const char *file;
+vmsdbgout_end_epilogue (unsigned int line, const char *file)
{
char label[MAX_ARTIFICIAL_LABEL_BYTES];
a lexical block. */
static void
-vmsdbgout_begin_block (line, blocknum)
- register unsigned line;
- register unsigned blocknum;
+vmsdbgout_begin_block (register unsigned line, register unsigned blocknum)
{
if (write_symbols == VMS_AND_DWARF2_DEBUG)
(*dwarf2_debug_hooks.begin_block) (line, blocknum);
lexical block. */
static void
-vmsdbgout_end_block (line, blocknum)
- register unsigned line;
- register unsigned blocknum;
+vmsdbgout_end_block (register unsigned line, register unsigned blocknum)
{
if (write_symbols == VMS_AND_DWARF2_DEBUG)
(*dwarf2_debug_hooks.end_block) (line, blocknum);
/* Not implemented in VMS Debug. */
static bool
-vmsdbgout_ignore_block (block)
- tree block;
+vmsdbgout_ignore_block (tree block)
{
bool retval = 0;
/* Add an entry for function DECL into the func_table. */
static void
-vmsdbgout_begin_function (decl)
- tree decl;
+vmsdbgout_begin_function (tree decl)
{
const char *name = XSTR (XEXP (DECL_RTL (decl), 0), 0);
if (func_table_in_use == func_table_allocated)
{
func_table_allocated += FUNC_TABLE_INCREMENT;
- func_table = (char **) xrealloc (func_table,
- func_table_allocated * sizeof (char *));
+ func_table = xrealloc (func_table,
+ func_table_allocated * sizeof (char *));
}
/* Add the new entry to the end of the function name table. */
in VMS syntax in order to be processed by VMS Debug. */
static char *
-full_name (filename)
- const char *filename;
+full_name (const char *filename)
{
#ifdef VMS
FILE *fp = fopen (filename, "r");
all searches. */
static unsigned int
-lookup_filename (file_name)
- const char *file_name;
+lookup_filename (const char *file_name)
{
static unsigned int last_file_lookup_index = 0;
register char *fn;
{
file_info_table_allocated += FILE_TABLE_INCREMENT;
- file_info_table
- = (dst_file_info_ref) xrealloc (file_info_table,
- (file_info_table_allocated
- * sizeof (dst_file_info_entry)));
+ file_info_table = xrealloc (file_info_table,
+ (file_info_table_allocated
+ * sizeof (dst_file_info_entry)));
}
/* Add the new entry to the end of the filename table. */
'line_info_table' for later output of the .debug_line section. */
static void
-vmsdbgout_source_line (line, filename)
- register unsigned line;
- register const char *filename;
+vmsdbgout_source_line (register unsigned line, register const char *filename)
{
if (write_symbols == VMS_AND_DWARF2_DEBUG)
(*dwarf2_debug_hooks.source_line) (line, filename);
if (line_info_table_in_use == line_info_table_allocated)
{
line_info_table_allocated += LINE_INFO_TABLE_INCREMENT;
- line_info_table
- = (dst_line_info_ref) xrealloc (line_info_table,
- (line_info_table_allocated
- * sizeof (dst_line_info_entry)));
+ line_info_table = xrealloc (line_info_table,
+ (line_info_table_allocated
+ * sizeof (dst_line_info_entry)));
}
/* Add the new entry at the end of the line_info_table. */
At present, unimplemented. */
static void
-vmsdbgout_start_source_file (lineno, filename)
- unsigned int lineno;
- const char *filename;
+vmsdbgout_start_source_file (unsigned int lineno, const char *filename)
{
if (write_symbols == VMS_AND_DWARF2_DEBUG)
(*dwarf2_debug_hooks.start_source_file) (lineno, filename);
At present, unimplemented. */
static void
-vmsdbgout_end_source_file (lineno)
- unsigned int lineno ATTRIBUTE_UNUSED;
+vmsdbgout_end_source_file (unsigned int lineno ATTRIBUTE_UNUSED)
{
if (write_symbols == VMS_AND_DWARF2_DEBUG)
(*dwarf2_debug_hooks.end_source_file) (lineno);
/* Set up for Debug output at the start of compilation. */
static void
-vmsdbgout_init (main_input_filename)
- const char *main_input_filename;
+vmsdbgout_init (const char *main_input_filename)
{
const char *language_string = lang_hooks.name;
/* Allocate the initial hunk of the file_info_table. */
file_info_table
- = (dst_file_info_ref) xcalloc (FILE_TABLE_INCREMENT,
- sizeof (dst_file_info_entry));
+ = xcalloc (FILE_TABLE_INCREMENT, sizeof (dst_file_info_entry));
file_info_table_allocated = FILE_TABLE_INCREMENT;
/* Skip the first entry - file numbers begin at 1 */
file_info_table_in_use = 1;
- func_table = (char **) xcalloc (FUNC_TABLE_INCREMENT, sizeof (char *));
+ func_table = xcalloc (FUNC_TABLE_INCREMENT, sizeof (char *));
func_table_allocated = FUNC_TABLE_INCREMENT;
func_table_in_use = 1;
/* Allocate the initial hunk of the line_info_table. */
line_info_table
- = (dst_line_info_ref) xcalloc (LINE_INFO_TABLE_INCREMENT,
- sizeof (dst_line_info_entry));
+ = xcalloc (LINE_INFO_TABLE_INCREMENT, sizeof (dst_line_info_entry));
line_info_table_allocated = LINE_INFO_TABLE_INCREMENT;
/* zero-th entry is allocated, but unused */
line_info_table_in_use = 1;
/* Not implemented in VMS Debug. */
static void
-vmsdbgout_define (lineno, buffer)
- unsigned int lineno;
- const char *buffer;
+vmsdbgout_define (unsigned int lineno, const char *buffer)
{
if (write_symbols == VMS_AND_DWARF2_DEBUG)
(*dwarf2_debug_hooks.define) (lineno, buffer);
/* Not implemented in VMS Debug. */
static void
-vmsdbgout_undef (lineno, buffer)
- unsigned int lineno;
- const char *buffer;
+vmsdbgout_undef (unsigned int lineno, const char *buffer)
{
if (write_symbols == VMS_AND_DWARF2_DEBUG)
(*dwarf2_debug_hooks.undef) (lineno, buffer);
/* Not implemented in VMS Debug. */
static void
-vmsdbgout_decl (decl)
- tree decl;
+vmsdbgout_decl (tree decl)
{
if (write_symbols == VMS_AND_DWARF2_DEBUG)
(*dwarf2_debug_hooks.function_decl) (decl);
/* Not implemented in VMS Debug. */
static void
-vmsdbgout_global_decl (decl)
- tree decl;
+vmsdbgout_global_decl (tree decl)
{
if (write_symbols == VMS_AND_DWARF2_DEBUG)
(*dwarf2_debug_hooks.global_decl) (decl);
/* Not implemented in VMS Debug. */
static void
-vmsdbgout_abstract_function (decl)
- tree decl;
+vmsdbgout_abstract_function (tree decl)
{
if (write_symbols == VMS_AND_DWARF2_DEBUG)
(*dwarf2_debug_hooks.outlining_inline_function) (decl);
VMS Debug debugging info. */
static void
-vmsdbgout_finish (main_input_filename)
- const char *main_input_filename ATTRIBUTE_UNUSED;
+vmsdbgout_finish (const char *main_input_filename ATTRIBUTE_UNUSED)
{
unsigned int i;
int totsize;