diff options
author | Doug Evans <dje@google.com> | 2010-06-29 16:53:10 +0000 |
---|---|---|
committer | Doug Evans <dje@google.com> | 2010-06-29 16:53:10 +0000 |
commit | 254e6b9ed4abf109cb8399aa3f8f387f7eb2465c (patch) | |
tree | 2bc97c84786aa776590c3ff3c28dedb572e1d449 /gdb/symtab.c | |
parent | 6e70227d64c310278ef73303b2137a9997cb4c0f (diff) | |
download | gdb-254e6b9ed4abf109cb8399aa3f8f387f7eb2465c.zip gdb-254e6b9ed4abf109cb8399aa3f8f387f7eb2465c.tar.gz gdb-254e6b9ed4abf109cb8399aa3f8f387f7eb2465c.tar.bz2 |
PR c++/11702
* NEWS: Add entry.
* dwarf2read.c (dwarf2_add_field): If DW_AT_const_value is present,
create a symbol for the field and record the value.
(new_symbol): Handle DW_TAG_member.
* gdbtypes.c (field_is_static): Remove FIXME.
* symtab.c (search_symbols): When searching for VARIABLES_DOMAIN,
only ignore LOC_CONST symbols that are enums.
testsuite/
Test PR c++/11702.
* gdb.cp/m-static.exp: Add testcase.
* gdb.cp/m-static.h (gnu_obj_4): Add initialized static const member.
Diffstat (limited to 'gdb/symtab.c')
-rw-r--r-- | gdb/symtab.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/gdb/symtab.c b/gdb/symtab.c index feb986f..9472c24 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -3057,10 +3057,15 @@ search_symbols (char *regexp, domain_enum kind, int nfiles, char *files[], if (file_matches (real_symtab->filename, files, nfiles) && ((regexp == NULL || re_exec (SYMBOL_NATURAL_NAME (sym)) != 0) - && ((kind == VARIABLES_DOMAIN && SYMBOL_CLASS (sym) != LOC_TYPEDEF + && ((kind == VARIABLES_DOMAIN + && SYMBOL_CLASS (sym) != LOC_TYPEDEF && SYMBOL_CLASS (sym) != LOC_UNRESOLVED && SYMBOL_CLASS (sym) != LOC_BLOCK - && SYMBOL_CLASS (sym) != LOC_CONST) + /* LOC_CONST can be used for more than just enums, + e.g., c++ static const members. + We only want to skip enums here. */ + && !(SYMBOL_CLASS (sym) == LOC_CONST + && TYPE_CODE (SYMBOL_TYPE (sym)) == TYPE_CODE_ENUM)) || (kind == FUNCTIONS_DOMAIN && SYMBOL_CLASS (sym) == LOC_BLOCK) || (kind == TYPES_DOMAIN && SYMBOL_CLASS (sym) == LOC_TYPEDEF)))) { |