From be04437d39bd4b3599ba5fe7e114b49f47ca7a88 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Thu, 22 Jan 2009 08:54:20 +0000 Subject: [PATCH] PR 6832 * dwarf2.c (find_line): Don't update stash->sec_info_ptr until after comp_unit_find_line call. --- bfd/ChangeLog | 6 ++++++ bfd/dwarf2.c | 17 +++++++++-------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index f6e97266f3f..3f70af79c67 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +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-21 Nick Clifton PR 9769 diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c index f1f6c908efa..4f2e38c5284 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; } -- 2.30.2