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 #2 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, gdb-7.8-branch has been updated
       via  c086b11bd257f68392b75a2297d601a6ab741a6b (commit)
      from  cb1a4f45173ee9c7482b3ae0f0a44cffcad4dd24 (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=c086b11bd257f68392b75a2297d601a6ab741a6b

commit c086b11bd257f68392b75a2297d601a6ab741a6b
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]