From: Pedro Alves Date: Wed, 21 Jul 2010 18:08:27 +0000 (+0000) Subject: gdb/ X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=23bd0f7c5e23178ccc1c00925813c8e6f17c5eb2;p=binutils-gdb.git gdb/ 2010-07-21 Pedro Alves PR symtab/11827 Revert: 2010-05-21 Pierre Muller * 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 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. : Call it. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 6671818c86d..734b4cdb6a0 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,13 @@ +2010-07-21 Pedro Alves + + PR symtab/11827 + + Revert: + 2010-05-21 Pierre Muller + * dwarf2read.c (process_die): Also allow DW_TAG_const_type + and DW_TAG_volatile_type. + (new_symbol): Likewise. + 2010-07-21 Sami Wagiaalla * eval.c (evaluate_subexp_standard): Disabled evaluation of C++ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index 288d777ca1c..93879645d63 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -4192,8 +4192,6 @@ process_die (struct die_info *die, struct dwarf2_cu *cu) 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 type *type, struct dwarf2_cu *cu) 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); diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 178161a2b0f..0543f803284 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2010-07-21 Pedro Alves + + 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. + : Call it. + 2010-07-21 Sami Wagiaalla * gdb.cp/fpointer.cc: New test. diff --git a/gdb/testsuite/gdb.base/printcmds.c b/gdb/testsuite/gdb.base/printcmds.c index 8eddeeeccf8..2d6668a7e6e 100644 --- a/gdb/testsuite/gdb.base/printcmds.c +++ b/gdb/testsuite/gdb.base/printcmds.c @@ -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 () diff --git a/gdb/testsuite/gdb.base/printcmds.exp b/gdb/testsuite/gdb.base/printcmds.exp index b6a8a3efd49..11e29fa5a65 100644 --- a/gdb/testsuite/gdb.base/printcmds.exp +++ b/gdb/testsuite/gdb.base/printcmds.exp @@ -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 }