Fix for https://bugzilla.redhat.com/show_bug.cgi?id=750341 http://sourceware.org/ml/gdb-patches/2011-10/msg00570.html http://sourceware.org/ml/gdb-cvs/2011-10/msg00154.html ### src/gdb/ChangeLog 2011/10/20 13:34:13 1.13446 ### src/gdb/ChangeLog 2011/10/20 20:06:11 1.13447 ## -1,3 +1,15 @@ +2011-10-20 Aleksandar Ristovski + + * cp-namespace.c (cp_scan_for_anonymous_namespaces): Changed function + arguments by adding OBJFILE. Instead of getting objfile from + symbol's symtab, use new argument OBJFILE. + * cp-support.h (cp_scan_for_anonymous_namespaces): Changed function + arguments by adding OBJFILE. + * gdb/dwarf2read.c (new_symbol_full): Change call to + cp_scan_for_anonymous_namespaces to match new signature. + * gdb/stabsread.c (define_symbol): Change call to + cp_scan_for_anonymous_namespaces to match new signature. + 2011-10-20 Phil Muldoon PR python/13308 --- src/gdb/cp-namespace.c 2011/06/29 22:05:15 1.54 +++ src/gdb/cp-namespace.c 2011/10/20 20:06:13 1.55 @@ -75,7 +75,8 @@ static void maintenance_cplus_namespace #define ANONYMOUS_NAMESPACE_LEN 21 void -cp_scan_for_anonymous_namespaces (const struct symbol *symbol) +cp_scan_for_anonymous_namespaces (const struct symbol *const symbol, + struct objfile *const objfile) { if (SYMBOL_DEMANGLED_NAME (symbol) != NULL) { @@ -114,7 +115,7 @@ cp_scan_for_anonymous_namespaces (const namespace given by the previous component if there is one, or to the global namespace if there isn't. */ cp_add_using_directive (dest, src, NULL, NULL, - &SYMBOL_SYMTAB (symbol)->objfile->objfile_obstack); + &objfile->objfile_obstack); } /* The "+ 2" is for the "::". */ previous_component = next_component + 2; --- src/gdb/cp-support.h 2011/08/18 16:17:38 1.45 +++ src/gdb/cp-support.h 2011/10/20 20:06:13 1.46 @@ -197,7 +197,8 @@ const char *processing_current_prefix, int processing_has_namespace_info); -extern void cp_scan_for_anonymous_namespaces (const struct symbol *symbol); +extern void cp_scan_for_anonymous_namespaces (const struct symbol *symbol, + struct objfile *objfile); extern struct symbol *cp_lookup_symbol_nonlocal (const char *name, const struct block *block, --- src/gdb/dwarf2read.c 2011/10/20 01:11:34 1.576 +++ src/gdb/dwarf2read.c 2011/10/20 20:06:13 1.577 @@ -11992,7 +11992,7 @@ namespaces based on the demangled name. */ if (!processing_has_namespace_info && cu->language == language_cplus) - cp_scan_for_anonymous_namespaces (sym); + cp_scan_for_anonymous_namespaces (sym, objfile); } return (sym); } --- src/gdb/stabsread.c 2011/05/18 16:30:36 1.138 +++ src/gdb/stabsread.c 2011/10/20 20:06:14 1.139 @@ -712,7 +712,7 @@ define_symbol (CORE_ADDR valu, char *str memcpy (name, string, p - string); name[p - string] = '\0'; new_name = cp_canonicalize_string (name); - cp_scan_for_anonymous_namespaces (sym); + cp_scan_for_anonymous_namespaces (sym, objfile); } if (new_name != NULL) {