diff options
author | Alan Modra <amodra@bigpond.net.au> | 2009-01-22 08:54:20 +0000 |
---|---|---|
committer | Alan Modra <amodra@bigpond.net.au> | 2009-01-22 08:54:20 +0000 |
commit | ba0fb2558e6a6583e0e3f775507d038bb9b9dc04 (patch) | |
tree | b17bce93ac1474686b951c0412fe017fd3818380 /bfd/dwarf2.c | |
parent | 496151595206df822f5727f6edcb78cc38b9d42f (diff) | |
download | binutils-redhat-ba0fb2558e6a6583e0e3f775507d038bb9b9dc04.tar.gz |
PR 6832
* dwarf2.c (find_line): Don't update stash->sec_info_ptr until
after comp_unit_find_line call.
Diffstat (limited to 'bfd/dwarf2.c')
-rw-r--r-- | bfd/dwarf2.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c index f1f6c908ef..4f2e38c528 100644 --- a/bfd/dwarf2.c +++ b/bfd/dwarf2.c @@ -1,6 +1,6 @@ /* DWARF 2 support. Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, - 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. + 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. Adapted from gdb/dwarf2read.c by Gavin Koch of Cygnus Solutions (gavin@cygnus.com). @@ -3189,13 +3189,6 @@ find_line (bfd *abfd, break; stash->info_ptr += length; - if ((bfd_vma) (stash->info_ptr - stash->sec_info_ptr) - == stash->sec->size) - { - stash->sec = find_debug_info (stash->bfd, stash->sec); - stash->sec_info_ptr = stash->info_ptr; - } - if (stash->all_comp_units) stash->all_comp_units->prev_unit = each; else @@ -3225,6 +3218,14 @@ find_line (bfd *abfd, functionname_ptr, linenumber_ptr, stash)); + + if ((bfd_vma) (stash->info_ptr - stash->sec_info_ptr) + == stash->sec->size) + { + stash->sec = find_debug_info (stash->bfd, stash->sec); + stash->sec_info_ptr = stash->info_ptr; + } + if (found) goto done; } |