This is the mail archive of the gdb-prs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug exp/17106] Infinite recursion in in_dynamic_types (e.g. when printing a variable)


https://sourceware.org/bugzilla/show_bug.cgi?id=17106

--- Comment #4 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
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  d98b7a16a982e4a17995536250b55f7ff82bd78e (commit)
      from  548740d6bdd115da2c9c17b194016c2c4c0a4c69 (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=d98b7a16a982e4a17995536250b55f7ff82bd78e

commit d98b7a16a982e4a17995536250b55f7ff82bd78e
Author: Tom Tromey <tromey@redhat.com>
Date:   Wed Jul 2 15:53:31 2014 -0600

    fix PR 17106

    This fixes PR 17106, a regression in printing.

    The bug is that resolve_dynamic_type follows struct members and
    references, but doesn't consider the possibility of infinite
    recursion.

    This patch fixes the problem by limiting reference following to the
    topmost layer of calls -- that is, reference-typed struct members are
    never considered as being VLAs.

    Built and regtested on x86-64 Fedora 20.
    New test case included.

    2014-07-14  Tom Tromey  <tromey@redhat.com>

        PR exp/17106:
        * gdbtypes.c (is_dynamic_type_internal): New function, from
        is_dynamic_type.
        (is_dynamic_type): Rewrite.
        (resolve_dynamic_union): Use resolve_dynamic_type_internal.
        (resolve_dynamic_struct): Likewise.
        (resolve_dynamic_type_internal): New function, from
        resolve_dynamic_type.
        (resolve_dynamic_type): Rewrite.

    2014-07-14  Tom Tromey  <tromey@redhat.com>

        * gdb.cp/vla-cxx.cc: New file.
        * gdb.cp/vla-cxx.exp: New file.

-----------------------------------------------------------------------

Summary of changes:
 gdb/ChangeLog                    |   12 ++++++++
 gdb/gdbtypes.c                   |   56 +++++++++++++++++++++++++++----------
 gdb/testsuite/ChangeLog          |    5 +++
 gdb/testsuite/gdb.cp/vla-cxx.cc  |   49 +++++++++++++++++++++++++++++++++
 gdb/testsuite/gdb.cp/vla-cxx.exp |   35 +++++++++++++++++++++++
 5 files changed, 142 insertions(+), 15 deletions(-)
 create mode 100644 gdb/testsuite/gdb.cp/vla-cxx.cc
 create mode 100644 gdb/testsuite/gdb.cp/vla-cxx.exp

-- 
You are receiving this mail because:
You are on the CC list for the bug.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]