summaryrefslogtreecommitdiff
path: root/binutils/stabs.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2003-02-13 10:38:37 +0000
committerNick Clifton <nickc@redhat.com>2003-02-13 10:38:37 +0000
commitd0e36b0c5211a1aa698e7c3b01caf32525c9b9dd (patch)
treea342165f42638013fca6be20baf30b5b9f1b632e /binutils/stabs.c
parent766c6103ac7652361b9e416849a7618aa65cd02f (diff)
downloadbinutils-redhat-d0e36b0c5211a1aa698e7c3b01caf32525c9b9dd.tar.gz
For N_SLINE only include function_start_offset if the symbol is within a
function; otherwise, the value is absolute.
Diffstat (limited to 'binutils/stabs.c')
-rw-r--r--binutils/stabs.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/binutils/stabs.c b/binutils/stabs.c
index 1ff4f6f60d..2611bc3237 100644
--- a/binutils/stabs.c
+++ b/binutils/stabs.c
@@ -1,5 +1,5 @@
/* stabs.c -- Parse stabs debugging information
- Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+ Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Written by Ian Lance Taylor <ian@cygnus.com>.
@@ -176,8 +176,8 @@ static debug_type parse_stab_sun_floating_type
static debug_type parse_stab_enum_type
PARAMS ((PTR, const char **));
static debug_type parse_stab_struct_type
- PARAMS ((PTR, struct stab_handle *, const char *, const char **, bfd_boolean,
- const int *));
+ PARAMS ((PTR, struct stab_handle *, const char *, const char **,
+ bfd_boolean, const int *));
static bfd_boolean parse_stab_baseclasses
PARAMS ((PTR, struct stab_handle *, const char **, debug_baseclass **));
static bfd_boolean parse_stab_struct_fields
@@ -222,7 +222,8 @@ static debug_type stab_find_tagged_type
PARAMS ((PTR, struct stab_handle *, const char *, int,
enum debug_type_kind));
static debug_type *stab_demangle_argtypes
- PARAMS ((PTR, struct stab_handle *, const char *, bfd_boolean *, unsigned int));
+ PARAMS ((PTR, struct stab_handle *, const char *, bfd_boolean *,
+ unsigned int));
/* Save a string in memory. */
@@ -610,7 +611,8 @@ parse_stab (dhandle, handle, type, desc, value, string)
case N_SLINE:
if (! debug_record_line (dhandle, desc,
- value + info->function_start_offset))
+ value + (info->within_function
+ ? info->function_start_offset : 0)))
return FALSE;
break;