From: Alan Modra Date: Mon, 2 Mar 2009 13:50:55 +0000 (+0000) Subject: backport 2009-01-22 Alan Modra X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a432d8effb03f6d6abf571faf7b9f215375a5cee;p=thirdparty%2Fbinutils-gdb.git backport 2009-01-22 Alan Modra --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 831b3960ddf..bc02ce85f46 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,10 @@ 2009-03-02 Alan Modra + 2009-01-22 Alan Modra + PR 6832 + * dwarf2.c (find_line): Don't update stash->sec_info_ptr until + after comp_unit_find_line call. + 2009-01-14 Alan Modra PR 9735 * syms.c (_bfd_stab_section_find_nearest_line): Don't free diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c index b53a5d45d6e..dae271d500c 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). @@ -3186,13 +3186,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 @@ -3222,6 +3215,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; }