This is the mail archive of the
gdb-cvs@sourceware.org
mailing list for the GDB project.
gdb and binutils branch master updated. fe28be73c7c22cc6eb1c3573f1be65c75e37d9b7
- From: kseitz at sourceware dot org
- To: gdb-cvs at sourceware dot org
- Date: 16 Apr 2014 21:17:26 -0000
- Subject: gdb and binutils branch master updated. fe28be73c7c22cc6eb1c3573f1be65c75e37d9b7
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gdb and binutils".
The branch, master has been updated
via fe28be73c7c22cc6eb1c3573f1be65c75e37d9b7 (commit)
from 8056826a68e7cb370425c56703a52af98fa159fe (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=fe28be73c7c22cc6eb1c3573f1be65c75e37d9b7
commit fe28be73c7c22cc6eb1c3573f1be65c75e37d9b7
Author: Keith Seitz <keiths@redhat.com>
Date: Wed Apr 16 14:12:22 2014 -0700
PR c++/16597
If lookup_symbol_file tries to locate a member variable with NULL name:
/* A simple lookup failed. Check if the symbol was defined in
a base class. */
cleanup = make_cleanup (null_cleanup, NULL);
/* Find the name of the class and the name of the method,
variable, etc. */
prefix_len = cp_entire_prefix_len (name);
/* If no prefix was found, search "this". */
if (prefix_len == 0)
{
struct type *type;
struct symbol *this;
this = lookup_language_this (language_def (language_cplus), block);
if (this == NULL)
{
do_cleanups (cleanup);
return NULL;
}
type = check_typedef (TYPE_TARGET_TYPE (SYMBOL_TYPE (this)));
klass = xstrdup (TYPE_NAME (type));
nested = xstrdup (name);
}
TYPE_NAME (type) is NULL, so xstrdup (NULL) and boom!
This can happen, e.g., with clang++. See testsuite/gdb.cp/namelessclass.exp
or the bugzilla report.
This patch simply adds a fencepost against this case, allowing the caller
of lookup_symbol_file to search other blocks for the right symbol.
-----------------------------------------------------------------------
Summary of changes:
gdb/testsuite/gdb.cp/namelessclass.S | 890 ++++++++++++++++++++++++++++++++
gdb/testsuite/gdb.cp/namelessclass.cc | 46 ++
gdb/testsuite/gdb.cp/namelessclass.exp | 52 ++
3 files changed, 988 insertions(+), 0 deletions(-)
create mode 100644 gdb/testsuite/gdb.cp/namelessclass.S
create mode 100644 gdb/testsuite/gdb.cp/namelessclass.cc
create mode 100644 gdb/testsuite/gdb.cp/namelessclass.exp
hooks/post-receive
--
gdb and binutils