/* stabs.c -- Parse COFF debugging information
- Copyright (C) 1996, 98, 99, 2000 Free Software Foundation, Inc.
+ Copyright 1996, 2000 Free Software Foundation, Inc.
Written by Ian Lance Taylor <ian@cygnus.com>.
This file is part of GNU Binutils.
#include "coff/internal.h"
#include "bucomm.h"
#include "libiberty.h"
-#include "demangle.h"
#include "debug.h"
#include "budbg.h"
static boolean parse_coff_symbol
PARAMS ((bfd *, struct coff_types *, asymbol *, long,
struct internal_syment *, PTR, debug_type, boolean));
+static boolean external_coff_symbol_p PARAMS ((int sym_class));
\f
/* Return the slot for a type. */
return false;
break;
+ case C_WEAKEXT:
case C_EXT:
if (! debug_record_variable (dhandle, bfd_asymbol_name (sym), type,
DEBUG_GLOBAL, bfd_asymbol_value (sym)))
break;
}
- return true;
+ return true;
+}
+
+/* Determine if a symbol has external visibility. */
+
+static boolean
+external_coff_symbol_p (sym_class)
+ int sym_class;
+{
+ switch (sym_class)
+ {
+ case C_EXT:
+ case C_WEAKEXT:
+ return true;
+ default:
+ break;
+ }
+ return false;
}
/* This is the main routine. It looks through all the symbols and
if (syment.n_type == T_NULL)
break;
/* Fall through. */
+ case C_WEAKEXT:
case C_EXT:
if (ISFCN (syment.n_type))
{
return false;
if (! debug_record_function (dhandle, fnname, type,
- fnclass == C_EXT,
+ external_coff_symbol_p (fnclass),
bfd_asymbol_value (sym)))
return false;