This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFA]dwarf reader: Avoid complaint on const type
- From: Pedro Alves <pedro at codesourcery dot com>
- To: Joel Brobecker <brobecker at adacore dot com>
- Cc: Pierre Muller <pierre dot muller at ics-cnrs dot unistra dot fr>, "'Doug Evans'" <dje at google dot com>, gdb-patches at sourceware dot org
- Date: Wed, 21 Jul 2010 18:16:42 +0100
- Subject: Re: [RFA]dwarf reader: Avoid complaint on const type
- References: <41597.7287375883$1274454923@news.gmane.org> <201007011808.55025.pedro@codesourcery.com> <20100701171256.GW2595@adacore.com>
Since a month has passed and this hasn't been fully resolved
yet, I'm reverting the original patch, and adding a test
independent of sigaltstack.exp covering the problem. I also
filed PR11827 for the problem, just so I could add a pointer in
the testcase.
I'll apply this to both the 7.2 branch and mainline in a bit.
--
Pedro Alves
gdb/
2010-07-21 Pedro Alves <pedro@codesourcery.com>
PR symtab/11827
Revert:
2010-05-21 Pierre Muller <muller@ics.u-strasbg.fr>
* dwarf2read.c (process_die): Also allow DW_TAG_const_type
and DW_TAG_volatile_type.
(new_symbol): Likewise.
gdb/testsuite/
2010-07-21 Pedro Alves <pedro@codesourcery.com>
PR symtab/11827
* gdb.base/printcmds.c (enum some_volatile_enum): New enum.
(some_volatile_enum): New variable.
* gdb.base/printcmds.exp (test_print_enums): New.
<top level>: Call it.
---
gdb/dwarf2read.c | 4 ----
gdb/testsuite/gdb.base/printcmds.c | 6 ++++++
gdb/testsuite/gdb.base/printcmds.exp | 6 ++++++
3 files changed, 12 insertions(+), 4 deletions(-)
Index: src/gdb/testsuite/gdb.base/printcmds.c
===================================================================
--- src.orig/gdb/testsuite/gdb.base/printcmds.c 2010-07-21 18:03:30.000000000 +0100
+++ src/gdb/testsuite/gdb.base/printcmds.c 2010-07-21 18:05:08.000000000 +0100
@@ -90,6 +90,12 @@ struct some_arrays {
struct some_arrays *parrays = &arrays;
+enum some_volatile_enum { enumvolval1, enumvolval2 };
+
+/* A volatile enum variable whose name is the same as the enumeration
+ name. See PR11827. */
+volatile enum some_volatile_enum some_volatile_enum = enumvolval1;
+
/* -- */
int main ()
Index: src/gdb/testsuite/gdb.base/printcmds.exp
===================================================================
--- src.orig/gdb/testsuite/gdb.base/printcmds.exp 2010-07-21 18:03:30.000000000 +0100
+++ src/gdb/testsuite/gdb.base/printcmds.exp 2010-07-21 18:05:37.000000000 +0100
@@ -671,6 +671,11 @@ proc test_print_array_constants {} {
gdb_test "print *&{4,5,6}\[1\]" "Attempt to take address of value not located in memory."
}
+proc test_print_enums {} {
+ # Regression test for PR11827.
+ gdb_test "print some_volatile_enum" "enumvolval1"
+}
+
proc test_printf {} {
gdb_test "printf \"x=%d,y=%d,z=%d\\n\", 5, 6, 7" "x=5,y=6,z=7"
gdb_test "printf \"string=%.4sxx\\n\", teststring" "string=testxx"
@@ -800,6 +805,7 @@ if [set_lang_c] then {
# We used to do the runto main here.
test_print_string_constants
test_print_array_constants
+ test_print_enums
test_printf
test_printf_with_dfp
}
Index: src/gdb/dwarf2read.c
===================================================================
--- src.orig/gdb/dwarf2read.c 2010-07-21 18:06:55.000000000 +0100
+++ src/gdb/dwarf2read.c 2010-07-21 18:07:10.000000000 +0100
@@ -4192,8 +4192,6 @@ process_die (struct die_info *die, struc
case DW_TAG_base_type:
case DW_TAG_subrange_type:
case DW_TAG_typedef:
- case DW_TAG_const_type:
- case DW_TAG_volatile_type:
/* Add a typedef symbol for the type definition, if it has a
DW_AT_name. */
new_symbol (die, read_type_die (die, cu), cu);
@@ -10001,8 +9999,6 @@ new_symbol (struct die_info *die, struct
break;
case DW_TAG_base_type:
case DW_TAG_subrange_type:
- case DW_TAG_const_type:
- case DW_TAG_volatile_type:
SYMBOL_CLASS (sym) = LOC_TYPEDEF;
SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
add_symbol_to_list (sym, cu->list_in_scope);