/* wrstabs.c -- Output stabs debugging information
- Copyright 1996, 1997, 1998, 2000, 2001, 2002
- Free Software Foundation, Inc.
+ Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006,
+ 2007, 2009 Free Software Foundation, Inc.
Written by Ian Lance Taylor <ian@cygnus.com>.
This file is part of GNU Binutils.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
+ the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- 02111-1307, USA. */
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+ 02110-1301, USA. */
/* This file contains code which writes out stabs debugging
information. */
-#include <stdio.h>
+#include "sysdep.h"
#include <assert.h>
-
#include "bfd.h"
-#include "bucomm.h"
#include "libiberty.h"
#include "safe-ctype.h"
+#include "bucomm.h"
#include "debug.h"
#include "budbg.h"
-
-/* Meaningless definition needs by aout64.h. FIXME. */
-#define BYTES_IN_WORD 4
-
#include "aout/aout64.h"
#include "aout/stab_gnu.h"
};
static struct bfd_hash_entry *string_hash_newfunc
- PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
+ (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
static bfd_boolean stab_write_symbol
- PARAMS ((struct stab_write_handle *, int, int, bfd_vma, const char *));
+ (struct stab_write_handle *, int, int, bfd_vma, const char *);
static bfd_boolean stab_push_string
- PARAMS ((struct stab_write_handle *, const char *, long, bfd_boolean,
- unsigned int));
+ (struct stab_write_handle *, const char *, long, bfd_boolean, unsigned int);
static bfd_boolean stab_push_defined_type
- PARAMS ((struct stab_write_handle *, long, unsigned int));
-static char *stab_pop_type
- PARAMS ((struct stab_write_handle *));
+ (struct stab_write_handle *, long, unsigned int);
+static char *stab_pop_type (struct stab_write_handle *);
static bfd_boolean stab_modify_type
- PARAMS ((struct stab_write_handle *, int, unsigned int, long **, size_t *));
+ (struct stab_write_handle *, int, unsigned int, long **, size_t *);
static long stab_get_struct_index
- PARAMS ((struct stab_write_handle *, const char *, unsigned int,
- enum debug_type_kind, unsigned int *));
+ (struct stab_write_handle *, const char *, unsigned int,
+ enum debug_type_kind, unsigned int *);
static bfd_boolean stab_class_method_var
- PARAMS ((struct stab_write_handle *, const char *, enum debug_visibility,
- bfd_boolean, bfd_boolean, bfd_boolean, bfd_vma, bfd_boolean));
-static bfd_boolean stab_start_compilation_unit
- PARAMS ((PTR, const char *));
-static bfd_boolean stab_start_source
- PARAMS ((PTR, const char *));
-static bfd_boolean stab_empty_type
- PARAMS ((PTR));
-static bfd_boolean stab_void_type
- PARAMS ((PTR));
-static bfd_boolean stab_int_type
- PARAMS ((PTR, unsigned int, bfd_boolean));
-static bfd_boolean stab_float_type
- PARAMS ((PTR, unsigned int));
-static bfd_boolean stab_complex_type
- PARAMS ((PTR, unsigned int));
-static bfd_boolean stab_bool_type
- PARAMS ((PTR, unsigned int));
+ (struct stab_write_handle *, const char *, enum debug_visibility,
+ bfd_boolean, bfd_boolean, bfd_boolean, bfd_vma, bfd_boolean);
+static bfd_boolean stab_start_compilation_unit (void *, const char *);
+static bfd_boolean stab_start_source (void *, const char *);
+static bfd_boolean stab_empty_type (void *);
+static bfd_boolean stab_void_type (void *);
+static bfd_boolean stab_int_type (void *, unsigned int, bfd_boolean);
+static bfd_boolean stab_float_type (void *, unsigned int);
+static bfd_boolean stab_complex_type (void *, unsigned int);
+static bfd_boolean stab_bool_type (void *, unsigned int);
static bfd_boolean stab_enum_type
- PARAMS ((PTR, const char *, const char **, bfd_signed_vma *));
-static bfd_boolean stab_pointer_type
- PARAMS ((PTR));
-static bfd_boolean stab_function_type
- PARAMS ((PTR, int, bfd_boolean));
-static bfd_boolean stab_reference_type
- PARAMS ((PTR));
-static bfd_boolean stab_range_type
- PARAMS ((PTR, bfd_signed_vma, bfd_signed_vma));
+ (void *, const char *, const char **, bfd_signed_vma *);
+static bfd_boolean stab_pointer_type (void *);
+static bfd_boolean stab_function_type (void *, int, bfd_boolean);
+static bfd_boolean stab_reference_type (void *);
+static bfd_boolean stab_range_type (void *, bfd_signed_vma, bfd_signed_vma);
static bfd_boolean stab_array_type
- PARAMS ((PTR, bfd_signed_vma, bfd_signed_vma, bfd_boolean));
-static bfd_boolean stab_set_type
- PARAMS ((PTR, bfd_boolean));
-static bfd_boolean stab_offset_type
- PARAMS ((PTR));
-static bfd_boolean stab_method_type
- PARAMS ((PTR, bfd_boolean, int, bfd_boolean));
-static bfd_boolean stab_const_type
- PARAMS ((PTR));
-static bfd_boolean stab_volatile_type
- PARAMS ((PTR));
+ (void *, bfd_signed_vma, bfd_signed_vma, bfd_boolean);
+static bfd_boolean stab_set_type (void *, bfd_boolean);
+static bfd_boolean stab_offset_type (void *);
+static bfd_boolean stab_method_type (void *, bfd_boolean, int, bfd_boolean);
+static bfd_boolean stab_const_type (void *);
+static bfd_boolean stab_volatile_type (void *);
static bfd_boolean stab_start_struct_type
- PARAMS ((PTR, const char *, unsigned int, bfd_boolean, unsigned int));
+ (void *, const char *, unsigned int, bfd_boolean, unsigned int);
static bfd_boolean stab_struct_field
- PARAMS ((PTR, const char *, bfd_vma, bfd_vma, enum debug_visibility));
-static bfd_boolean stab_end_struct_type
- PARAMS ((PTR));
+ (void *, const char *, bfd_vma, bfd_vma, enum debug_visibility);
+static bfd_boolean stab_end_struct_type (void *);
static bfd_boolean stab_start_class_type
- PARAMS ((PTR, const char *, unsigned int, bfd_boolean, unsigned int,
- bfd_boolean, bfd_boolean));
+ (void *, const char *, unsigned int, bfd_boolean, unsigned int,
+ bfd_boolean, bfd_boolean);
static bfd_boolean stab_class_static_member
- PARAMS ((PTR, const char *, const char *, enum debug_visibility));
+ (void *, const char *, const char *, enum debug_visibility);
static bfd_boolean stab_class_baseclass
- PARAMS ((PTR, bfd_vma, bfd_boolean, enum debug_visibility));
-static bfd_boolean stab_class_start_method
- PARAMS ((PTR, const char *));
+ (void *, bfd_vma, bfd_boolean, enum debug_visibility);
+static bfd_boolean stab_class_start_method (void *, const char *);
static bfd_boolean stab_class_method_variant
- PARAMS ((PTR, const char *, enum debug_visibility, bfd_boolean, bfd_boolean,
- bfd_vma, bfd_boolean));
+ (void *, const char *, enum debug_visibility, bfd_boolean, bfd_boolean,
+ bfd_vma, bfd_boolean);
static bfd_boolean stab_class_static_method_variant
- PARAMS ((PTR, const char *, enum debug_visibility, bfd_boolean,
- bfd_boolean));
-static bfd_boolean stab_class_end_method
- PARAMS ((PTR));
-static bfd_boolean stab_end_class_type
- PARAMS ((PTR));
-static bfd_boolean stab_typedef_type
- PARAMS ((PTR, const char *));
+ (void *, const char *, enum debug_visibility, bfd_boolean, bfd_boolean);
+static bfd_boolean stab_class_end_method (void *);
+static bfd_boolean stab_end_class_type (void *);
+static bfd_boolean stab_typedef_type (void *, const char *);
static bfd_boolean stab_tag_type
- PARAMS ((PTR, const char *, unsigned int, enum debug_type_kind));
-static bfd_boolean stab_typdef
- PARAMS ((PTR, const char *));
-static bfd_boolean stab_tag
- PARAMS ((PTR, const char *));
-static bfd_boolean stab_int_constant
- PARAMS ((PTR, const char *, bfd_vma));
-static bfd_boolean stab_float_constant
- PARAMS ((PTR, const char *, double));
-static bfd_boolean stab_typed_constant
- PARAMS ((PTR, const char *, bfd_vma));
+ (void *, const char *, unsigned int, enum debug_type_kind);
+static bfd_boolean stab_typdef (void *, const char *);
+static bfd_boolean stab_tag (void *, const char *);
+static bfd_boolean stab_int_constant (void *, const char *, bfd_vma);
+static bfd_boolean stab_float_constant (void *, const char *, double);
+static bfd_boolean stab_typed_constant (void *, const char *, bfd_vma);
static bfd_boolean stab_variable
- PARAMS ((PTR, const char *, enum debug_var_kind, bfd_vma));
-static bfd_boolean stab_start_function
- PARAMS ((PTR, const char *, bfd_boolean));
+ (void *, const char *, enum debug_var_kind, bfd_vma);
+static bfd_boolean stab_start_function (void *, const char *, bfd_boolean);
static bfd_boolean stab_function_parameter
- PARAMS ((PTR, const char *, enum debug_parm_kind, bfd_vma));
-static bfd_boolean stab_start_block
- PARAMS ((PTR, bfd_vma));
-static bfd_boolean stab_end_block
- PARAMS ((PTR, bfd_vma));
-static bfd_boolean stab_end_function
- PARAMS ((PTR));
-static bfd_boolean stab_lineno
- PARAMS ((PTR, const char *, unsigned long, bfd_vma));
+ (void *, const char *, enum debug_parm_kind, bfd_vma);
+static bfd_boolean stab_start_block (void *, bfd_vma);
+static bfd_boolean stab_end_block (void *, bfd_vma);
+static bfd_boolean stab_end_function (void *);
+static bfd_boolean stab_lineno (void *, const char *, unsigned long, bfd_vma);
static const struct debug_write_fns stab_fns =
{
/* Routine to create an entry in a string hash table. */
static struct bfd_hash_entry *
-string_hash_newfunc (entry, table, string)
- struct bfd_hash_entry *entry;
- struct bfd_hash_table *table;
- const char *string;
+string_hash_newfunc (struct bfd_hash_entry *entry,
+ struct bfd_hash_table *table, const char *string)
{
struct string_hash_entry *ret = (struct string_hash_entry *) entry;
/* Add a symbol to the stabs debugging information we are building. */
static bfd_boolean
-stab_write_symbol (info, type, desc, value, string)
- struct stab_write_handle *info;
- int type;
- int desc;
- bfd_vma value;
- const char *string;
+stab_write_symbol (struct stab_write_handle *info, int type, int desc,
+ bfd_vma value, const char *string)
{
bfd_size_type strx;
bfd_byte sym[STAB_SYMBOL_SIZE];
/* Push a string on to the type stack. */
static bfd_boolean
-stab_push_string (info, string, index, definition, size)
- struct stab_write_handle *info;
- const char *string;
- long index;
- bfd_boolean definition;
- unsigned int size;
+stab_push_string (struct stab_write_handle *info, const char *string,
+ long index, bfd_boolean definition, unsigned int size)
{
struct stab_type_stack *s;
/* Push a type index which has already been defined. */
static bfd_boolean
-stab_push_defined_type (info, index, size)
- struct stab_write_handle *info;
- long index;
- unsigned int size;
+stab_push_defined_type (struct stab_write_handle *info, long index,
+ unsigned int size)
{
char buf[20];
freeing the string. */
static char *
-stab_pop_type (info)
- struct stab_write_handle *info;
+stab_pop_type (struct stab_write_handle *info)
{
struct stab_type_stack *s;
char *ret;
strings, and *PSTRINGSIZE to the size of the strings. */
bfd_boolean
-write_stabs_in_sections_debugging_info (abfd, dhandle, psyms, psymsize,
- pstrings, pstringsize)
- bfd *abfd;
- PTR dhandle;
- bfd_byte **psyms;
- bfd_size_type *psymsize;
- bfd_byte **pstrings;
- bfd_size_type *pstringsize;
+write_stabs_in_sections_debugging_info (bfd *abfd, void *dhandle,
+ bfd_byte **psyms,
+ bfd_size_type *psymsize,
+ bfd_byte **pstrings,
+ bfd_size_type *pstringsize)
{
struct stab_write_handle info;
struct string_hash_entry *h;
/* Reserve 1 byte for a null byte. */
info.strings_size = 1;
- if (! bfd_hash_table_init (&info.strhash.table, string_hash_newfunc)
- || ! bfd_hash_table_init (&info.typedef_hash.table, string_hash_newfunc))
+ if (!bfd_hash_table_init (&info.strhash.table, string_hash_newfunc,
+ sizeof (struct string_hash_entry))
+ || !bfd_hash_table_init (&info.typedef_hash.table, string_hash_newfunc,
+ sizeof (struct string_hash_entry)))
{
non_fatal ("bfd_hash_table_init_failed: %s",
bfd_errmsg (bfd_get_error ()));
if (! stab_write_symbol (&info, N_SO, 0, 0, bfd_get_filename (abfd)))
return FALSE;
- if (! debug_write (dhandle, &stab_fns, (PTR) &info))
+ if (! debug_write (dhandle, &stab_fns, (void *) &info))
return FALSE;
assert (info.pending_lbrac == (bfd_vma) -1);
/* Start writing out information for a compilation unit. */
static bfd_boolean
-stab_start_compilation_unit (p, filename)
- PTR p;
- const char *filename;
+stab_start_compilation_unit (void *p, const char *filename)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
/* Start writing out information for a particular source file. */
static bfd_boolean
-stab_start_source (p, filename)
- PTR p;
- const char *filename;
+stab_start_source (void *p, const char *filename)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
void type. */
static bfd_boolean
-stab_empty_type (p)
- PTR p;
+stab_empty_type (void *p)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
/* Push a void type. */
static bfd_boolean
-stab_void_type (p)
- PTR p;
+stab_void_type (void *p)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
/* Push an integer type. */
static bfd_boolean
-stab_int_type (p, size, unsignedp)
- PTR p;
- unsigned int size;
- bfd_boolean unsignedp;
+stab_int_type (void *p, unsigned int size, bfd_boolean unsignedp)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
long *cache;
/* Push a floating point type. */
static bfd_boolean
-stab_float_type (p, size)
- PTR p;
- unsigned int size;
+stab_float_type (void *p, unsigned int size)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
/* Push a complex type. */
static bfd_boolean
-stab_complex_type (p, size)
- PTR p;
- unsigned int size;
+stab_complex_type (void *p, unsigned int size)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
char buf[50];
always recognizes them. */
static bfd_boolean
-stab_bool_type (p, size)
- PTR p;
- unsigned int size;
+stab_bool_type (void *p, unsigned int size)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
long index;
/* Push an enum type. */
static bfd_boolean
-stab_enum_type (p, tag, names, vals)
- PTR p;
- const char *tag;
- const char **names;
- bfd_signed_vma *vals;
+stab_enum_type (void *p, const char *tag, const char **names,
+ bfd_signed_vma *vals)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
size_t len;
results in CACHE and CACHE_ALLOC. */
static bfd_boolean
-stab_modify_type (info, mod, size, cache, cache_alloc)
- struct stab_write_handle *info;
- int mod;
- unsigned int size;
- long **cache;
- size_t *cache_alloc;
+stab_modify_type (struct stab_write_handle *info, int mod,
+ unsigned int size, long **cache, size_t *cache_alloc)
{
long targindex;
long index;
/* Push a pointer type. */
static bfd_boolean
-stab_pointer_type (p)
- PTR p;
+stab_pointer_type (void *p)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
/* Push a function type. */
static bfd_boolean
-stab_function_type (p, argcount, varargs)
- PTR p;
- int argcount;
- bfd_boolean varargs ATTRIBUTE_UNUSED;
+stab_function_type (void *p, int argcount,
+ bfd_boolean varargs ATTRIBUTE_UNUSED)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
int i;
/* Push a reference type. */
static bfd_boolean
-stab_reference_type (p)
- PTR p;
+stab_reference_type (void *p)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
/* Push a range type. */
static bfd_boolean
-stab_range_type (p, low, high)
- PTR p;
- bfd_signed_vma low;
- bfd_signed_vma high;
+stab_range_type (void *p, bfd_signed_vma low, bfd_signed_vma high)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
bfd_boolean definition;
/* Push an array type. */
static bfd_boolean
-stab_array_type (p, low, high, stringp)
- PTR p;
- bfd_signed_vma low;
- bfd_signed_vma high;
- bfd_boolean stringp;
+stab_array_type (void *p, bfd_signed_vma low, bfd_signed_vma high,
+ bfd_boolean stringp)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
bfd_boolean definition;
/* Push a set type. */
static bfd_boolean
-stab_set_type (p, bitstringp)
- PTR p;
- bfd_boolean bitstringp;
+stab_set_type (void *p, bfd_boolean bitstringp)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
bfd_boolean definition;
/* Push an offset type. */
static bfd_boolean
-stab_offset_type (p)
- PTR p;
+stab_offset_type (void *p)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
bfd_boolean definition;
/* Push a method type. */
static bfd_boolean
-stab_method_type (p, domainp, argcount, varargs)
- PTR p;
- bfd_boolean domainp;
- int argcount;
- bfd_boolean varargs;
+stab_method_type (void *p, bfd_boolean domainp, int argcount,
+ bfd_boolean varargs)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
bfd_boolean definition;
/* Push a const version of a type. */
static bfd_boolean
-stab_const_type (p)
- PTR p;
+stab_const_type (void *p)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
/* Push a volatile version of a type. */
static bfd_boolean
-stab_volatile_type (p)
- PTR p;
+stab_volatile_type (void *p)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
return -1 if it fails. */
static long
-stab_get_struct_index (info, tag, id, kind, psize)
- struct stab_write_handle *info;
- const char *tag;
- unsigned int id;
- enum debug_type_kind kind;
- unsigned int *psize;
+stab_get_struct_index (struct stab_write_handle *info, const char *tag,
+ unsigned int id, enum debug_type_kind kind,
+ unsigned int *psize)
{
if (id >= info->type_cache.struct_types_alloc)
{
stab_tag. */
static bfd_boolean
-stab_start_struct_type (p, tag, id, structp, size)
- PTR p;
- const char *tag;
- unsigned int id;
- bfd_boolean structp;
- unsigned int size;
+stab_start_struct_type (void *p, const char *tag, unsigned int id,
+ bfd_boolean structp, unsigned int size)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
long index;
/* Add a field to a struct. */
static bfd_boolean
-stab_struct_field (p, name, bitpos, bitsize, visibility)
- PTR p;
- const char *name;
- bfd_vma bitpos;
- bfd_vma bitsize;
- enum debug_visibility visibility;
+stab_struct_field (void *p, const char *name, bfd_vma bitpos,
+ bfd_vma bitsize, enum debug_visibility visibility)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
bfd_boolean definition;
/* Finish up a struct. */
static bfd_boolean
-stab_end_struct_type (p)
- PTR p;
+stab_end_struct_type (void *p)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
bfd_boolean definition;
/* Start outputting a class. */
static bfd_boolean
-stab_start_class_type (p, tag, id, structp, size, vptr, ownvptr)
- PTR p;
- const char *tag;
- unsigned int id;
- bfd_boolean structp;
- unsigned int size;
- bfd_boolean vptr;
- bfd_boolean ownvptr;
+stab_start_class_type (void *p, const char *tag, unsigned int id, bfd_boolean structp, unsigned int size, bfd_boolean vptr, bfd_boolean ownvptr)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
bfd_boolean definition;
/* Add a static member to the class on the type stack. */
static bfd_boolean
-stab_class_static_member (p, name, physname, visibility)
- PTR p;
- const char *name;
- const char *physname;
- enum debug_visibility visibility;
+stab_class_static_member (void *p, const char *name, const char *physname,
+ enum debug_visibility visibility)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
bfd_boolean definition;
/* Add a base class to the class on the type stack. */
static bfd_boolean
-stab_class_baseclass (p, bitpos, virtual, visibility)
- PTR p;
- bfd_vma bitpos;
- bfd_boolean virtual;
- enum debug_visibility visibility;
+stab_class_baseclass (void *p, bfd_vma bitpos, bfd_boolean is_virtual,
+ enum debug_visibility visibility)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
bfd_boolean definition;
/* Build the base class specifier. */
buf = (char *) xmalloc (strlen (s) + 25);
- buf[0] = virtual ? '1' : '0';
+ buf[0] = is_virtual ? '1' : '0';
switch (visibility)
{
default:
/* Start adding a method to the class on the type stack. */
static bfd_boolean
-stab_class_start_method (p, name)
- PTR p;
- const char *name;
+stab_class_start_method (void *p, const char *name)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
char *m;
/* Add a variant, either static or not, to the current method. */
static bfd_boolean
-stab_class_method_var (info, physname, visibility, staticp, constp, volatilep,
- voffset, contextp)
- struct stab_write_handle *info;
- const char *physname;
- enum debug_visibility visibility;
- bfd_boolean staticp;
- bfd_boolean constp;
- bfd_boolean volatilep;
- bfd_vma voffset;
- bfd_boolean contextp;
+stab_class_method_var (struct stab_write_handle *info, const char *physname,
+ enum debug_visibility visibility,
+ bfd_boolean staticp, bfd_boolean constp,
+ bfd_boolean volatilep, bfd_vma voffset,
+ bfd_boolean contextp)
{
bfd_boolean definition;
char *type;
/* Add a variant to the current method. */
static bfd_boolean
-stab_class_method_variant (p, physname, visibility, constp, volatilep,
- voffset, contextp)
- PTR p;
- const char *physname;
- enum debug_visibility visibility;
- bfd_boolean constp;
- bfd_boolean volatilep;
- bfd_vma voffset;
- bfd_boolean contextp;
+stab_class_method_variant (void *p, const char *physname,
+ enum debug_visibility visibility,
+ bfd_boolean constp, bfd_boolean volatilep,
+ bfd_vma voffset, bfd_boolean contextp)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
/* Add a static variant to the current method. */
static bfd_boolean
-stab_class_static_method_variant (p, physname, visibility, constp, volatilep)
- PTR p;
- const char *physname;
- enum debug_visibility visibility;
- bfd_boolean constp;
- bfd_boolean volatilep;
+stab_class_static_method_variant (void *p, const char *physname,
+ enum debug_visibility visibility,
+ bfd_boolean constp, bfd_boolean volatilep)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
/* Finish up a method. */
static bfd_boolean
-stab_class_end_method (p)
- PTR p;
+stab_class_end_method (void *p)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
/* Finish up a class. */
static bfd_boolean
-stab_end_class_type (p)
- PTR p;
+stab_end_class_type (void *p)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
size_t len;
/* Push a typedef which was previously defined. */
static bfd_boolean
-stab_typedef_type (p, name)
- PTR p;
- const char *name;
+stab_typedef_type (void *p, const char *name)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
struct string_hash_entry *h;
/* Push a struct, union or class tag. */
static bfd_boolean
-stab_tag_type (p, name, id, kind)
- PTR p;
- const char *name;
- unsigned int id;
- enum debug_type_kind kind;
+stab_tag_type (void *p, const char *name, unsigned int id,
+ enum debug_type_kind kind)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
long index;
- unsigned int size;
+ unsigned int size = 0;
index = stab_get_struct_index (info, name, id, kind, &size);
if (index < 0)
/* Define a typedef. */
static bfd_boolean
-stab_typdef (p, name)
- PTR p;
- const char *name;
+stab_typdef (void *p, const char *name)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
long index;
/* Define a tag. */
static bfd_boolean
-stab_tag (p, tag)
- PTR p;
- const char *tag;
+stab_tag (void *p, const char *tag)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
char *s, *buf;
/* Define an integer constant. */
static bfd_boolean
-stab_int_constant (p, name, val)
- PTR p;
- const char *name;
- bfd_vma val;
+stab_int_constant (void *p, const char *name, bfd_vma val)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
char *buf;
/* Define a floating point constant. */
static bfd_boolean
-stab_float_constant (p, name, val)
- PTR p;
- const char *name;
- double val;
+stab_float_constant (void *p, const char *name, double val)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
char *buf;
/* Define a typed constant. */
static bfd_boolean
-stab_typed_constant (p, name, val)
- PTR p;
- const char *name;
- bfd_vma val;
+stab_typed_constant (void *p, const char *name, bfd_vma val)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
char *s, *buf;
/* Record a variable. */
static bfd_boolean
-stab_variable (p, name, kind, val)
- PTR p;
- const char *name;
- enum debug_var_kind kind;
- bfd_vma val;
+stab_variable (void *p, const char *name, enum debug_var_kind kind,
+ bfd_vma val)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
char *s, *buf;
/* Start outputting a function. */
static bfd_boolean
-stab_start_function (p, name, globalp)
- PTR p;
- const char *name;
- bfd_boolean globalp;
+stab_start_function (void *p, const char *name, bfd_boolean globalp)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
char *rettype, *buf;
/* Output a function parameter. */
static bfd_boolean
-stab_function_parameter (p, name, kind, val)
- PTR p;
- const char *name;
- enum debug_parm_kind kind;
- bfd_vma val;
+stab_function_parameter (void *p, const char *name, enum debug_parm_kind kind, bfd_vma val)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
char *s, *buf;
/* Start a block. */
static bfd_boolean
-stab_start_block (p, addr)
- PTR p;
- bfd_vma addr;
+stab_start_block (void *p, bfd_vma addr)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
/* End a block. */
static bfd_boolean
-stab_end_block (p, addr)
- PTR p;
- bfd_vma addr;
+stab_end_block (void *p, bfd_vma addr)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;
/* End a function. */
static bfd_boolean
-stab_end_function (p)
- PTR p ATTRIBUTE_UNUSED;
+stab_end_function (void *p ATTRIBUTE_UNUSED)
{
return TRUE;
}
/* Output a line number. */
static bfd_boolean
-stab_lineno (p, file, lineno, addr)
- PTR p;
- const char *file;
- unsigned long lineno;
- bfd_vma addr;
+stab_lineno (void *p, const char *file, unsigned long lineno, bfd_vma addr)
{
struct stab_write_handle *info = (struct stab_write_handle *) p;