[gdb] - Rebase to FSF GDB 7.2.50.20110125 (which is a 7.3 pre-release). - Fix discontiguous address ranges
Jan Kratochvil
jankratochvil at fedoraproject.org
Tue Jan 25 21:59:29 UTC 2011
commit ea07d44ec298f210aea4ca907241f66c07133073
Author: Jan Kratochvil <jan.kratochvil at redhat.com>
Date: Tue Jan 25 22:59:16 2011 +0100
- 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.
gdb-dwarf3-accessibility.patch | 86 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 86 insertions(+), 0 deletions(-)
---
diff --git a/gdb-dwarf3-accessibility.patch b/gdb-dwarf3-accessibility.patch
new file mode 100644
index 0000000..d54dc34
--- /dev/null
+++ b/gdb-dwarf3-accessibility.patch
@@ -0,0 +1,86 @@
+http://sourceware.org/ml/gdb-patches/2011-01/msg00507.html
+Subject: [patch] Fix DWARF-3+ DW_AT_accessibility default assumption
+
+Hi,
+
+GDB regresses on default compiler option -gdwarf-3 on gcc-4.6+ as this gcc
+started to omit DW_AT_accessibility for the default value case. Normal
+upstream gcc still has -gdwarf-2 default (Fedora uses -gdwarf-3 default).
+
+No regressions on {x86_64,x86_64-m32,i686}-fedora15-linux-gnu.
+(There are other regressions to be fixed due to gcc45->gcc46.)
+
+I will check it in in some time.
+
+
+Thanks,
+Jan
+
+
+-FAIL: gdb.cp/casts.exp: dynamic_cast simple downcast
+-FAIL: gdb.cp/casts.exp: dynamic_cast simple downcast to intermediate class
+-FAIL: gdb.cp/casts.exp: dynamic_cast unique downcast
+-FAIL: gdb.cp/casts.exp: dynamic_cast to sibling
+-FAIL: gdb.cp/classes.exp: ptype class default_private_class // wrong access specifier for field: public
+-FAIL: gdb.cp/classes.exp: ptype class explicit_private_class // wrong access specifier for field: public
+-FAIL: gdb.cp/classes.exp: ptype class mixed_protection_class // wrong access specifier for field: public
+-FAIL: gdb.cp/virtfunc.exp: ptype A // wrong access specifier for field: public
+-FAIL: gdb.cp/virtfunc.exp: ptype B // wrong access specifier for field: public
+-FAIL: gdb.cp/virtfunc.exp: ptype a // wrong access specifier for field: public
+-FAIL: gdb.cp/virtfunc.exp: ptype b // wrong access specifier for field: public
+-FAIL: gdb.cp/virtfunc.exp: ptype pAa // wrong access specifier for field: public
+-FAIL: gdb.cp/virtfunc.exp: ptype pAe // wrong access specifier for field: public
+-FAIL: gdb.cp/virtfunc.exp: ptype pBe // wrong access specifier for field: public
+-FAIL: gdb.mi/gdb792.exp: list children of class A
+-FAIL: gdb.mi/gdb792.exp: list children of A.public
+-FAIL: gdb.mi/gdb792.exp: list children of A.private
+-FAIL: gdb.mi/gdb792.exp: list children of A.protected
+-FAIL: gdb.mi/gdb792.exp: list children of A.protected.b
+-FAIL: gdb.mi/gdb792.exp: list children of A.protected.b.public
+-FAIL: gdb.mi/gdb792.exp: list children of A.protected.b.private
+-FAIL: gdb.mi/gdb792.exp: list children of class C
+-FAIL: gdb.python/py-value.exp: python print bool(gdb.parse_and_eval('base').dynamic_cast(gdb.lookup_type('Derived').pointer()))
+
+
+gdb/
+2011-01-25 Jan Kratochvil <jan.kratochvil at redhat.com>
+
+ Fix DWARF-3+ DW_AT_accessibility default assumption.
+ * dwarf2read.c (dwarf2_add_field): Fix new_field->accessibility for
+ cu->header.version >= 3.
+
+--- a/gdb/dwarf2read.c
++++ b/gdb/dwarf2read.c
+@@ -6186,13 +6186,25 @@ dwarf2_add_field (struct field_info *fip, struct die_info *die,
+ }
+ fip->nfields++;
+
+- /* Handle accessibility and virtuality of field.
+- The default accessibility for members is public, the default
+- accessibility for inheritance is private. */
+- if (die->tag != DW_TAG_inheritance)
+- new_field->accessibility = DW_ACCESS_public;
++ if (cu->header.version < 3)
++ {
++ /* The default DWARF 2 accessibility for members is public, the default
++ accessibility for inheritance is private. */
++
++ if (die->tag != DW_TAG_inheritance)
++ new_field->accessibility = DW_ACCESS_public;
++ else
++ new_field->accessibility = DW_ACCESS_private;
++ }
+ else
+- new_field->accessibility = DW_ACCESS_private;
++ {
++ /* DWARF 3 specifies the default accessibility explicitly. */
++
++ if (die->parent->tag == DW_TAG_class_type)
++ new_field->accessibility = DW_ACCESS_private;
++ else
++ new_field->accessibility = DW_ACCESS_public;
++ }
+ new_field->virtuality = DW_VIRTUALITY_none;
+
+ attr = dwarf2_attr (die, DW_AT_accessibility, cu);
+
More information about the scm-commits
mailing list