fix PR 17106
authorTom Tromey <tromey@redhat.com>
Wed, 2 Jul 2014 21:53:31 +0000 (15:53 -0600)
committerTom Tromey <tromey@redhat.com>
Mon, 14 Jul 2014 16:14:36 +0000 (10:14 -0600)
commitd98b7a16a982e4a17995536250b55f7ff82bd78e
treee6b6d1644b985759e45160326119cc396bbd4471
parent548740d6bdd115da2c9c17b194016c2c4c0a4c69
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.
gdb/ChangeLog
gdb/gdbtypes.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.cp/vla-cxx.cc [new file with mode: 0644]
gdb/testsuite/gdb.cp/vla-cxx.exp [new file with mode: 0644]