/* Table of stab names for the BFD library.
- Copyright (C) 1990, 91, 92, 93, 94, 1995 Free Software Foundation, Inc.
+ Copyright (C) 1990, 91, 92, 93, 94, 95, 1996 Free Software Foundation, Inc.
Written by Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
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., 675 Mass Ave, Cambridge, MA 02139, USA. */
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "bfd.h"
#include "libaout.h"
#include "aout/aout64.h"
-/* Create a table of debugging stab-codes and corresponding names. */
-
+/* Ignore duplicate stab codes; just return the string for the first
+ one. */
#define __define_stab(NAME, CODE, STRING) __define_name(CODE, STRING)
+#define __define_stab_duplicate(NAME, CODE, STRING)
/* These are not really stab symbols, but it is
convenient to have them here for the sake of nm.
__define_name (N_INDR, "INDR") \
__define_name (N_WARNING, "WARNING")
-CONST char *
-aout_stab_name (code)
+const char *
+bfd_get_stab_name (code)
int code;
{
-#if 0 /* This lookup table is slower than lots of explicit tests, at
- least on the i386. One advantage is that the compiler can
- eliminate duplicates from the code, whereas they can't easily
- be eliminated from the lookup table. */
-
-#define __define_name(CODE, STRING) {(int)CODE, STRING},
- static const struct {
- int code;
- char string[7];
- } aout_stab_names[] = {
-#include "aout/stab.def"
- EXTRA_SYMBOLS
- };
- register int i = sizeof (aout_stab_names) / sizeof (aout_stab_names[0]);
- while (--i >= 0)
- if (aout_stab_names[i].code == code)
- return aout_stab_names[i].string;
-
-#else
-
-#define __define_name(val, str) if (val == code) return str ;
+ switch (code)
+ {
+#define __define_name(val, str) case val: return str;
#include "aout/stab.def"
- EXTRA_SYMBOLS
-
-#endif
+ EXTRA_SYMBOLS
+ }
- return 0;
+ return (const char *) 0;
}