This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Do not consider reference types as dynamic
- From: Joel Brobecker <brobecker at adacore dot com>
- To: Pierre-Marie de Rodat <derodat at adacore dot com>
- Cc: GDB Patches <gdb-patches at sourceware dot org>
- Date: Fri, 3 Apr 2015 05:47:24 -0700
- Subject: Re: [PATCH] Do not consider reference types as dynamic
- Authentication-results: sourceware.org; auth=none
- References: <54FEDC09 dot 3050106 at adacore dot com> <20150323133627 dot GG5438 at adacore dot com> <551BB1C9 dot 10006 at adacore dot com> <551E5309 dot 7090509 at adacore dot com>
> >From f3fd1a7e81fad7a0b8e4f483f79b2470a3cf1499 Mon Sep 17 00:00:00 2001
> From: Pierre-Marie de Rodat <derodat@adacore.com>
> Date: Fri, 3 Apr 2015 10:40:52 +0200
> Subject: [PATCH] Do not consider reference types as dynamic
>
> Even when referenced types are dynamic, the corresponding referencing
> type should not be considered as dynamic: it's only a pointer. This
> prevents reference type for values not in memory to be resolved.
>
> gdb/ChangeLog:
> 2015-04-03 Pierre-Marie de Rodat <derodat@adacore.com>
>
> * gdbtypes.c (is_dynamic_type_internal): Remove special handling
> of TYPE_CODE_REF types so that they are not considered as
> dynamic depending on the referenced type.
> (resolve_dynamic_type_internal): Likewise.
>
> gdb/testsuite/ChangeLog:
> 2015-04-03 Pierre-Marie de Rodat <derodat@adacore.com>
>
> * gdb.ada/funcall_ref.exp: New file.
> * gdb.ada/funcall_ref/foo.adb: New file.
This is OK, thank you, Pierre-Marie.
Note that the parameter "top_level" is no longer useful after
this patch is applied, which is actually quite a nice side-effect
of this patch. I hum'ed and ah'ed about whether to ask that it be
removed as part of this patch, but in the end, I decided that this patch
was fine without the cleanup, as "top_level" is used a several places,
and I felt that cleaning it up here would dilute a bit the essence of
this patch. So, I think we can clean it up separately.
> diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
> index 217ec70..6fb2e9a 100644
> --- a/gdb/gdbtypes.c
> +++ b/gdb/gdbtypes.c
> @@ -1752,10 +1752,6 @@ is_dynamic_type_internal (struct type *type, int top_level)
Thank you,
--
Joel