- Temporary fix of F15 gcc-4.6 child DIEs of DW_TAG_typedef (BZ 672230).

- Workaround gcc-4.6 stdarg false prologue end (GDB PR 12435 + GCC PR 47471).
This commit is contained in:
Jan Kratochvil 2011-01-26 15:41:26 +01:00
parent ea07d44ec2
commit 16c47e7f0c
3 changed files with 55 additions and 2 deletions

View File

@ -0,0 +1,24 @@
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 6a98d57..9fa9c3c 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -10371,6 +10371,9 @@ dwarf_decode_lines (struct line_header *lh, const char *comp_dir, bfd *abfd,
if (op_code >= lh->opcode_base)
{
+ CORE_ADDR saved_address = address;
+ unsigned int saved_line = line;
+
/* Special operand. */
adj_opcode = op_code - lh->opcode_base;
address += (((op_index + (adj_opcode / lh->line_range))
@@ -10383,7 +10386,8 @@ dwarf_decode_lines (struct line_header *lh, const char *comp_dir, bfd *abfd,
dwarf2_debug_line_missing_file_complaint ();
/* For now we ignore lines not starting on an
instruction boundary. */
- else if (op_index == 0)
+ else if (op_index == 0
+ && (address != saved_address || line != saved_line))
{
lh->file_names[file - 1].included_p = 1;
if (!decode_for_pst_p && is_stmt)

17
gdb-gcc46-typedef.patch Normal file
View File

@ -0,0 +1,17 @@
internal-error: could not find partial DIE
https://bugzilla.redhat.com/show_bug.cgi?id=672230
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 6a98d57..f33a327 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -8796,8 +8796,7 @@ load_partial_dies (bfd *abfd, gdb_byte *buffer, gdb_byte *info_ptr,
if (parent_die == NULL
&& part_die->has_specification == 0
&& part_die->is_declaration == 0
- && (part_die->tag == DW_TAG_typedef
- || part_die->tag == DW_TAG_base_type
+ && (part_die->tag == DW_TAG_base_type
|| part_die->tag == DW_TAG_subrange_type))
{
if (building_psymtab && part_die->name != NULL)

View File

@ -27,7 +27,7 @@ Version: 7.2.50.20110125
# The release always contains a leading reserved number, start it at 1.
# `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
Release: 14%{?_with_upstream:.upstream}%{?dist}
Release: 15%{?_with_upstream:.upstream}%{?dist}
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and GFDL and BSD and Public Domain
Group: Development/Debuggers
@ -543,6 +543,12 @@ Patch552: gdb-gdbindex-v4-2of3.patch
# Fix DWARF-3+ DW_AT_accessibility default assumption for F15 gcc-4.6.
Patch554: gdb-dwarf3-accessibility.patch
# Temporary fix of F15 gcc-4.6 child DIEs of DW_TAG_typedef (BZ 672230).
Patch555: gdb-gcc46-typedef.patch
# Workaround gcc-4.6 stdarg false prologue end (GDB PR 12435 + GCC PR 47471).
Patch556: gdb-gcc46-stdarg-prologue.patch
BuildRequires: ncurses-devel%{?_isa} texinfo gettext flex bison expat-devel%{?_isa}
Requires: readline%{?_isa}
BuildRequires: readline-devel%{?_isa}
@ -794,6 +800,8 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c
%patch548 -p1
%patch552 -p1
%patch554 -p1
%patch555 -p1
%patch556 -p1
%patch390 -p1
%patch393 -p1
@ -1200,7 +1208,11 @@ fi
%endif
%changelog
* Thu Jan 20 2011 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.2.50.20110125-14.fc15
* Wed Jan 26 2011 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.2.50.20110125-15.fc15
- Temporary fix of F15 gcc-4.6 child DIEs of DW_TAG_typedef (BZ 672230).
- Workaround gcc-4.6 stdarg false prologue end (GDB PR 12435 + GCC PR 47471).
* Tue Jan 25 2011 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.2.50.20110125-14.fc15
- Rebase to FSF GDB 7.2.50.20110125 (which is a 7.3 pre-release).
- Fix discontiguous address ranges in .gdb_index - v3->v4 (BZ 672281).
- Fix DWARF-3+ DW_AT_accessibility default assumption for F15 gcc-4.6.